Sadržaj:

RADbot: 7 koraka
RADbot: 7 koraka

Video: RADbot: 7 koraka

Video: RADbot: 7 koraka
Video: 7 железных причин есть чернослив каждый день (вот это эффект) 2024, Studeni
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. Međutim, jedan čimbenik koji se često zanemaruje je opasnost koju predstavljaju snažni radioizotopi koji se nalaze na površini planeta. RADbot pruža pomoć u istraživanju astronauta na Marsovoj površini identificiranjem uzoraka stijena s visokim aktivnostima tijekom putovanja, a također 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, značajka lokacije radioaktivnog uzorka robota mogla bi se primijeniti kao alat za identificiranje područja koja bi mogla držati velike naslage urana i drugih aktinida. Astronauti bi mogli minirati te elemente, dovoljno ih obogatiti i koristiti u nuklearnim reaktorima i termoelektričnim generatorima, što bi moglo pomoći u napajanju stalne, samoodržive kolonije na planetu.

Za razliku od tipičnog Mars 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

Što vam je potrebno za početak (Slike su postavljene redom kako su navedene)

1. Jedna Roomba (bilo koji noviji model)

2. Jedan Geiger-Muellerov brojač

3. Jedna malina Pi

4. Jedna kamera na ploči s 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. Jedno računalo s 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 jednostavnim postavljanjem kamere tako da može čitati aktivnosti na pultu. Postavite Geiger-Muller brojač što bliže kraju Roombe i provjerite da njegov senzor nije blokiran. Čvrsto učvrstite brojač ljepilom koje ste odabrali i nastavite s postavljanjem fotoaparata prema njemu. Postavite kameru što je moguće bliže zaslonu brojača kako biste spriječili da vanjski ulazi utječu na program, te je postavite na mjesto kada se osjećate ugodno. Ipak, preporučujemo da osigurate kameru za spremanje jer, kad kôd završi, možete prikazati sliku s fotoaparata na računalo, omogućujući vam da kameru postavite na temelju njezinog vidnog polja. Nakon što su i kamera i brojač čvrsto postavljeni, uključite kameru u jedan od USB ulaza Raspberry Pi pomoću USB na USB kabel, a zatim priključite Raspberry Pi u Roombu pomoću mikro USB na USB kabela.

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

Povežite se s Roombom i izradite kôd senzora svjetla
Povežite se s Roombom i izradite kôd senzora svjetla

Prvo preuzmite Roomba alatni okvir web stranice EF 230 i svakako ga postavite u navedene mape. Da biste se povezali s Roombom, jednostavno se obratite naljepnici pričvršćenoj za Raspberry Pi i u naredbeni prozor unesite "r = roomba (x)", bez navodnika, a gdje x označava Roombin broj. Roomba bi trebala svirati melodiju, a gumb za čišćenje trebao bi prikazati zeleni prsten oko sebe. Započnite svoj kôd izrazom "while" i obratite se senzorima svjetla kako se pojavljuju na popisu senzora. Otvorite popis senzora upisivanjem "r.testSensors" u naredbeni prozor.

Na temelju 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, postavili smo osjetnik prednjeg svjetla da pokreće kôd u naredbi while 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, te ponovno unesite naredbu postavljene brzine pogona, osim s drugom brzinom. Naredbu while završite s "kraj". Ovaj segment koda natjerat će Roombu da se približi objektu i usporiti kad dosegne određeni raspon kako bi minimizirao utjecaj.

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

Korak 4: Izradite kôd odbojnika

Izradite kôd odbojnika
Izradite kôd odbojnika

Kako se Roomba usporava, umanjit ć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 njezin izraz na true. Za iskaz 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 pomaknuti nakon što je ispunjen uvjet u sljedećem kodu. Dodajte "else" i postavite njegovu izjavu za postavljanje brzine vožnje na normalnu brzinu krstarenja Roombe.

U privitku 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 zaslona brojača, protumačite ga i povucite se s izvora

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

U središtu našeg projekta nalazi se 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 zaslon našeg brojača mijenja boju ovisno o aktivnosti izvora, kameru ćemo postaviti tako da tumači boju zaslona. Pokrenite svoj kôd postavljanjem varijable jednake naredbi "r.getImage". Varijabla će sadržavati 3d niz vrijednosti boja slike koju je snimila u crvenoj, zelenoj i plavoj boji. Postavite varijable jednake prosjecima ovih matrica boja pomoću 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 naredbe koje se spominju, nemojte uključivati navodnike.

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

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

Korak 6: Stvorite kôd senzora litice

Napravite kôd senzora litice
Napravite kôd senzora litice

Da biste stvorili kôd za korištenje Roombinih ugrađenih senzora za litice, počnite s "while" petljom i postavite njezin 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 na 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 kad se otkrije litica. Nakon toga dodajte naredbu "break", a zatim umetnite izraz "else". Za izraz "else", koji ć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 pomiče unatrag pomoću naredbe move distance. Kako biste upozorili astronaute da je u blizini 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 privitku 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 crvenog planeta. Identificiranjem radioaktivnih uzoraka na površini, nadamo se da će robot ili rover, u ovom slučaju, zaista moći 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šaje i pogreške, vaš bi RADbot trebao biti pokrenut. Postavite radioaktivni uzorak negdje unutar područja ispitivanja, izvršite kôd i gledajte kako rover radi ono za što je dizajniran. Uživajte u svom RADbotu!

-Radbot tim EF230

Preporučeni: