Kazalo:

RADbot: 7 korakov
RADbot: 7 korakov

Video: RADbot: 7 korakov

Video: RADbot: 7 korakov
Video: Shostakovich - Symphony No. 7 in C major "Leningrad" Op. 60 2024, Oktober
Anonim
RADbot
RADbot

Projekt Jacksona Breakella, Tylerja McCubbinsa in Jakoba Thalerja za EF 230

Na Marsu bodo astronavti izpostavljeni različnim nevarnostim, od ekstremnih temperatur do prašnih neviht. Eden od dejavnikov, ki se pogosto spregleda, je nevarnost, ki jo predstavljajo močni radioizotopi, ki prebivajo na površini planeta. RADbot pomaga pri raziskovanju astronavtov na Marsovi površini z identifikacijo vzorcev kamnin z visoko aktivnostjo med potovanjem, poleg tega pa ima vgrajene varnostne funkcije, ki uporabljajo senzorje pečine, senzorje svetlobe, odbijače in kamero, ki preprečujejo poškodbe robota. na neusmiljenem marsovskem terenu. Poleg opozarjanja astronavtov na možne radioaktivne nevarnosti na površini, bi lahko robotsko funkcijo določanja lokacije radioaktivnega vzorca uporabili kot orodje za prepoznavanje območij, kjer bi lahko bile velike usedline urana in drugih aktinidov. Astronavti bi lahko te elemente izkopali, jih dovolj obogatili in uporabili v jedrskih reaktorjih in termoelektričnih generatorjih, kar bi lahko pomagalo pri napajanju stalne samostojne kolonije na planetu.

Za razliko od tipičnega Mars roverja, je v naši zasnovi sestavnih delov, ki so na voljo, in razumne cene. Če imate sredstva in željo, si lahko celo sledite temu priročniku. Preberite, če želite izvedeti, kako narediti svoj RADbot.

1. korak: Pridobite potrebne dele in materiale

Pridobite potrebne dele in materiale
Pridobite potrebne dele in materiale
Pridobite potrebne dele in materiale
Pridobite potrebne dele in materiale
Pridobite potrebne dele in materiale
Pridobite potrebne dele in materiale

Kaj boste potrebovali za začetek (slike so postavljene tako, da so navedene)

1. Ena Roomba (kateri koli novejši model)

2. En Geiger-Muellerjev števec

3. En Raspberry Pi

4. Eno kamera z vtičnico USB

5. En kabel mikro USB v USB

6. En kabel USB na USB

7. En radioaktivni vzorec zadostne aktivnosti (~ 5μSv ali več)

8. En računalnik z nameščenim Matlabom

9. Lepilo (po možnosti lepilni trak za enostavno odstranitev)

2. korak: Konfigurirajte kamero in Geiger-Mullerjev števec

Konfiguriranje kamere in Geiger-Mullerjevega števca
Konfiguriranje kamere in Geiger-Mullerjevega števca

Zdaj, ko imate vse potrebne materiale za izdelavo RADbot -a, bomo začeli tako, da preprosto postavimo kamero, tako da lahko bere dejavnost na pultu. Geiger-Mullerjev števec postavite čim bližje koncu Roombe in se prepričajte, da njegov senzor ni blokiran. Pult trdno pritrdite z lepilom, ki ste ga izbrali, in nadaljujte z montažo fotoaparata obrnjeno proti njemu. Kamero postavite čim bližje zaslonu števca, da preprečite, da bi zunanji vnosi vplivali na program, in jo zavarujte, ko se počutite udobno. Priporočamo, da zavarovanje kamere shranite za konec, saj lahko po končani kodi sliko iz kamere prikažete v računalnik, kar vam omogoča, da kamero postavite glede na njeno vidno polje. Ko sta fotoaparat in števec trdno nameščena, priključite kamero v enega od USB vhodov Raspberry Pi s kablom USB v USB in priključite Raspberry Pi v Roombo s kablom mikro USB na USB.

3. korak: Povežite se z napravo Roomba in ustvarite kodo senzorja svetlobe

Povežite se z napravo Roomba in ustvarite kodo senzorja svetlobe
Povežite se z napravo Roomba in ustvarite kodo senzorja svetlobe

Najprej prenesite orodjarno Roomba s spletnega mesta EF 230 in jo postavite v določene mape. Če se želite povezati z napravo Roomba, se preprosto obrnite na nalepko, pritrjeno na Raspberry Pi, in v ukazno okno vnesite »r = roomba (x)« brez narekovajev in kjer x pomeni številko Roombe. Roomba bi morala predvajati melodijo, okoli gumba za čiščenje pa mora biti prikazan zeleni obroč. Začnite kodo z izjavo "while" in se obrnite na svetlobne senzorje, kot so prikazani na seznamu senzorjev. Odprite seznam senzorjev tako, da v ukazno okno vnesete "r.testSensors".

Na podlagi barve našega predmeta, ki določa, koliko svetlobe se odbije, nastavite zahteve, da se stavek while izvaja kot funkcija>. V našem primeru smo senzor sprednje svetlobe nastavili tako, da zažene kodo v stavku while, če je bil odčitek na levem ali desnem senzorju osrednje svetlobe> 25. Za izvedljivo izjavo nastavite, da se hitrost Roombe upočasni, tako da vnesete "r.setDriveVelocity (x, y)", kjer sta x in y hitrosti levega in desnega kolesa. Vnesite stavek "else", da Roomba ne upočasni za nedoločene vrednosti, in znova vnesite ukaz za nastavljeno hitrost pogona, razen z drugo hitrostjo. Stavek while končajte z "end". S tem segmentom kode se bo Roomba približal objektu in upočasnil, ko doseže določeno območje, da zmanjša vpliv.

V prilogi je posnetek zaslona naše kode, vendar jo lahko uredite tako, da najbolje ustreza parametrom vašega poslanstva.

4. korak: Ustvarite kodo odbijača

Ustvari kodo odbijača
Ustvari kodo odbijača

Ker se Roomba upočasnjuje, bo zmanjšal vpliv, ki ga ima na predmet, čeprav ne toliko, da ne sproži fizičnega odbijača. Za ta segment kode znova začnite z zanko "while" in nastavite njen izraz na true. Za stavek nastavite spremenljivko T enako izhodu odbijača, bodisi 0 ali 1, za false in true. Za to lahko uporabite "T = r.getBumpers". T bo prikazal kot strukturo. Vnesite stavek "if" in nastavite izraz za podkonstrukcijo T.front na 1 in nastavite stavek tako, da hitrost pogona nastavi na 0, z uporabo "r.setDriveVelocity (x, y)" ali "r.stop" ". Vnesite "break", da se lahko Roomba premakne, ko je izpolnjen pogoj v naslednji kodi. Dodajte "else" in nastavite njegovo izjavo, da nastavite hitrost vožnje na običajno potovalno hitrost Roombe.

V prilogi je posnetek zaslona naše kode, vendar jo lahko uredite tako, da najbolje ustreza parametrom vašega poslanstva.

5. korak: Ustvarite kodo za branje zaslona števca, jo razložite in se umaknite od vira

Ustvarite kodo za branje zaslona števca, jo razložite in se umaknite od vira
Ustvarite kodo za branje zaslona števca, jo razložite in se umaknite od vira

V središču našega projekta je Geiger-Mullerjev števec in naslednji segment kode se uporablja za ugotavljanje pomena podatkov na zaslonu z uporabo kamere. Glede na to, da zaslon našega števca spreminja barvo glede na dejavnost vira, bomo kamero nastavili tako, da bo interpretirala barvo zaslona. Začnite kodo tako, da nastavite spremenljivko, ki je enaka ukazu "r.getImage". Spremenljivka bo vsebovala 3d niz barvnih vrednosti slike, ki jo je posnela v rdeči, zeleni in modri barvi. Spremenljivke, enake povprečjem teh barvnih matrik, nastavite z ukazom "mean (mean (mean (img1 (:,:, x)))"), kjer je x celo število od 1 do 3. 1, 2 in 3 predstavljajo rdečo, zeleno in modro oz. Kot pri vseh referenčnih ukazih ne vključite narekovajev.

Naj program za 20 sekund ustavi z uporabo "pause (20)", da lahko števec natančno odčita vzorec, nato pa začne izjavo "if". Naš Roomba pisk smo imeli večkrat z uporabo "r.beep", preden je prikazal meni z besedilom "Radioiotop je najden! Pozor!" to lahko dosežete z ukazom "waitfor (helpdlg ({'texthere'}))". Ko kliknete v redu, bo Roomba še naprej sledil preostali kodi v stavku "if". kombinacijo ukazov "r.moveDistance" in "r.turnAngle". Prepričajte se, da stavek if zaključite s "end".

V prilogi je posnetek zaslona naše kode, vendar jo lahko uredite tako, da najbolje ustreza parametrom vašega poslanstva.

6. korak: Ustvarite kodo senzorja Cliff

Ustvarite kodo senzorja Cliff
Ustvarite kodo senzorja Cliff

Če želite ustvariti kodo za uporabo Roombinih vgrajenih senzorjev pečine, začnite z zanko "while" in nastavite njen izraz na true. Spremenljivko nastavite na enako "r.getCliffSensors", kar bo povzročilo strukturo. Zaženite stavek "if" in nastavite spremenljivki "X.leftFront" in "X.rightFront" iz strukture na večjo od neke vnaprej določene vrednosti, kjer je "X" spremenljivka, za katero ste izbrali ukaz "r.getCliffSensors" biti enak. V našem primeru smo uporabili 1000, saj je bil kos belega papirja uporabljen za predstavitev pečine, in ko so se senzorji približali, so se vrednosti povečale na precej več kot 1000, kar je zagotovilo, da se bo koda izvršila le, ko bo odkrita pečina. Nato dodajte ukaz "break" in nato vnesite stavek "else". Za stavek "else", ki se bo izvajal, če ni zaznana pečina, nastavite hitrost vožnje na običajno hitrost za vsako kolo. Če Roomba zazna pečine, se izvede "prelom", nato pa se izvede koda zunaj zanke while. Ko postavite "konec" za zanko "if" in "while", nastavite Roombo, da se premakne nazaj z ukazom premakni razdaljo. Če želite astronavte opozoriti, da je v bližini pečina, nastavite hitrosti vožnje vsakega kolesa, x in y v ukazu za hitrost vožnje, na a in -a, kjer je a realno število. To bo povzročilo vrtenje Roombe in opozorilo astronavta na pečino.

V prilogi je posnetek zaslona naše kode, vendar jo lahko uredite tako, da najbolje ustreza parametrom vašega poslanstva.

7. korak: Zaključek

Zaključek
Zaključek

Končni cilj RADbota na Marsu je pomagati astronavtom pri njihovem raziskovanju in kolonizaciji rdečega planeta. Z identifikacijo radioaktivnih vzorcev na površini upamo, da bo v tem primeru robot ali rover resnično zagotovil varnost astronavtov in pomagal pri identifikaciji virov energije za njihove baze. Po vseh teh korakih in morda z nekaj poskusi in napakami bi moral biti vaš RADbot zagnan. Radioaktivni vzorec postavite nekam v svoje preskusno območje, izvedite kodo in opazujte, kako rover počne tisto, za kar je bil zasnovan. Uživajte v svojem RADbotu!

-Ekipa RADbot EF230

Priporočena: