Cuprins:

RADbot: 7 pași
RADbot: 7 pași

Video: RADbot: 7 pași

Video: RADbot: 7 pași
Video: [Walkthrough] BIT.TRIP RUNNER - 2-7 Radbot 2024, Octombrie
Anonim
RADbotul
RADbotul

Un proiect al lui Jackson Breakell, Tyler McCubbins și Jakob Thaler pentru EF 230

Pe Marte, astronauții vor fi supuși unei varietăți de pericole, de la temperaturi extreme până la furtuni de praf. Un factor adesea trecut cu vederea este însă pericolul prezentat de radioizotopii puternici care locuiesc pe suprafața planetei. RADbot oferă asistență pentru explorarea astronauților de pe suprafața lui Marte prin identificarea probelor de roci cu activități ridicate pe măsură ce călătorește și are, de asemenea, caracteristici de siguranță programate, care utilizează senzorii săi de stâncă, senzorii de lumină, senzorii barei de protecție și o cameră, prevenind deteriorarea robotului pe terenul marțian de neiertat. Pe lângă avertizarea astronauților cu privire la posibile pericole radioactive la suprafață, caracteristica de localizare a probei radioactive a robotului ar putea fi implementată ca un instrument pentru identificarea zonelor care ar putea deține depozite mari de uraniu și alte actinide. Astronauții ar putea extrage aceste elemente, le pot îmbogăți suficient și le pot folosi în reactoare nucleare și generatoare termoelectrice, ceea ce ar putea ajuta la alimentarea unei colonii permanente, care să se autosusțină pe planetă.

Spre deosebire de rover-ul tipic de pe Marte, designul nostru prezintă componente disponibile pe raft și un preț rezonabil. Cu condiția să aveți fondurile și dorința, puteți chiar să vă construiți unul urmând acest ghid. Citiți mai departe pentru a afla cum să vă creați propriul RADbot.

Pasul 1: Achiziționați piese și materiale necesare

Achiziționați piese și materiale necesare
Achiziționați piese și materiale necesare
Achiziționați piese și materiale necesare
Achiziționați piese și materiale necesare
Achiziționați piese și materiale necesare
Achiziționați piese și materiale necesare

Ce veți avea nevoie pentru a începe (imaginile plasate în ordinea în care sunt listate)

1. One Roomba (orice model mai nou)

2. Un contor Geiger-Mueller

3. Un Raspberry Pi

4. O cameră de bord cu o priză USB

5. Un cablu micro USB la USB

6. Un cablu USB la USB

7. Un eșantion radioactiv de activitate suficientă (~ 5μSv sau mai mare)

8. Un computer cu Matlab instalat

9. Adeziv (de preferință bandă adezivă pentru o detașare ușoară)

Pasul 2: Configurarea camerei și a contorului Geiger-Muller

Configurarea camerei și a contorului Geiger-Muller
Configurarea camerei și a contorului Geiger-Muller

Acum că aveți toate materialele necesare pentru a crea RADbot, vom începe prin simpla plasare a camerei, astfel încât să poată citi activitatea pe tejghea. Așezați contorul Geiger-Muller cât mai aproape de capătul Roomba și asigurați-vă că senzorul său nu este blocat. Fixați ferm contorul în loc cu adezivul pe care l-ați ales și continuați să montați camera pentru a o orienta. Așezați camera cât mai aproape posibil de afișajul contorului pentru a preveni intrările externe să afecteze programul și fixați-l în loc odată ce vă simțiți confortabil. Vă recomandăm să salvați siguranța camerei pentru ultima dată, deoarece, când codul dvs. este terminat, puteți afișa o imagine de pe cameră pe computer, permițându-vă să poziționați camera în funcție de câmpul vizual al acesteia. Odată ce camera și contorul sunt fixate, conectați camera la una dintre intrările USB ale Raspberry Pi cu cablul USB la USB și conectați Raspberry Pi la Roomba cu cablul micro USB la USB.

Pasul 3: Conectați-vă la Roomba dvs. și creați codul senzorului de lumină

Conectați-vă la Roomba dvs. și creați codul senzorului de lumină
Conectați-vă la Roomba dvs. și creați codul senzorului de lumină

Mai întâi, descărcați setul de instrumente Roomba al site-ului web EF 230 și asigurați-vă că îl așezați în folderele specificate. Pentru a vă conecta la Roomba, pur și simplu faceți referire la autocolantul atașat la Raspberry Pi și introduceți „r = roomba (x)” în fereastra de comandă, fără ghilimele și unde x reprezintă numărul Roomba. Roomba ar trebui să redea un ton, iar butonul de curățare ar trebui să afișeze un inel verde în jurul său. Porniți codul cu o declarație „while” și consultați senzorii de lumină așa cum apar în lista senzorilor. Deschideți lista senzorilor tastând „r.testSensors” în fereastra de comandă.

Pe baza culorii obiectului nostru, care determină câtă lumină este reflectată, setați cerințele pentru ca instrucțiunea while să fie executată ca o funcție>. În cazul nostru, am setat senzorul de lumină din față pentru a rula codul în instrucțiunea while, dacă citirea senzorilor de lumină din stânga sau din dreapta centrale a fost> 25. Pentru instrucțiunea executabilă, setați viteza Roomba pentru a încetini tastând „r.setDriveVelocity (x, y)” unde x și y sunt viteza roților din stânga și respectiv din dreapta. Introduceți o instrucțiune „else”, astfel încât Roomba să nu încetinească pentru valori nespecificate și introduceți din nou comanda setată pentru viteza de acționare, cu excepția unei viteze diferite. Încheiați instrucțiunea while cu un „sfârșit”. Acest segment de cod va face Roomba să se apropie de obiect și să încetinească odată ce atinge un anumit interval pentru a minimiza impactul.

Atașat este o captură de ecran a codului nostru, dar nu ezitați să îl editați pentru a se potrivi cel mai bine parametrilor misiunii dvs.

Pasul 4: Creați codul barei de protecție

Creați codul barei de protecție
Creați codul barei de protecție

Pe măsură ce Roomba încetinește, va reduce la minimum impactul pe care îl are asupra obiectului, deși nu atât de mult încât să nu declanșeze bara de protecție fizică. Pentru acest segment de cod, începeți din nou cu o buclă „while” și setați expresia sa ca fiind adevărată. Pentru instrucțiune, setați variabila T egală cu ieșirea barei de protecție, fie 0, fie 1, pentru fals și adevărat. Puteți utiliza „T = r.getBumpers” pentru aceasta. T va ieși ca o structură. Introduceți o instrucțiune „if” și setați expresia acesteia pentru substructura T.front la egal cu 1 și setați instrucțiunea să seteze viteza de acționare la 0, folosind „r.setDriveVelocity (x, y)” sau „r.stop . Introduceți o „pauză”, astfel încât Roomba să se poată deplasa după îndeplinirea condiției din următorul cod. Adăugați un „altceva” și setați declarația sa pentru a seta viteza de acționare la viteza normală de croazieră a Roomba.

Atașat este o captură de ecran a codului nostru, dar nu ezitați să îl editați pentru a se potrivi cel mai bine parametrilor misiunii dvs.

Pasul 5: Creați cod pentru a citi ecranul contorului, interpretați-l și retrageți-vă de la sursă

Creați cod pentru a citi ecranul contorului, interpretați-l și retrageți-vă de la sursă
Creați cod pentru a citi ecranul contorului, interpretați-l și retrageți-vă de la sursă

În centrul proiectului nostru se află contorul Geiger-Muller și următorul segment de cod este utilizat pentru a determina ce înseamnă datele de pe ecran folosind camera. Având în vedere că ecranul contorului își schimbă culoarea în funcție de activitatea sursei, vom seta camera să interpreteze culoarea ecranului. Porniți codul setând o variabilă egală cu comanda „r.getImage”. Variabila va conține o serie 3D de valori de culoare ale imaginii pe care a făcut-o în roșu, verde și albastru. Setați variabile egale cu mediile acestor matrici de culori respective utilizând comanda „mean (mean (img1 (:,:, x)))” unde x este un număr întreg de la 1 la 3. 1, 2 și 3 reprezintă roșu, verde și albastru respectiv. Ca și în cazul tuturor comenzilor la care se face referire, nu includeți ghilimele.

Faceți programul să facă o pauză timp de 20 de secunde folosind „pauză (20)”, astfel încât contorul să poată obține o citire exactă a eșantionului și apoi să înceapă o declarație „dacă”. Roomba a sunat de mai multe ori folosind „r.beep” înainte de a afișa un meniu cu textul „Radioizotop găsit! Atenție!” acest lucru poate fi realizat cu comanda „waitfor (helpdlg ({'texthere'})”. După ce faceți clic pe OK, Roomba va continua să urmărească restul codului din instrucțiunea „dacă”. Faceți ca Roomba să conducă în jurul eșantionului folosind o combinație a comenzilor „r.moveDistance” și „r.turnAngle". Asigurați-vă că încheiați instrucțiunea if cu un „end".

Atașat este o captură de ecran a codului nostru, dar nu ezitați să îl editați pentru a se potrivi cel mai bine parametrilor misiunii dvs.

Pasul 6: Creați un cod senzor Cliff

Creați un cod senzor Cliff
Creați un cod senzor Cliff

Pentru a crea un cod care să utilizeze senzorii de stâncă încorporați de Roomba, începeți cu o buclă „while” și setați expresia sa ca fiind adevărată. Setați o variabilă să fie egală cu „r.getCliffSensors”, iar acest lucru va duce la o structură. Porniți o instrucțiune „if” și setați variabilele „X.leftFront” și „X.rightFront” din structură pentru a fi mai mari decât o anumită valoare predeterminată, unde „X” este variabila pe care ați ales comanda „r.getCliffSensors” la fie egal cu. În cazul nostru, am folosit 1000, deoarece o bucată de hârtie albă a fost folosită pentru a reprezenta o stâncă și, pe măsură ce senzorii se apropiau, hârtia, valorile au crescut la peste 1000, asigurându-se că codul se va executa numai atunci când o stâncă este detectată. Adăugați comanda „break” după, apoi introduceți o instrucțiune „else”. Pentru instrucțiunea „else”, care va fi executată dacă nu este detectată nicio stâncă, setați viteza de acționare la viteza normală de croazieră pentru fiecare roată. Dacă Roomba detectează o stâncă, "pauza" va fi executată, iar apoi codul din afara buclei while va fi executat. După ce ați plasat „sfârșitul” pentru buclele „dacă” și „în timp ce”, setați Roomba să se deplaseze înapoi folosind comanda distanță de mișcare. Pentru a avertiza astronauții că o stâncă se află în apropiere, setați viteza de acționare a fiecărei roți, x și y în comanda Viteza de acționare, să fie a și -a, unde a este un număr real. Acest lucru îl va face pe Roomba să se învârtă, alertând astronautul asupra stâncii.

Atașat este o captură de ecran a codului nostru, dar nu ezitați să îl editați pentru a se potrivi cel mai bine parametrilor misiunii dvs.

Pasul 7: Concluzie

Concluzie
Concluzie

Scopul final al RADbot pe Marte este de a ajuta astronauții în explorarea și colonizarea planetei roșii. Prin identificarea probelor radioactive la suprafață, speranțele noastre sunt că robotul sau roverul, în acest caz, poate păstra cu siguranță astronauții în siguranță și poate ajuta la identificarea surselor de energie pentru baza (bazele) lor. După ce ați urmat toți acești pași și poate cu unele încercări și erori, RADbot-ul dvs. ar trebui să fie în funcțiune. Plasați eșantionul radioactiv undeva în zona de testare, executați codul și urmăriți rover-ul făcând ceea ce a fost conceput să facă. Bucurați-vă de RADbot!

-Echipa EF230 RADbot

Recomandat: