Sisällysluettelo:

RADbot: 7 vaihetta
RADbot: 7 vaihetta

Video: RADbot: 7 vaihetta

Video: RADbot: 7 vaihetta
Video: Как вылечить ДИАБЕТ 2 типа: 7 шагов. Простые, но эффективные советы по лечению сахарного диабета. 2024, Lokakuu
Anonim
RADbot
RADbot

Jackson Breakellin, Tyler McCubbinsin ja Jakob Thalerin projekti EF 230: lle

Marsilla astronautit altistuvat monille vaaroille äärimmäisistä lämpötiloista pölymyrskyihin. Yksi usein unohdettu tekijä on kuitenkin planeetan pinnalla olevien voimakkaiden radioisotooppien aiheuttama vaara. RADbot auttaa tutkimaan astronauteja Marsin pinnalla tunnistamalla kivinäytteitä, joilla on suuri aktiivisuus matkan aikana, ja siinä on myös ohjelmoituja turvaominaisuuksia, jotka hyödyntävät sen kallioanturia, valoanturia, puskurianturia ja kameraa estäen robotin vahingoittumisen anteeksiantamattomalla Marsin maastolla. Sen lisäksi, että astronauteja varoitetaan mahdollisista radioaktiivisista vaaroista pinnalla, robotin radioaktiivisen näytteen sijaintiominaisuus voitaisiin toteuttaa välineenä tunnistaa alueet, joilla voi olla suuria uraani- ja muita aktinidejä. Astronautit voisivat louhia nämä elementit, rikastuttaa niitä riittävästi ja käyttää niitä ydinreaktoreissa ja lämpösähkögeneraattoreissa, mikä voisi auttaa ylläpitämään pysyvää, omavaraista siirtokuntaa planeetalla.

Toisin kuin tyypillinen Mars-kulkija, suunnittelussa on valmiita komponentteja ja kohtuullinen hintalappu. Jos sinulla on rahaa ja halua, voit jopa rakentaa sen itse noudattamalla tätä opasta. Lue lisää oppiaksesi tekemään oma RADbot.

Vaihe 1: Hanki tarvittavat osat ja materiaalit

Hanki tarvittavat osat ja materiaalit
Hanki tarvittavat osat ja materiaalit
Hanki tarvittavat osat ja materiaalit
Hanki tarvittavat osat ja materiaalit
Hanki tarvittavat osat ja materiaalit
Hanki tarvittavat osat ja materiaalit

Mitä tarvitset päästäksesi alkuun (Kuvat on asetettu luettelon mukaisessa järjestyksessä)

1. Yksi Roomba (mikä tahansa uudempi malli)

2. Yksi Geiger-Mueller-laskuri

3. Yksi Vadelma Pi

4. Yksi piirikamera, jossa on USB -pistorasia

5. Yksi mikro -USB -USB -kaapeli

6. Yksi USB -USB -kaapeli

7. Yksi radioaktiivinen näyte, jolla on riittävä aktiivisuus (~ 5μSv tai enemmän)

8. Yksi tietokone, johon on asennettu Matlab

9. Liima (mieluiten teippi helpon irrotettavuuden vuoksi)

Vaihe 2: Kameran ja Geiger-Muller-laskurin määrittäminen

Kameran ja Geiger-Muller-laskurin määrittäminen
Kameran ja Geiger-Muller-laskurin määrittäminen

Nyt kun sinulla on kaikki tarvittavat materiaalit RADbotin luomiseen, aloitamme yksinkertaisesti asettamalla kameran niin, että se voi lukea laskurin toiminnan. Aseta Geiger-Muller-laskuri mahdollisimman lähelle Roomban päätä ja varmista, että sen anturi ei ole tukossa. Kiinnitä laskuri tukevasti paikalleen valitsemallasi liimalla ja jatka kameran asentamista sitä vasten. Aseta kamera mahdollisimman lähelle laskurin näyttöä, jotta ulkopuoliset tulot eivät vaikuta ohjelmaan, ja kiinnitä se paikalleen, kun tunnet olosi mukavaksi. Suosittelemme kuitenkin, että tallennat kameran turvan viimeiseksi, koska kun koodi on valmis, voit näyttää kameran kuvan tietokoneellesi, jolloin voit sijoittaa kameran sen näkökentän perusteella. Kun sekä kamera että laskuri ovat tukevasti paikallaan, kytke kamera johonkin Raspberry Pi: n USB -sisääntulosta USB -USB -kaapelilla ja Raspberry Pi Roombaan mikro -USB -USB -kaapelilla.

Vaihe 3: Yhdistä Roombaasi ja luo valoanturikoodi

Yhdistä Roombaasi ja luo valoanturikoodi
Yhdistä Roombaasi ja luo valoanturikoodi

Lataa ensin EF 230 -sivuston Roomba -työkalupakki ja muista sijoittaa se määritettyihin kansioihin. Muodosta yhteys Roombaasi vain viittaamalla Raspberry Pi -laitteeseen kiinnitettyyn tarraan ja kirjoittamalla komentoikkunaan "r = roomba (x)" ilman lainausmerkkejä ja x tarkoittaa Roomban numeroa. Roomban pitäisi soittaa viritys, ja puhdistuspainikkeen ympärillä pitäisi näkyä vihreä rengas. Aloita koodisi "while" -lausekkeella ja katso valoanturit sellaisina kuin ne näkyvät anturiluettelossa. Avaa anturiluettelo kirjoittamalla komentoikkunaan "r.testSensors".

Aseta objektin värin perusteella, joka määrittää kuinka paljon valoa heijastuu, aseta while -lausekkeen vaatimukset suoritettavaksi> -funktiona. Meidän tapauksessamme asetimme etuvaloanturin suorittamaan koodin while -lausekkeessa, jos vasemman tai oikean keskivaloanturin lukema oli> 25. Suorita suoritettava lauseke asettamalla Roomban nopeus hidastamaan kirjoittamalla "r.setDriveVelocity (x, y)", jossa x ja y ovat vasemman ja oikean pyörän nopeudet. Lisää "else" -lauseke, jotta Roomba ei hidasta määrittämättömiä arvoja, ja syötä asetettu nopeuskomento uudelleen, paitsi eri nopeudella. Lopeta while -lause "lopulla". Tämä koodisegmentti saa Roomban lähestymään kohdetta ja hidastamaan sen saavutettuaan tietyn alueen vaikutuksen minimoimiseksi.

Liitteenä on kuvakaappaus koodistamme, mutta voit muokata sitä parhaiten tehtävän parametrien mukaan.

Vaihe 4: Luo puskurikoodi

Luo puskurikoodi
Luo puskurikoodi

Kun Roomba hidastaa vauhtia, se minimoi sen vaikutuksen kohteeseen, vaikkakaan ei niin paljon, ettei se laukaise fyysistä puskuria. Aloita tälle koodisegmentille uudelleen "while" -silmukalla ja aseta sen lauseke tosi. Aseta lausunnolle muuttuja T, joka on yhtä suuri kuin puskurin lähtö, joko 0 tai 1, arvoksi false ja true. Voit käyttää tätä "T = r.getBumpers". T antaa rakenteen. Kirjoita "if" -lauseke ja aseta sen lauseke alirakenteelle T.front yhtä suuri kuin 1 ja aseta lause joko aseman nopeudeksi 0 käyttämällä "r.setDriveVelocity (x, y)" tai "r.stop ". Anna "tauko", jotta Roomba voi siirtyä seuraavan koodin ehdon täyttyessä. Lisää "muu" ja aseta sen lauseke asettaaksesi nopeuden Roomban normaaliin matkustusnopeuteen.

Liitteenä on kuvakaappaus koodistamme, mutta voit muokata sitä parhaiten tehtävän parametrien mukaan.

Vaihe 5: Luo koodi laskurinäytön lukemiseen, tulkitse se ja vetäydy lähteestä

Luo koodi lukea laskurinäyttö, tulkita se ja vetäytyä lähteestä
Luo koodi lukea laskurinäyttö, tulkita se ja vetäytyä lähteestä

