Indholdsfortegnelse:

RADbot: 7 trin
RADbot: 7 trin

Video: RADbot: 7 trin

Video: RADbot: 7 trin
Video: ТОП 7 внедорожников для Российских дорог 2024, Oktober
Anonim
RADboten
RADboten

Et projekt af Jackson Breakell, Tyler McCubbins og Jakob Thaler for EF 230

På Mars vil astronauter blive udsat for en række farer, lige fra ekstreme temperaturer til støvstorme. En faktor, der ofte overses, er imidlertid faren, som kraftfulde radioisotoper opstår på planetens overflade. RADbot giver bistand til at udforske astronauter på Mars 'overflade ved at identificere stenprøver med høje aktiviteter, mens den bevæger sig, og har også programmerede sikkerhedsfunktioner, der udnytter dens klippesensorer, lyssensorer, kofangersensorer og et kamera, der forhindrer robotten i at beskadige på det ubarmhjertige Mars -terræn. Udover at advare astronauter om mulige radioaktive farer på overfladen, kunne robotens radioaktive prøveplaceringsfunktion implementeres som et værktøj til at identificere områder, der kunne indeholde store aflejringer af uran og andre aktinider. Astronauter kunne udvinde disse elementer, berige dem tilstrækkeligt og bruge dem i atomreaktorer og termoelektriske generatorer, hvilket kunne hjælpe med at drive en permanent, selvbærende koloni på planeten.

I modsætning til den typiske Mars-rover har vores design komponenter på hylden og en rimelig pris. Forudsat at du har midler og lyst, kan du endda bygge en selv ved at følge denne vejledning. Læs venligst videre for at lære at lave din egen RADbot.

Trin 1: Anskaf nødvendige dele og materialer

Anskaf nødvendige dele og materialer
Anskaf nødvendige dele og materialer
Anskaf nødvendige dele og materialer
Anskaf nødvendige dele og materialer
Anskaf nødvendige dele og materialer
Anskaf nødvendige dele og materialer

Hvad skal du bruge for at komme i gang (Billeder placeret i den rækkefølge, de er angivet)

1. Én Roomba (enhver nyere model)

2. En Geiger-Mueller-tæller

3. En Raspberry Pi

4. Et kort med et USB -stik

5. Et mikro -USB til USB -kabel

6. Et USB til USB -kabel

7. En radioaktiv prøve med tilstrækkelig aktivitet (~ 5μSv eller højere)

8. Én computer med Matlab installeret

9. Klæbemiddel (helst gaffatape for nem aftagelse)

Trin 2: Konfiguration af kamera- og Geiger-Muller-tælleren

Konfiguration af kamera- og Geiger-Muller-tælleren
Konfiguration af kamera- og Geiger-Muller-tælleren

Nu hvor du har alt det nødvendige materiale til at oprette RADbot, starter vi med blot at placere kameraet, så det kan læse aktiviteten på tælleren. Placer Geiger-Muller-tælleren så tæt på enden af Roomba som muligt, og sørg for, at dens sensor ikke er blokeret. Fastgør tælleren på plads med det klæbemiddel, du har valgt, og fortsæt med at montere kameraet, så det vender mod det. Placer kameraet så tæt som muligt på tællerens display for at forhindre, at indgange udefra påvirker programmet, og fastgør det på plads, når du føler dig godt tilpas. Vi anbefaler dog, at du gemmer kameraets sikring til sidst, fordi når din kode er færdig, kan du vise et billede fra kameraet på din computer, så du kan placere kameraet baseret på dets synsfelt. Når både kameraet og tælleren er på plads, skal du tilslutte kameraet til en af USB -indgangene på Raspberry Pi med USB til USB -kablet, og tilslut Raspberry Pi til Roomba med mikro -USB til USB -kablet.

Trin 3: Opret forbindelse til din Roomba og opret lyssensorkode

Opret forbindelse til din Roomba, og opret lyssensorkode
Opret forbindelse til din Roomba, og opret lyssensorkode

Download først Roomba -værktøjskassen på EF 230 -webstedet, og sørg for at placere den i de angivne mapper. For at oprette forbindelse til din Roomba skal du blot henvise til mærkaten, der er knyttet til Raspberry Pi, og indtaste "r = roomba (x)" i kommandovinduet uden anførselstegn, og hvor x står for Roombas nummer. Roomba skal afspille en melodi, og rengøringsknappen skal vise en grøn ring omkring den. Start din kode med en "while" -erklæring, og referer til lyssensorerne, som de vises på sensorlisten. Åbn sensorlisten ved at skrive "r.testSensors" i kommandovinduet.

Baseret på farven på vores objekt, som bestemmer, hvor meget lys der reflekteres, skal du stille kravene til while -sætningen, der skal udføres som en> funktion. I vores tilfælde har vi indstillet den forreste lyssensor til at køre koden i while -sætningen, hvis aflæsningen på venstre eller højre center -lyssensor var> 25. For den eksekverbare sætning skal du indstille Roomba's hastighed til at bremse ved at skrive "r.setDriveVelocity (x, y)", hvor x og y er hastighederne på henholdsvis venstre og højre hjul. Indsæt en "else" -sætning, så Roomba ikke bremser for uspecificerede værdier, og indtast den indstillede drevhastighedskommando igen, undtagen med en anden hastighed. Afslut while -sætningen med en "ende". Dette kodesegment får Roomba til at nærme sig objektet og bremse, når det når et bestemt område for at minimere påvirkningen.

Vedhæftet er et skærmbillede af vores kode, men du er velkommen til at redigere den, så den passer bedst til dine missionsparametre.

Trin 4: Opret kofangerkode

Opret kofangerkode
Opret kofangerkode

Da Roomba bremser, vil det minimere den indvirkning, det har på objektet, selvom det ikke er så meget, at det ikke udløser den fysiske kofanger. For dette segment af kode skal du begynde med en "while" -sløjfe igen, og indstille dets udtryk til at være sandt. For sætningen skal variablen T være lig med kofangerens output, enten 0 eller 1, for falsk og sand. Du kan bruge "T = r.getBumpers" til dette. T udsendes som en struktur. Indtast en "if" -sætning, og sæt dens udtryk for understrukturen T.front til lig med 1, og sæt sætningen til enten at indstille drevhastigheden til 0 ved hjælp af "r.setDriveVelocity (x, y)" eller "r.stop ". Indtast en "pause", så Roomba kan bevæge sig, efter at betingelsen i den næste kode er opfyldt. Tilføj et "andet", og angiv sit udsagn for at indstille drevhastigheden til den normale cruisinghastighed for Roomba.

Vedhæftet er et skærmbillede af vores kode, men du er velkommen til at redigere den, så den passer bedst til dine missionsparametre.

Trin 5: Opret skærm med kode til læsetæller, fortolk den og træk dig tilbage fra kilden

Opret kode for at læse tællerskærm, fortolk den og træk dig tilbage fra kilden
Opret kode for at læse tællerskærm, fortolk den og træk dig tilbage fra kilden

Kernen i vores projekt er Geiger-Muller-tælleren, og følgende kodesegment bruges til at bestemme, hvad dataene på skærmen betyder ved hjælp af kameraet. Da vores tællers skærm ændrer farve baseret på kildens aktivitet, sætter vi kameraet til at fortolke skærmens farve. Start din kode ved at indstille en variabel svarende til kommandoen "r.getImage". Variablen vil indeholde et 3d -array af farveværdier for det billede, det tog i rødt, grønt og blåt. Angiv variabler, der er lig med gennemsnitsværdierne for disse respektive farvematricer ved hjælp af kommandoen "middelværdi (middelværdi (img1 (:,:, x)))" ", hvor x er et heltal fra 1 til 3. 1, 2 og 3 repræsenterer rød, grøn og henholdsvis blå. Som med alle de kommandoer, der henvises til, skal du ikke inkludere anførselstegn.

Lad programmet pause i 20 sekunder ved hjælp af "pause (20)", så tælleren kan opnå en nøjagtig aflæsning af prøven, og derefter starte en "hvis" -udsætning. Vi fik vores Roomba -bip flere gange ved at bruge "r.beep", inden det fik vist en menu med teksten "Radioisotop fundet! Forsigtig!" dette kan opnås med kommandoen "waitfor (helpdlg ({'texthere'})". Efter at have klikket på ok, vil Roomba fortsætte med at følge resten af koden i "if" -udsætningen. Få Roomba til at køre rundt om prøven vha. en kombination af kommandoerne "r.moveDistance" og "r.turnAngle". Sørg for at afslutte din if -sætning med en "ende".

Vedhæftet er et skærmbillede af vores kode, men du er velkommen til at redigere den, så den passer bedst til dine missionsparametre.

Trin 6: Opret en klippesensorkode

Opret en Cliff Sensor Code
Opret en Cliff Sensor Code

For at oprette en kode til brug af Roombas indbyggede kliffsensorer skal du begynde med en "while" -sløjfe og indstille dens udtryk til at være sandt. Indstil en variabel til at være lig med "r.getCliffSensors", og dette vil resultere i en struktur. Start en "if" -sætning, og indstil variablerne "X.leftFront" og "X.rightFront" fra strukturen til at være større end en forudbestemt værdi, hvor "X" er den variabel, du valgte kommandoen "r.getCliffSensors" til være lig med. I vores tilfælde brugte vi 1000, da et stykke hvidt papir blev brugt til at repræsentere en klippe, og da sensorerne nærmede sig, papiret, voksede værdierne til langt over 1000, hvilket sikrer, at koden kun udføres, når en klippe opdages. Tilføj kommandoen "break" efter, og indsæt derefter en "else" -erklæring. For "andet" -udsagnet, som vil blive udført, hvis der ikke registreres en klippe, skal du indstille drivhastigheden til den normale krydshastighed for hvert hjul. Hvis Roomba opdager en klippe, vil "break" blive udført, og derefter vil koden uden for while loop blive eksekveret. Efter at have placeret "slut" for "hvis" og "mens" loop, skal du indstille Roomba til at bevæge sig baglæns ved hjælp af kommandoen flytte afstand. For at advare astronauter om, at en klippe er i nærheden, skal du indstille drivhastighederne for hvert hjul, x og y i kommandoen for kørehastighed, til at være a og -a, hvor a er et reelt tal. Dette får Roomba til at dreje og advare astronauten til klinten.

Vedhæftet er et skærmbillede af vores kode, men du er velkommen til at redigere den, så den passer bedst til dine missionsparametre.

Trin 7: Konklusion

Konklusion
Konklusion

RADbots ultimative mål på Mars er at hjælpe astronauter med deres udforskning og kolonisering af den røde planet. Ved at identificere radioaktive prøver på overfladen er vores håb om, at robotten eller roveren i dette tilfælde virkelig kan holde astronauter sikre og hjælpe med at identificere strømkilder til deres base (r). Efter at have fulgt alle disse trin, og måske med nogle forsøg og fejl, skulle din RADbot være i gang. Placer den radioaktive prøve et sted i dit testområde, udfør din kode, og se roveren gøre, hvad den var designet til at gøre. Nyd din RADbot!

-EF230 RADbot -teamet

Anbefalede: