Sadržaj:
- Korak 1: Nabavite potrebne dijelove i materijale
- Korak 2: Konfiguriranje kamere i Geiger-Mullerovog brojača
- Korak 3: Povežite se sa svojom Roombom i izradite kôd senzora svjetla
- Korak 4: Izradite kôd odbojnika
- Korak 5: Kreirajte kôd za čitanje zaslona brojača, protumačite ga i povucite se s izvora
- Korak 6: Stvorite kôd senzora litice
- Korak 7: Zaključak
Video: RADbot: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
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
Š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
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
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
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
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
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
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:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način stvaranja igre, osobito nečega poput zagonetke, vizualnog romana ili avanturističke igre
Broj koraka: 17 koraka
الكشف عن عن أنواع المحاليل: محمدآل سعودالكشف عن المحاليل رابط الفديو
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom Instructableu ćemo izvršiti detekciju lica na Raspberry Pi 4 sa Shunya O/S pomoću knjižnice Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja s
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovno početi vježbati. Koju opremu trebam pripremiti?
Aduino UNO Broj koraka: 5 koraka
Aduino UNO 를 이용한 도망 치는 &&&& && l g g g g g g g g g g g g g g g 4 g 4 4 4 4 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 일자 일자 일자: 2017.01.06. ~ 2017.01.11.- 역할 분담 SW 엔지니어: 김 예은, 임동영 HW 엔지니어: 김지훈 디자이너: 이재민 레코더: 홍 다예 ------------------------ --------------------------------------------------