Projektimme ytimessä on Geiger-Muller-laskuri, ja seuraavaa koodisegmenttiä käytetään määrittämään, mitä näytön tiedot kameran avulla tarkoittavat. Koska laskurimme näyttö vaihtaa väriä lähteen toiminnan perusteella, asetamme kameran tulkitsemaan näytön värin. Aloita koodi asettamalla muuttuja, joka on sama kuin komento "r.getImage". Muuttuja sisältää kolmiulotteisen värivalikoiman kuvan ottamista punaisista, vihreistä ja sinisistä. Aseta muuttujat, jotka vastaavat kyseisten värimatriisien keskiarvoja, käyttämällä komentoa "keskiarvo (keskiarvo (img1 (:,:, x)))" jossa x on kokonaisluku 1 - 3. 1, 2 ja 3 edustavat punaista, vihreää ja sinistä vastaavasti. Kuten kaikkien viitattujen komentojen kohdalla, älä lainausmerkkejä.

Anna ohjelman pysähtyä 20 sekunniksi käyttämällä "tauko (20)" -toimintoa, jotta laskuri voi saada näytteen tarkan lukeman ja aloittaa sitten "jos" -lausekkeen. Meillä oli Roomba -piippaus useita kertoja käyttämällä "r.beep" -toimintoa, ennen kuin se näytti valikon, jossa oli teksti "Radioisotooppi löydetty! Varoitus!" tämä voidaan tehdä komennolla "waitfor (helpdlg ({'texthere'})". Kun olet napsauttanut ok, Roomba jatkaa "if" -lausekkeen muun koodin noudattamista. Anna Roomban ajaa näytteen ympäri käyttämällä komentojen "r.moveDistance" ja "r.turnAngle" yhdistelmä. Varmista, että lopetat if -lauseesi "end".

Liitteenä on kuvakaappaus koodistamme, mutta voit muokata sitä parhaiten tehtävän parametrien mukaan.

Vaihe 6: Luo kallioanturikoodi

Luo Cliff -anturikoodi
Luo Cliff -anturikoodi

Jos haluat luoda koodin Roomban sisäänrakennettujen kallioanturien käyttämiseksi, aloita "while" -silmukalla ja aseta sen lauseke oikeaksi. Aseta muuttuja olemaan yhtä suuri kuin "r.getCliffSensors", ja tuloksena on rakenne. Aloita "if" -lauseke ja aseta rakenteen muuttujat "X.leftFront" ja "X.rightFront" suuremmiksi kuin jokin ennalta määrätty arvo, jossa "X" on muuttuja, jonka valitsit komennolla "r.getCliffSensors" olla yhtä kuin. Meidän tapauksessamme käytimme 1000, koska valkoista paperia käytettiin kalliota edustamaan, ja kun anturit lähestyivät paperia, arvot kasvoivat reilusti yli 1000, mikä varmistaa, että koodi suoritetaan vain, kun kallio havaitaan. Lisää komento "break" perään ja lisää sitten "else" -lauseke. "Muu" -lausekkeen kohdalla, joka suoritetaan, jos kalliota ei havaita, aseta ajonopeus jokaisen pyörän normaalille ajonopeudelle. Jos Roomba havaitsee kallion, "break" suoritetaan ja sitten while -silmukan ulkopuolella oleva koodi suoritetaan. Kun olet asettanut "end" -silmukan "if" ja "while", aseta Roomba siirtymään taaksepäin käyttämällä etäisyyskomentoa. Varoita astronautteja, että kallio on lähellä, aseta kunkin pyörän, x ja y, ajonopeuksiksi ajonopeuskomennossa a ja -a, missä a on reaaliluku. Tämä saa Roomban pyörimään varoittamalla astronautin kallion päällä.

Liitteenä on kuvakaappaus koodistamme, mutta voit muokata sitä parhaiten tehtävän parametrien mukaan.

Vaihe 7: Johtopäätös

Johtopäätös
Johtopäätös

RADbotin perimmäinen tavoite Marsilla on auttaa astronauteja punaisen planeetan etsimisessä ja asuttamisessa. Tunnistamalla radioaktiiviset näytteet pinnalla toivomme, että robotti tai kulkija voi tässä tapauksessa todella pitää astronautit turvassa ja auttaa tunnistamaan tukikohtiensa virtalähteet. Kun olet suorittanut kaikki nämä vaiheet ja ehkä jonkin verran kokeilua ja virhettä, RADbotisi pitäisi olla toiminnassa. Aseta radioaktiivinen näyte jonnekin testausalueellesi, suorita koodisi ja katso roverin tekevän sen, mihin se on suunniteltu. Nauti RADbotistasi!

-EF230 RADbot -tiimi

Suositeltava: