Talaan ng mga Nilalaman:

Ang RADbot: 7 Hakbang
Ang RADbot: 7 Hakbang

Video: Ang RADbot: 7 Hakbang

Video: Ang RADbot: 7 Hakbang
Video: BIT.TRIP RUNNER 2-7 Radbot 2024, Oktubre
Anonim
Ang RADbot
Ang RADbot

Isang proyekto ni Jackson Breakell, Tyler McCubbins at Jakob Thaler para sa EF 230

Sa Mars, ang mga astronaut ay sasailalim sa iba't ibang mga panganib, mula sa matinding temperatura hanggang sa mga dust bagyo. Ang isang kadahilanan na madalas na napapansin, gayunpaman, ay ang panganib na ipinakita ng malakas na radioisotopes na nakatira sa ibabaw ng planeta. Nagbibigay ang RADbot ng tulong sa paggalugad ng mga astronaut sa ibabaw ng Mars sa pamamagitan ng pagkilala ng mga sample ng bato na may mataas na aktibidad habang naglalakbay ito, at mayroon ding naka-program na mga tampok sa kaligtasan na gumagamit ng mga cliff sensor, light sensor, bumper sensor at camera na pumipigil sa robot mula sa pinsala. sa walang patawad na lupain ng Martian. Bukod sa babala sa mga astronaut ng mga posibleng radioactive na panganib sa ibabaw, ang tampok na lokasyon ng sample ng radioactive na robot ay maaaring ipatupad bilang isang tool upang makilala ang mga lugar na maaaring magkaroon ng malalaking deposito ng Uranium at iba pang mga actinide. Maaaring minain ng mga astronaut ang mga elementong ito, sapat na pagyamanin ito at gamitin ang mga ito sa mga reactor ng nuklear at mga generator ng thermoelectric, na maaaring makatulong sa kapangyarihan ng isang permanenteng, nagtaguyod na sariling kolonya sa planeta.

Hindi tulad ng karaniwang Mars rover, nagtatampok ang aming disenyo ng mga bahagi na wala sa istante at isang makatuwirang tag ng presyo. Sa kondisyon na mayroon kang mga pondo at pagnanasa, maaari mo ring buuin ang iyong sarili sa pamamagitan ng pagsunod sa patnubay na ito. Mangyaring basahin pa upang malaman kung paano gumawa ng iyong sariling RADbot.

Hakbang 1: Kumuha ng Mga Kinakailangan na Bahagi at Materyales

Kumuha ng Mga Kinakailangan na Bahagi at Materyales
Kumuha ng Mga Kinakailangan na Bahagi at Materyales
Kumuha ng Mga Kinakailangan na Bahagi at Materyales
Kumuha ng Mga Kinakailangan na Bahagi at Materyales
Kumuha ng Mga Kinakailangan na Bahagi at Materyales
Kumuha ng Mga Kinakailangan na Bahagi at Materyales

Ano ang kakailanganin mo upang makapagsimula (Ang mga larawang inilagay upang mailista ang mga ito)

1. Isang Roomba (anumang mas bagong modelo)

2. Isang Geiger-Mueller Counter

3. Isang Raspberry Pi

4. Isang board camera na may USB outlet

5. Isang micro USB sa USB cable

6. Isang USB sa USB cable

7. Isang sample ng radioactive ng sapat na aktibidad (~ 5μSv o mas mataas)

8. Isang computer na may naka-install na Matlab

9. Malagkit (Mas mabuti ang maliit na tubo ng tape para sa madaling matanggal)

Hakbang 2: Pag-configure ng Camera at Geiger-Muller Counter

Ang pag-configure ng Camera at Geiger-Muller Counter
Ang pag-configure ng Camera at Geiger-Muller Counter

Ngayon na mayroon ka ng lahat ng kinakailangang mga materyales upang likhain ang RADbot, magsisimula kami sa pamamagitan lamang ng paglalagay ng camera upang mabasa nito ang aktibidad sa counter. Ilagay ang Geiger-Muller counter na malapit sa dulo ng Roomba hangga't maaari, at tiyakin na ang sensor nito ay hindi na-block. I-secure ang counter sa lugar nang matatag sa adhesive na iyong pinili, at magpatuloy na i-mount ang camera upang harapin ito. Ilagay ang camera nang mas malapit hangga't maaari sa display ng counter upang maiwasan ang mga input sa labas na makaapekto sa programa, at i-secure ito sa lugar kapag naramdaman mong komportable ka. Inirerekumenda naming i-save mo ang pag-secure ng camera para sa huling, bagaman, dahil, kapag natapos ang iyong code, maaari kang magpakita ng isang imahe mula sa camera papunta sa iyong computer, pinapayagan kang mailagay ang camera batay sa larangan ng pagtingin nito. Kapag ang parehong camera at counter ay matatag na nakalagay, i-plug ang camera sa isa sa mga USB input ng Raspberry Pi gamit ang USB sa USB cable, at isaksak ang Raspberry Pi sa Roomba gamit ang micro USB sa USB cable.

Hakbang 3: Kumonekta sa Iyong Roomba at Lumikha ng Light Sensor Code

Kumonekta sa Iyong Roomba at Lumikha ng Light Sensor Code
Kumonekta sa Iyong Roomba at Lumikha ng Light Sensor Code

Una, i-download ang Roomba toolbox ng EF 230 website, at tiyaking ilagay ito sa tinukoy na mga folder. Upang kumonekta sa iyong Roomba, i-refer lamang ang sticker na naka-attach sa Raspberry Pi at ipasok ang "r = roomba (x)" sa window ng utos, nang walang mga marka ng panipi, at kung saan ang x ay kumakatawan sa numero ng Roomba. Dapat magpatugtog ang Roomba, at ang malinis na pindutan ay dapat magpakita ng berdeng singsing sa paligid nito. Simulan ang iyong code sa isang pahayag na "habang", at mag-refer sa mga light sensor na lumilitaw sa listahan ng sensor. Buksan ang listahan ng sensor sa pamamagitan ng pag-type ng "r.testSensors" sa window ng utos.

Batay sa kulay ng aming object, na tumutukoy sa kung magkano ang ilaw na nakalarawan, itakda ang mga kinakailangan para sa habang pahayag na naisakatuparan bilang isang> pagpapaandar. Sa aming kaso, itinakda namin ang front light sensor upang patakbuhin ang code sa habang pahayag kung ang pagbabasa sa kaliwa o kanang center light sensor ay> 25. Para sa maipapatupad na pahayag, itakda ang bilis ng Roomba upang mabagal sa pamamagitan ng pag-type ng "r.setDriveVelocity (x, y)" kung saan ang x at y ay ang mga bilis ng kaliwa at kanang gulong ayon sa pagkakabanggit. Magpasok ng isang pahayag na "iba pa", upang ang Roomba ay hindi mabagal para sa hindi natukoy na mga halaga, at ipasok muli ang itinakdang utos ng bilis ng drive, maliban sa ibang bilis. Tapusin ang pahayag habang nasa isang "wakas". Gagawin ng segment ng code na ito ang Roomba na lapitan ang object, at babagal kapag naabot nito ang isang tiyak na saklaw upang mabawasan ang epekto.

Ang kalakip ay isang screenshot ng aming code, ngunit huwag mag-atubiling i-edit ito upang umangkop sa iyong mga parameter ng misyon.

Hakbang 4: Lumikha ng Bumper Code

Lumikha ng Bumper Code
Lumikha ng Bumper Code

Habang ang Roomba ay nagpapabagal, mababawasan ang epekto nito sa object, kahit na hindi gaanong hindi ito nagpapalitaw ng pisikal na bumper. Para sa segment ng code na ito, magsimula muli sa isang "habang" loop, at itakda ang expression nito na totoo. Para sa pahayag, itakda ang variable na T pantay sa output ng bumper, alinman sa 0 o 1, para sa mali at totoo. Maaari mong gamitin ang "T = r.getBumpers" para dito. Ang T ay maglalabas bilang isang istraktura. Magpasok ng isang pahayag na "kung", at itakda ang ekspresyon nito para sa substructure na T.front sa pantay na 1, at itakda ang pahayag sa alinman na itakda ang bilis ng drive sa 0, gamit ang "r.setDriveVelocity (x, y)" o "r.stop ". Magpasok ng isang "pahinga" upang ang Roomba ay maaaring ilipat pagkatapos ng kundisyon sa susunod na code ay natutugunan. Magdagdag ng isang "iba pa", at itakda ang pahayag nito upang maitakda ang bilis ng drive sa normal na bilis ng pag-cruising ng Roomba.

Ang kalakip ay isang screenshot ng aming code, ngunit huwag mag-atubiling i-edit ito upang umangkop sa iyong mga parameter ng misyon.

Hakbang 5: Lumikha ng Code upang Basahin ang Counter Screen, Bigyang-kahulugan Ito at Umatras Mula sa Pinagmulan

Lumikha ng Code upang Basahin ang Counter Screen, Bigyang-kahulugan Ito at Umatras Mula sa Pinagmulan
Lumikha ng Code upang Basahin ang Counter Screen, Bigyang-kahulugan Ito at Umatras Mula sa Pinagmulan

Sa gitna ng aming proyekto ay ang counter ng Geiger-Muller at ginagamit ang sumusunod na segment ng code upang matukoy kung ano ang ibig sabihin ng data sa screen gamit ang camera. Dahil sa pagbabago ng screen ng aming counter ng kulay batay sa aktibidad ng mapagkukunan, itatakda namin ang camera upang bigyang kahulugan ang kulay ng screen. Simulan ang iyong code sa pamamagitan ng pagtatakda ng isang variable na katumbas ng utos na "r.getImage". Ang variable ay maglalaman ng isang 3d na hanay ng mga halaga ng kulay ng larawan na kinuha nito sa pula, berde at asul. Itakda ang mga variable na katumbas ng average ng kani-kanilang mga color matrix na sa pamamagitan ng paggamit ng utos na "mean (mean (img1 (:,:, x)))" kung saan ang x ay isang integer mula 1 hanggang 3. Ang 1, 2 at 3 ay kumakatawan sa pula, berde at asul ayon sa pagkakabanggit. Tulad ng lahat ng mga command na isinangguni, huwag isama ang mga marka ng panipi.

I-pause ang programa sa loob ng 20 segundo gamit ang "pause (20)" upang makakuha ang counter ng tumpak na pagbabasa ng sample, at pagkatapos ay magsimula ng isang pahayag na "kung". Maraming beses kaming nagkaroon ng beep ng aming Roomba sa pamamagitan ng paggamit ng "r.beep" bago ipakita ang isang menu na may teksto, "Natagpuan ang Radioisotope! Mag-ingat!" magagawa ito sa pamamagitan ng utos na "waitfor (helpdlg ({'texthere'})". Pagkatapos ng pag-click sa ok, magpapatuloy ang Roomba na sundin ang natitirang code sa pahayag na "kung". Ipagawa ang Roomba drive sa paligid ng sample gamit ang isang kumbinasyon ng mga utos na "r.moveDistance" at "r.turnAngle". Tiyaking tapusin ang iyong pahayag kung may isang "wakas".

Ang kalakip ay isang screenshot ng aming code, ngunit huwag mag-atubiling i-edit ito upang umangkop sa iyong mga parameter ng misyon.

Hakbang 6: Lumikha ng isang Cliff Sensor Code

Lumikha ng Cliff Sensor Code
Lumikha ng Cliff Sensor Code

Upang lumikha ng isang code upang magamit ang mga built-in na cliff sensor ng Roomba, magsimula sa isang "habang" loop, at itakda ang ekspresyon nito na totoo. Magtakda ng isang variable na katumbas ng "r.getCliffSensors", at magreresulta ito sa isang istraktura. Magsimula ng isang pahayag na "kung", at itakda ang mga variable na "X. LeftFront" at "X. RightFront" mula sa istraktura na mas malaki kaysa sa ilang paunang natukoy na halaga, kung saan ang "X" ay ang variable na pinili mo ng utos na "r.getCliffSensors" upang maging pantay sa. Sa aming kaso, gumamit kami ng 1000, bilang isang piraso ng puting papel ang ginamit upang kumatawan sa isang bangin, at, habang papalapit ang mga sensor, ang papel, ang mga halaga ay lumago nang higit sa 1000, na tinitiyak na ang code ay papatayin lamang kapag may nakita na isang bangin. Idagdag ang utos na "break" pagkatapos, at pagkatapos ay magsingit ng isang pahayag na "iba pa". Para sa pahayag na "iba pa", na kung saan ay naisasagawa kung walang nakita na bangin, itakda ang bilis ng drive sa normal na bilis ng pag-cruising para sa bawat gulong. Kung ang Roomba ay nakakakita ng isang bangin, ang "break" ay papatayin, at pagkatapos ang code sa labas ng habang loop ay papatayin. Matapos mailagay ang "wakas" para sa "kung" at "habang" loop, itakda ang Roomba upang umatras pabalik gamit ang move distance command. Upang bigyan ng babala ang mga astronaut na ang isang bangin ay malapit, itakda ang mga bilis ng drive ng bawat gulong, x at y sa utos ng bilis ng drive, upang maging isang at -a, kung saan ang isang tunay na numero. Ito ay magiging sanhi ng pag-ikot ng Roomba, na inaalerto ang astronaut sa bangin.

Ang kalakip ay isang screenshot ng aming code, ngunit huwag mag-atubiling i-edit ito upang umangkop sa iyong mga parameter ng misyon.

Hakbang 7: Konklusyon

Konklusyon
Konklusyon

Ang pangwakas na layunin ng RADbot sa Mars ay tulungan ang mga astronaut sa kanilang paggalugad at kolonisasyon ng pulang planeta. Sa pamamagitan ng pagkilala sa mga sample ng radioactive sa ibabaw, inaasahan namin na ang robot, o rover, sa kasong ito, ay tunay na mapanatiling ligtas ang mga astronaut at makakatulong na makilala ang mga mapagkukunan ng kuryente para sa kanilang (mga) base. Matapos sundin ang lahat ng mga hakbang na ito, at marahil ay may ilang pagsubok at error, dapat na nakabukas ang iyong RADbot. Ilagay ang sample ng radioactive sa isang lugar sa loob ng iyong lugar ng pagsubok, isagawa ang iyong code, at panoorin ang rover na gawin kung ano ang idinisenyo na gawin. Masiyahan sa iyong RADbot!

-Ang EF230 RADbot Team

Inirerekumendang: