Talaan ng mga Nilalaman:

Tulong sa Astronaut na Roomba: 4 na Hakbang
Tulong sa Astronaut na Roomba: 4 na Hakbang

Video: Tulong sa Astronaut na Roomba: 4 na Hakbang

Video: Tulong sa Astronaut na Roomba: 4 na Hakbang
Video: LINGGUHANG KAKAIBA BALITA - UFOs - Paranormal - Espasyo - Fringe Science 2024, Nobyembre
Anonim
Tumutulong sa Astronaut na Roomba
Tumutulong sa Astronaut na Roomba

Ang proyektong ito ay ginawa sa pamamagitan ng paggamit ng Raspberry Pi 3 sa board ng iRobot Lumikha Bersyon 2. Ginagamit ang MATLAB upang iprograma ang robot upang sundin ang mga tiyak na tagubilin gamit ang mga sensor at kamera. Ang mga sensor at camera ay ginagamit upang maisagawa ang mga tukoy na gawain na susundan sa isang astronaut at bibigyan siya ng kakayahang makipag-usap sa kanyang base sa bahay kung may mali man.

Hakbang 1: Mga Kinakailangan na Bahagi

Mga Kinakailangan na Bahagi
Mga Kinakailangan na Bahagi
Mga Kinakailangan na Bahagi
Mga Kinakailangan na Bahagi
Mga Kinakailangan na Bahagi
Mga Kinakailangan na Bahagi
Mga Kinakailangan na Bahagi
Mga Kinakailangan na Bahagi

1. iRobot Lumikha Bersyon 2

Ang Lumikha ng iRobot ay ang pinaka-mahalagang bahagi ng proyektong ito dahil ito ay maaaring i-program at maaaring maging isang mahusay na representasyon para sa isang aktwal na rover na sumusunod sa mga astronaut at tumutulong sa kanila sa hinaharap

2. Raspberry Pi 3

Ang Raspberry Pi ay ang programmable na ginamit para sa proyektong ito. Ang code ay idinisenyo para sa Pi at ang bersyon ng Pi na nakalakip ay ang 3 (modelo B). Ang ibang mga programmable board tulad ng arduino ay magagamit, subalit, ang arduino at karamihan sa iba pang mga board ay mangangailangan ng iba't ibang pag-coding kaysa sa inilarawan sa isa pang hakbang

3. Module ng Raspberry Pi Camera

Ang tanging extraneous na koneksyon sa Raspberry Pi na kinakailangan para sa proyektong ito ay ang Camera Module. Ang module ng camera ay ang mahalagang bahagi sa proyektong ito, dahil ang roomba ay gaganap lamang ng mga gawain batay sa nakikita sa camera

4. MATLAB 2018a

Ang pangalawang pinakabagong bersyon ng MATLAB, ang 2018a, ay ginamit para sa pag-coding na kasangkot sa pag-setup na ito. Malamang na maraming iba pang mga bersyon ng MATLAB ang gagana dito dahil ang pag-program ng roomba ay nasa paligid ng ilang sandali

Hakbang 2: Mga Pag-configure ng Mga File at Camera

Mga Pag-configure ng Mga File at Camera
Mga Pag-configure ng Mga File at Camera

1. Mga koneksyon sa Raspberry Pi at Camera sa roomba

  • Ang Pi ay maaaring kumonekta sa iRobot nang direkta sa isang micro USB. Iyon lang ang kailangan nito upang maging handa nang gamitin. Gayunpaman, inirerekumenda na ligtas itong mailagay sa roomba tulad ng ipinakita sa mga larawan sa buong pagtatanghal sa ngayon.
  • Ang camera ay may direktang koneksyon sa Raspberry Pi at lubos na inirerekomenda na may isang bagay na binili o ginawa upang direktang hawakan ang camera. Walang tunay na punto sa camera kung hindi ito mapigilan sa lugar upang maipakita kung ano ang nakikita ng roomba.

2. Mga file

  • Matapos mai-set up at konektado ang lahat, tiyaking naka-reset ang robot at handa nang pumunta sa pamamagitan ng paghawak ng mga pindutan na "Spot" at "Dock" nang 10 segundo na magkasama.
  • Dito unang kailangan ang MATLAB. Ang mga file para sa roomba ay kailangang mai-install muna at ang kailangan lamang para sa mga file na ito ay upang tumakbo ay ang code na ibinigay sa link na ito:
  • https://ef.engr.utk.edu/ef230-2017-08//projects/ro…

Hakbang 3: Paunang Pagsubok sa Roomba

Maraming mga paunang pagsusuri na isasagawa sa roomba upang matiyak na gumagana ito.

1. Tiyaking nakakonekta ka sa parehong WiFi network tulad ng roomba. Kung wala ito, hindi ka makakonekta sa pamamagitan ng MATLAB.

2. Alamin kung anong numero ang itinalaga sa iyong roomba upang maaari mong partikular na kumonekta sa roomba na iyong pinili. Halimbawa, kung ang numero ng iyong roomba ay 30, ikokonekta mo ito sa pamamagitan ng pag-type ng roomba (30) sa command window sa MATLAB.

3. Ang roomba ay maaaring makontrol sa pamamagitan ng str strows sa MATLAB. Halimbawa, kung itinakda mo ang iyong code para sa roomba (30) sa variable 'r', ang robot ay maaaring ilipat kasama ang utos na r.moveDistance (0.2, 0.1).

4. Maraming iba't ibang mga utos na maaaring maiparating sa roomba at ang mga ito ay makikita sa pamamagitan ng pag-type ng 'doc roomba' sa window ng utos.

5. Ang mga sensor para sa pagbasa ng ilaw, paga, at bangin ay maaaring mabasa sa pamamagitan ng paggamit ng mga utos na nakikita sa 'doc roomba' ngunit ang isang paraan upang magkaroon ng isang pare-pareho, maayos na menu upang makita ang data ng sensor ay maaaring makita sa pamamagitan ng paggamit ng 'r.testSensors '.

6. Matapos masubukan ang lahat ng ito, maaaring magamit ang imahe ng pagkolekta ng software ng robot upang mabasa at makita ang mga larawang kinunan. Ang pangunahing code para dito ay magiging img = r.getImage at imshow (img);.

7. Ang mga halagang RGB ng larawan ay maaaring matagpuan kasama ang mga code red_mean = mean (mean (img (:,:, 1)));

green_mean = ibig sabihin (ibig sabihin (img (:,:, 2))); at blue_mean = ibig sabihin (ibig sabihin (img (:,:, 3)));.

Hakbang 4: Halimbawa ng MATLAB Code

Halimbawa ng MATLAB Code
Halimbawa ng MATLAB Code

Sa puntong ito, handa ka na ngayong gamitin ang mga sensor at software na kumukuha ng imahe upang lumikha ng iyong sariling pag-ikot sa isang Human-assisting Prototype Mars Rover. Ang aming halimbawa ay sundin ang astronaut sa pamamagitan ng pagsubaybay sa kulay na puti at paglipat patungo dito. Ang robot ay beep kung ang mga sensor ay nagbabasa ng mataas na halaga upang ang astronaut ay maaaring i-reset ang robot kung ito ay natigil o pumunta at kunin ito at i-reset ito kung ito ay natigil sa isang bangin. Gayunpaman, binabasa lamang nito ang mga error na ito hangga't nakikita itong puti. Nang hindi makita ang kulay na puti, ang robot ay papasok sa mode ng error. Naprograma ito upang maipadala ang dalawang magkakaibang uri ng mga email pabalik sa home base depende sa nakikita nito. Kung nakikita nito ang kulay ng balat ng astronaut, malinaw naman na hindi ito maganda, kaya babalaan ito sa base ng bahay kung ang astronaut ay may balat na nagpapakita na may isang malayong paggana ng suit. Ang iba pang mensahe ay inihanda kung ang astronaut ay nawala lamang sa paningin. Kung walang puti o kulay ng balat na ipinapakita para sa mga camera, ang robot ay umiikot at magpapadala ng isa pa, ngunit magkakaibang email. Ang mga imahe kung saan hindi makita ng roomba ang astronaut ay ipapadala kasama ang mensahe sa mga email. Ang code para sa aming proyekto ay ipinapakita sa ibaba:

para sa i = 1:.1: 3 img = r.getImage; imahe (img) red_mean = ibig sabihin (ibig sabihin (img (:,:, 1))); green_mean = ibig sabihin (ibig sabihin (img (:,:, 2))); blue_mean = ibig sabihin (ibig sabihin (img (:,:, 3))); kung red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.left> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || cliff.leftFront <10 || cliff. RightFront <10 || cliff. Right700 || light.leftFront> 700 || light.leftCenter> 700 || ilaw. RightCenter> 700 || light. RightFront> 700 || light. Right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stop iba pa para sa i = 1: 2 r. Paglipat ng Distansya (0.2, 0.1) r. setDriveVelocity (.3,.2) r.stop end end end kung berde_mean <35 && blue_mean <35% ang kulay ng balat na nagpapakita (kailangang ayusin batay sa kulay ng balat ng astronaut) r.beep (); r.beep (); r.beep (); mail = '[email protected]'; Nagpapadala ang% ng email na nagpapakita ng suit ay off psswd = 'yeah'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'paksa'; m_text = 'pagsubok'; setpref ('Internet', 'E_mail', mail); setpref ('Internet', 'SMTP_Server', host); setpref ('Internet', 'SMTP_Username', mail); setpref ('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', host); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'totoo'); props.setProperty ('mail.smtp.auth', 'totoo'); props.setProperty ('mail.smtp.socketFactory.port', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Tulong!', 'Naka-off ang uniporme ng mga astronaut!', img); tapusin kung red_mean 135 || green_mean 135 || blue_mean 135 para sa j = 1: 2% kung puti ay hindi matagpuan ng robot r.turnAngle (360) mail = '[email protected]'; psswd = 'yeah'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'paksa'; m_text = 'pagsubok'; setpref ('Internet', 'E_mail', mail); setpref ('Internet', 'SMTP_Server', host); setpref ('Internet', 'SMTP_Username', mail); setpref ('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', host); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'totoo'); props.setProperty ('mail.smtp.auth', 'totoo'); props.setProperty ('mail.smtp.socketFactory.port', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Tulong!', 'Ang astronaut ay hindi matagpuan!', img); r.stop end end end

Malinaw na ito ay magulo dito, ngunit dapat itong buff out isang beses na nakopya. Ang mga password at email para dito ay ibibigay ng mga gumagawa ng proyektong ito nang malinaw.

Gayunpaman, ang aming halimbawa ay isa lamang sa maraming mga paraan upang makagulo sa robot na ito upang maging angkop sa lahat. Maraming iba't ibang mga bagay na dapat gawin, na maaari mong iakma sa iyong sarili.

Inirerekumendang: