Turinys:

„RADbot“: 7 žingsniai
„RADbot“: 7 žingsniai

Video: „RADbot“: 7 žingsniai

Video: „RADbot“: 7 žingsniai
Video: BIT.TRIP RUNNER 2-07 Radbot (Perfect) 2024, Spalio mėn
Anonim
„RADbot“
„RADbot“

Jackson Breakell, Tyler McCubbins ir Jakob Thaler projektas EF 230

Marse astronautai patirs įvairių pavojų - nuo ekstremalių temperatūrų iki dulkių audrų. Tačiau vienas veiksnys, į kurį dažnai nekreipiama dėmesio, yra pavojus, kurį kelia galingi radioizotopai, esantys planetos paviršiuje. „RADbot“padeda tyrinėti astronautus Marso paviršiuje, nustatant uolienų mėginius, kurių judėjimas yra didelis, taip pat turi suprogramuotų saugos funkcijų, kurios naudoja uolos jutiklius, šviesos jutiklius, buferio jutiklius ir fotoaparatą, neleidžiant robotui sugadinti neatleistinoje Marso vietovėje. Be astronautų įspėjimo apie galimus radioaktyvius pavojus paviršiuje, roboto radioaktyviųjų mėginių vietos nustatymo funkcija galėtų būti įdiegta kaip priemonė nustatyti zonas, kuriose gali būti daug urano ir kitų aktinidų. Astronautai galėtų iškasti šiuos elementus, pakankamai juos praturtinti ir panaudoti branduoliniuose reaktoriuose bei termoelektriniuose generatoriuose, kurie galėtų padėti aprūpinti nuolatinę, savarankišką planetos koloniją.

Skirtingai nuo tipiško „Mars“roverio, mūsų dizainas turi komponentus, esančius lentynose, ir priimtiną kainą. Jei turite lėšų ir noro, galite net patys susikurti, vadovaudamiesi šiuo vadovu. Skaitykite toliau, kad sužinotumėte, kaip sukurti savo RADbot.

1 žingsnis: įsigykite reikalingas dalis ir medžiagas

Įsigykite reikalingas dalis ir medžiagas
Įsigykite reikalingas dalis ir medžiagas
Įsigykite reikalingas dalis ir medžiagas
Įsigykite reikalingas dalis ir medžiagas
Įsigykite reikalingas dalis ir medžiagas
Įsigykite reikalingas dalis ir medžiagas

Ko jums reikia norint pradėti (vaizdai išdėstyti tokia tvarka, kokia jie yra išvardyti)

1. Vienas „Roomba“(bet kuris naujesnis modelis)

2. Vienas Geigerio-Miulerio skaitiklis

3. Vienas Raspberry Pi

4. Viena plokštės kamera su USB lizdu

5. Vienas mikro USB į USB kabelis

6. Vienas USB - USB kabelis

7. Vienas pakankamo aktyvumo radioaktyvusis mėginys (~ 5μSv arba didesnis)

8. Vienas kompiuteris su įdiegta „Matlab“

9. Klijai (pageidautina lipni juosta, kad būtų lengva nuimti)

2 veiksmas: fotoaparato ir „Geiger-Muller“skaitiklio konfigūravimas

Fotoaparato ir „Geiger-Muller“skaitiklio konfigūravimas
Fotoaparato ir „Geiger-Muller“skaitiklio konfigūravimas

Dabar, kai turite visas reikalingas medžiagas „RADbot“sukūrimui, pradėsime paprasčiausiai įdėdami fotoaparatą, kad jis galėtų nuskaityti veiklą ant skaitiklio. Padėkite „Geiger-Muller“skaitiklį kuo arčiau „Roomba“galo ir įsitikinkite, kad jo jutiklis nėra užblokuotas. Tvirtai pritvirtinkite skaitiklį pasirinktais klijais ir toliau montuokite fotoaparatą, kad jis būtų nukreiptas į jį. Padėkite fotoaparatą kuo arčiau skaitiklio ekrano, kad išoriniai įėjimai nepaveiktų programos, ir pritvirtinkite ją vietoje, kai jaučiatės patogiai. Vis dėlto rekomenduojame išsaugoti fotoaparato apsaugą paskutiniam laikui, nes kai kodas bus baigtas, galėsite rodyti vaizdą iš fotoaparato į savo kompiuterį, kad galėtumėte pastatyti kamerą pagal jos matymo lauką. Kai fotoaparatas ir skaitiklis bus tvirtai pritvirtinti, prijunkite fotoaparatą prie vieno iš „Raspberry Pi“USB įėjimų naudodami USB -USB kabelį, o „Raspberry Pi“- į „Roomba“naudodami „micro USB to USB“kabelį.

3 veiksmas: prisijunkite prie „Roomba“ir sukurkite šviesos jutiklio kodą

Prisijunkite prie „Roomba“ir sukurkite šviesos jutiklio kodą
Prisijunkite prie „Roomba“ir sukurkite šviesos jutiklio kodą

Pirmiausia atsisiųskite „EF 230“svetainės „Roomba“įrankių rinkinį ir įdėkite jį į nurodytus aplankus. Norėdami prisijungti prie „Roomba“, tiesiog nurodykite lipduką, pritvirtintą prie „Raspberry Pi“, ir komandų lange be kabučių įveskite „r = roomba (x)“, o x reiškia „Roomba“numerį. „Roomba“turėtų groti melodiją, o švarus mygtukas turėtų rodyti žalią žiedą. Pradėkite savo kodą nuo sakinio „tuo tarpu“ir nurodykite šviesos jutiklius, kaip jie rodomi jutiklių sąraše. Atidarykite jutiklių sąrašą, komandų lange įvesdami „r.testSensors“.

Remdamiesi mūsų objekto spalva, lemiančia, kiek šviesos atsispindi, nustatykite reikalavimus, kad teiginys „while“būtų vykdomas kaip funkcija. Mūsų atveju mes nustatėme, kad priekinis šviesos jutiklis paleistų kodą tuo metu, kai kairiojo arba dešiniojo centro šviesos jutiklių rodmuo buvo> 25. Vykdomam teiginiui nustatykite, kad „Roomba“greitis sulėtėtų, įvesdami „r.setDriveVelocity (x, y)“, kur x ir y atitinkamai kairiojo ir dešiniojo ratų greičiai. Įveskite „else“teiginį, kad „Roomba“nesulėtėtų dėl nenustatytų verčių, ir dar kartą įveskite nustatytą pavaros greičio komandą, išskyrus kitą greitį. Užbaikite „while“teiginį „pabaiga“. Šis kodo segmentas privers „Roomba“priartėti prie objekto ir sulėtinti greitį, kai jis pasieks tam tikrą diapazoną, kad sumažintų poveikį.

Pridedama mūsų kodo ekrano kopija, tačiau nedvejodami redaguokite ją, kad ji geriausiai atitiktų jūsų misijos parametrus.

4 veiksmas: sukurkite buferio kodą

Sukurkite buferio kodą
Sukurkite buferio kodą

Kadangi „Roomba“lėtėja, tai sumažins jo daromą poveikį objektui, nors ir ne tiek, kad nesukeltų fizinio buferio. Šiam kodo segmentui vėl pradėkite nuo ciklo „while“ir nustatykite jo išraišką kaip teisingą. Jei norite teiginį, nustatykite kintamąjį T, lygų buferio išėjimui, 0 arba 1, jei yra klaidinga ir teisinga. Tam galite naudoti „T = r.getBumpers“. T išeis kaip struktūra. Įveskite teiginį „jei“ir nustatykite posakio T.front išraišką lygią 1 ir nustatykite teiginį arba nustatykite disko greitį 0, naudodami „r.setDriveVelocity (x, y)“arba „r.stop . Įveskite „pertrauką“, kad „Roomba“galėtų judėti, kai bus įvykdyta kito kodo sąlyga. Pridėkite „kitą“ir nustatykite jo teiginį, kad važiavimo greitis būtų nustatytas į įprastą „Roomba“kreiserinį greitį.

Pridedama mūsų kodo ekrano kopija, tačiau nedvejodami redaguokite ją, kad ji geriausiai atitiktų jūsų misijos parametrus.

5 veiksmas: sukurkite kodą skaitiklio ekranui skaityti, jį interpretuoti ir atsitraukti nuo šaltinio

Sukurkite kodą skaitymo skaitiklio ekranui, interpretuokite jį ir atsitraukite nuo šaltinio
Sukurkite kodą skaitymo skaitiklio ekranui, interpretuokite jį ir atsitraukite nuo šaltinio

Mūsų projekto esmė yra „Geiger-Muller“skaitiklis, o šis kodo segmentas naudojamas norint nustatyti, ką ekrane pateikiami duomenys reiškia naudojant fotoaparatą. Atsižvelgiant į tai, kad mūsų skaitiklio ekranas keičia spalvą pagal šaltinio veiklą, nustatysime fotoaparatą interpretuoti ekrano spalvą. Pradėkite kodą nustatydami kintamąjį, lygų komandai „r.getImage“. Kintamajame bus 3d raudonos, žalios ir mėlynos spalvos nuotraukų reikšmių masyvas. Nustatykite kintamuosius, lygius atitinkamų spalvų matricų vidurkiams, naudodami komandą „mean (vidurkis (img1 (:,:, x)))“, kur x yra sveikas skaičius nuo 1 iki 3. 1, 2 ir 3 reiškia raudoną, žalią ir atitinkamai mėlyna. Kaip ir į visas nurodytas komandas, neįtraukite kabučių.

Programai pristabdykite 20 sekundžių naudodami „pauzę (20)“, kad skaitiklis gautų tikslų mėginio rodmenį, o tada pradėkite teiginį „jei“. „Roomba“pyptelėjo kelis kartus, naudodami „r.beep“, prieš parodydami meniu su tekstu „Radytas radioizotopas! Atsargiai!“tai galima padaryti naudojant komandą „waitfor (helpdlg ({'texthere'})“. Spustelėjus „OK“, „Roomba“toliau laikysis likusio kodo, esančio teiginyje „if“. Leiskite „Roomba“apvažiuoti pavyzdį naudodami komandų „r.moveDistance" ir „r.turnAngle" derinys. Įsitikinkite, kad sakinį „if“baigsite „pabaiga“.

Pridedama mūsų kodo ekrano kopija, tačiau nedvejodami redaguokite ją, kad ji geriausiai atitiktų jūsų misijos parametrus.

6 veiksmas: sukurkite uolos jutiklio kodą

Sukurkite uolos jutiklio kodą
Sukurkite uolos jutiklio kodą

Norėdami sukurti kodą, kad galėtumėte naudoti „Roomba“įmontuotus uolų jutiklius, pradėkite nuo ciklo „ciklas“ir nustatykite jo išraišką kaip teisingą. Nustatykite, kad kintamasis būtų lygus „r.getCliffSensors“, ir bus sukurta struktūra. Pradėkite teiginį „jei“ir nustatykite kintamuosius „X.leftFront“ir „X.rightFront“iš struktūros, kad jie būtų didesni už tam tikrą iš anksto nustatytą reikšmę, kur „X“yra kintamasis, kuriam pasirinkote komandą „r.getCliffSensors“būti lygus. Mūsų atveju mes naudojome 1000, nes baltas popierius buvo naudojamas skardžiui pavaizduoti, o artėjant jutikliams, popierius, vertės išaugo iki daugiau nei 1000, todėl kodas bus vykdomas tik aptikus uolą. Po to pridėkite komandą „break“ir įterpkite „else“teiginį. Jei norite pasakyti „else“, kuris bus įvykdytas, jei nebus aptikta uolos, nustatykite kiekvieno rato važiavimo greitį į įprastą kreiserinį greitį. Jei „Roomba“aptinka skardį, „pertrauka“bus įvykdyta, o tada bus vykdomas kodas, esantis už ciklo. Įdėję kilpos „jei“ir „tuo tarpu“„pabaigą“, nustatykite „Roomba“judėti atgal naudodami komandą perkelti atstumą. Norėdami įspėti astronautus, kad netoliese yra skardis, važiavimo greičio komandoje nustatykite kiekvieno rato, x ir y, važiavimo greitį a ir -a, kur a yra tikrasis skaičius. Dėl to „Roomba“suksis, įspėdama astronautą apie skardį.

Pridedama mūsų kodo ekrano kopija, tačiau nedvejodami redaguokite ją, kad ji geriausiai atitiktų jūsų misijos parametrus.

7 žingsnis: Išvada

Išvada
Išvada

Galutinis „RADbot“tikslas Marse yra padėti astronautams tyrinėti ir kolonizuoti Raudonąją planetą. Nustatydami paviršiuje esančius radioaktyviuosius mėginius, tikimės, kad robotas ar roveris šiuo atveju tikrai gali apsaugoti astronautus ir padėti nustatyti jų bazės (-ų) energijos šaltinius. Atlikus visus šiuos veiksmus ir galbūt atlikus bandymus ir klaidas, jūsų „RADbot“turėtų veikti ir veikti. Padėkite radioaktyvų mėginį kažkur savo bandymų zonoje, vykdykite kodą ir stebėkite, kaip roveris daro tai, ką jis turėjo padaryti. Mėgaukitės savo RADbot!

-EF230 RADbot komanda

Rekomenduojamas: