Sadržaj:

RADbot: 7 koraka
RADbot: 7 koraka

Video: RADbot: 7 koraka

Video: RADbot: 7 koraka
Video: Как я стал русским | Серия 5 - 8 2024, Novembar
Anonim
RADbot
RADbot

Projekt Jacksona Breakella, Tylera McCubbinsa i Jakoba Thalera za EF 230

Na Marsu će astronauti biti izloženi raznim opasnostima, od ekstremnih temperatura do prašnjavih oluja. Jedan faktor koji se često zanemaruje je opasnost koju predstavljaju snažni radioizotopi koji se nalaze na površini planete. RADbot pruža pomoć u istraživanju astronauta na Marsovoj površini tako što identificira uzorke stijena s visokim aktivnostima tokom putovanja, a ima i programirane sigurnosne značajke koje koriste njegove senzore litice, svjetlosne senzore, senzore odbojnika i kameru, sprječavajući oštećenja robota. na neoprostivom marsovskom terenu. Osim što upozorava astronaute na moguće radioaktivne opasnosti na površini, funkcija lociranja radioaktivnog uzorka robota mogla bi se primijeniti kao alat za identifikaciju područja koja bi mogla držati velike naslage urana i drugih aktinida. Astronauti bi mogli minirati ove elemente, dovoljno ih obogatiti i koristiti u nuklearnim reaktorima i termoelektričnim generatorima, što bi moglo pomoći napajanju stalne, samoodržive kolonije na planeti.

Za razliku od tipičnog Marsovog rovera, naš dizajn sadrži komponente koje se ne prodaju i razumnu cijenu. Pod uvjetom da imate sredstava i želju, čak možete i sami izgraditi slijedeći ovaj vodič. Čitajte dalje kako biste saznali kako napraviti vlastiti RADbot.

Korak 1: Nabavite potrebne dijelove i materijale

Nabavite potrebne dijelove i materijale
Nabavite potrebne dijelove i materijale
Nabavite potrebne dijelove i materijale
Nabavite potrebne dijelove i materijale
Nabavite potrebne dijelove i materijale
Nabavite potrebne dijelove i materijale

Šta vam je potrebno za početak (Slike su postavljene redoslijedom na kojem su navedene)

1. Jedna Roomba (bilo koji noviji model)

2. Jedan Geiger-Mueller brojač

3. Jedan Raspberry Pi

4. Jedna kamera na ploči sa USB utičnicom

5. Jedan mikro USB na USB kabel

6. Jedan USB na USB kabel

7. Jedan radioaktivni uzorak dovoljne aktivnosti (~ 5μSv ili veći)

8. Jedan računar sa instaliranim Matlabom

9. Ljepilo (po mogućnosti ljepljiva traka za lako skidanje)

Korak 2: Konfiguriranje kamere i Geiger-Mullerovog brojača

Konfiguriranje kamere i Geiger-Mullerovog brojača
Konfiguriranje kamere i Geiger-Mullerovog brojača

Sada kada imate sve potrebne materijale za izradu RADbota, počet ćemo s postavljanjem kamere tako da može čitati aktivnosti na pultu. Postavite Geiger-Muller brojač što je moguće bliže kraju Roombe i provjerite da njegov senzor nije blokiran. Čvrsto pričvrstite brojač ljepilom koje ste odabrali i nastavite s postavljanjem kamere prema njemu. Postavite kameru što je moguće bliže ekranu brojača kako biste spriječili da vanjski ulazi utječu na program i pričvrstite je na mjesto kada se osjećate ugodno. Ipak, preporučujemo vam da sačuvate osiguranje kamere jer, kada kôd završi, možete prikazati sliku sa kamere na računaru, omogućavajući vam da kameru postavite na osnovu njenog vidnog polja. Kad i kamera i brojač budu čvrsto postavljeni, uključite kameru u jedan od USB ulaza Raspberry Pi pomoću USB na USB kabela i priključite Raspberry Pi u Roombu pomoću mikro USB na USB kabela.

Korak 3: Povežite se sa svojom Roombom i kreirajte kôd senzora svjetla

Povežite se na svoju Roombu i kreirajte kôd senzora svjetla
Povežite se na svoju Roombu i kreirajte kôd senzora svjetla

Prvo preuzmite Roomba toolbox web stranice EF 230 i obavezno ga postavite u navedene mape. Da biste se povezali sa svojom Roombom, jednostavno se obratite naljepnici pričvršćenoj za Raspberry Pi i unesite "r = roomba (x)" u naredbeni prozor, bez navodnika, a gdje x označava Roombin broj. Roomba bi trebala svirati melodiju, a tipka za čišćenje trebala bi prikazati zeleni prsten oko nje. Pokrenite svoj kôd s "while" naredbom i obratite se senzorima svjetla kako se pojavljuju na popisu senzora. Otvorite listu senzora upisivanjem "r.testSensors" u komandni prozor.

Na osnovu boje našeg objekta, koja određuje koliko se svjetlosti reflektira, postavite zahtjeve za while naredbu koja će se izvesti kao> funkcija. U našem slučaju, podesili smo osjetnik prednjeg svjetla da pokreće kôd u while naredbi ako je očitanje na lijevom ili desnom senzoru središnjeg svjetla bilo> 25. Za izvršnu naredbu, postavite brzinu Roombe na usporavanje upisivanjem "r.setDriveVelocity (x, y)" gdje su x i y brzine lijevog i desnog kotača. Umetnite "else" naredbu, tako da Roomba ne usporava za neodređene vrijednosti, i ponovno unesite naredbu postavljene brzine pogona, osim s drugom brzinom. Završite while naredbu s "end". Ovaj segment koda natjerat će Roombu da se približi objektu i usporiti kada dosegne određeni raspon kako bi minimizirao utjecaj.

U prilogu je snimak zaslona našeg koda, ali ga slobodno uredite kako bi najbolje odgovarao vašim parametrima misije.

Korak 4: Kreirajte kôd odbojnika

Kreirajte kôd odbojnika
Kreirajte kôd odbojnika

Kako se Roomba usporava, smanjit će utjecaj koji ima na objekt, iako ne toliko da ne aktivira fizički odbojnik. Za ovaj segment koda ponovo počnite s "while" petljom i postavite njen izraz na true. Za naredbu, postavite varijablu T jednaku izlaznom odbojniku, bilo 0 ili 1, za false i true. Za to možete koristiti "T = r.getBumpers". T će izlaziti kao struktura. Unesite izraz "if" i postavite izraz za podstrukturu T.front na jednako 1 i postavite izraz da ili postavi brzinu pogona na 0, koristeći "r.setDriveVelocity (x, y)" ili "r.stop" ". Unesite "break" kako bi se Roomba mogla kretati nakon što se ispuni uvjet u sljedećem kodu. Dodajte "else" i postavite njegovu izjavu za postavljanje brzine vožnje na normalnu brzinu krstarenja Roombe.

U prilogu je snimak zaslona našeg koda, ali ga slobodno uredite kako bi najbolje odgovarao vašim parametrima misije.

Korak 5: Kreirajte kôd za čitanje brojača, protumačite ga i povucite se iz izvora

Kreirajte kôd za čitanje brojača, protumačite ga i povucite se iz izvora
Kreirajte kôd za čitanje brojača, protumačite ga i povucite se iz izvora

U središtu našeg projekta je Geiger-Mullerov brojač, a sljedeći segment koda koristi se za određivanje značenja podataka na ekranu pomoću kamere. S obzirom na to da ekran našeg brojača mijenja boju na osnovu aktivnosti izvora, kameru ćemo postaviti tako da tumači boju ekrana. Pokrenite svoj kôd postavljanjem varijable jednake naredbi "r.getImage". Varijabla će sadržati 3d niz vrijednosti boja slike koju je snimila u crvenoj, zelenoj i plavoj boji. Postavite varijable jednake prosjecima ovih matrica boja korištenjem naredbe "mean (mean (mean (img1 (:,:, x)))") gdje je x cijeli broj od 1 do 3. 1, 2 i 3 predstavljaju crvenu, zelenu i plavo. Kao i sve referencirane naredbe, nemojte uključivati navodnike.

Neka program pauzira 20 sekundi koristeći "pause (20)" kako bi brojač mogao dobiti tačno očitavanje uzorka, a zatim započeti izraz "if". Nekoliko puta smo imali Roomba zvučni signal koristeći "r.beep" prije nego što je prikazao izbornik s tekstom "Pronađen je radioizotop! Oprez!" ovo se može postići naredbom "waitfor (helpdlg ({'texthere'})"). kombinacija naredbi "r.moveDistance" i "r.turnAngle". Svakako završite if naredbu sa "end".

U prilogu je snimak zaslona našeg koda, ali ga slobodno uredite kako bi najbolje odgovarao vašim parametrima misije.

Korak 6: Kreirajte kôd senzora litice

Kreirajte kôd senzora litice
Kreirajte kôd senzora litice

Da biste stvorili kôd za korištenje Roombinih ugrađenih senzora litica, počnite s "while" petljom i postavite njen izraz na true. Postavite varijablu na jednako "r.getCliffSensors", a to će rezultirati strukturom. Pokrenite izraz "if" i postavite varijable "X.leftFront" i "X.rightFront" iz strukture da budu veće od neke unaprijed određene vrijednosti, gdje je "X" varijabla koju ste odabrali naredbom "r.getCliffSensors" na biti jednak. U našem slučaju koristili smo 1000, jer je komad bijelog papira korišten za predstavljanje litice, a kako su se senzori približavali, papir je narastao na znatno više od 1000, osiguravajući da će se kôd izvršiti samo kada se otkrije litica. Nakon toga dodajte naredbu "break", a zatim umetnite izraz "else". Za naredbu "else", koja će se izvršiti ako se ne otkrije litica, postavite brzinu vožnje na normalnu brzinu krstarenja za svaki kotač. Ako Roomba ipak otkrije liticu, izvršit će se "break", a zatim će se izvršiti kod izvan while petlje. Nakon što postavite "kraj" za petlju "if" i "while", postavite Roombu da se kreće unatrag pomoću naredbe move distance. Da biste upozorili astronaute da se u blizini nalazi litica, postavite brzine vožnje svakog kotača, x i y u naredbi brzine vožnje, na a i -a, gdje je a realan broj. To će uzrokovati rotaciju Roombe, upozoravajući astronauta na liticu.

U prilogu je snimak zaslona našeg koda, ali ga slobodno uredite kako bi najbolje odgovarao vašim parametrima misije.

Korak 7: Zaključak

Zaključak
Zaključak

Krajnji cilj RADbota na Marsu je pomoći astronautima u njihovom istraživanju i kolonizaciji crvene planete. Identificiranjem radioaktivnih uzoraka na površini, nadamo se da će robot ili rover u ovom slučaju zaista zaštititi astronaute i pomoći u identifikaciji izvora energije za njihove baze. Nakon što slijedite sve ove korake, a možda i uz pokušaj i grešku, vaš RADbot bi trebao biti pokrenut. Postavite radioaktivni uzorak negdje unutar područja testiranja, izvršite svoj kôd i gledajte kako rover radi ono za što je dizajniran. Uživajte u svom RADbotu!

-Radbot tim EF230

Preporučuje se: