Taula de continguts:

El RADbot: 7 passos
El RADbot: 7 passos

Vídeo: El RADbot: 7 passos

Vídeo: El RADbot: 7 passos
Vídeo: The 7 steps of machine learning 2024, De novembre
Anonim
El RADbot
El RADbot

Un projecte de Jackson Breakell, Tyler McCubbins i Jakob Thaler per a EF 230

A Mart, els astronautes estaran sotmesos a diversos perills, que van des de temperatures extremes fins a tempestes de pols. Tanmateix, un factor que s’oblida sovint és el perill que presenten els poderosos radioisòtops que resideixen a la superfície del planeta. El RADbot proporciona ajuda per explorar els astronautes a la superfície de Mart identificant mostres de roca amb activitats elevades mentre viatja i també disposa de funcions de seguretat programades que utilitzen els seus sensors de penya-segats, sensors de llum, sensors de para-xocs i una càmera, evitant que el robot es danyi al terreny marcià imperdonable. A més d'advertir els astronautes de possibles perills radioactius a la superfície, la funció de localització de mostres radioactives del robot es podria implementar com a eina per identificar zones que podrien contenir grans dipòsits d'urani i altres actínids. Els astronautes podrien extraure aquests elements, enriquir-los suficientment i utilitzar-los en reactors nuclears i generadors termoelèctrics, cosa que podria ajudar a alimentar una colònia permanent i autosuficient al planeta.

A diferència del rover típic de Mars, el nostre disseny inclou components disponibles i un preu raonable. Sempre que tingueu els fons i el desig, fins i tot podeu crear-ne un seguint aquesta guia. Seguiu llegint per aprendre a crear el vostre propi RADbot.

Pas 1: adquiriu les peces i els materials necessaris

Adquiriu peces i materials necessaris
Adquiriu peces i materials necessaris
Adquiriu peces i materials necessaris
Adquiriu peces i materials necessaris
Adquiriu peces i materials necessaris
Adquiriu peces i materials necessaris

Què necessitareu per començar (les imatges es col·loquen en ordre perquè apareguin a la llista)

1. One Roomba (qualsevol model més recent)

2. Un comptador Geiger-Mueller

3. Un Raspberry Pi

4. Una càmera de placa amb presa de corrent USB

5. Un cable micro USB a USB

6. Un cable USB a USB

7. Una mostra radioactiva d’activitat suficient (~ 5μSv o superior)

8. Un ordinador amb Matlab instal·lat

9. Adhesiu (preferiblement cinta adhesiva per facilitar la seva extracció)

Pas 2: Configuració de la càmera i el comptador Geiger-Muller

Configuració de la càmera i el comptador Geiger-Muller
Configuració de la càmera i el comptador Geiger-Muller

Ara que teniu tots els materials necessaris per crear el RADbot, començarem simplement col·locant la càmera perquè pugui llegir l’activitat al taulell. Col·loqueu el comptador Geiger-Muller el més a prop possible del final del Roomba i assegureu-vos que el sensor no estigui bloquejat. Assegureu el taulell al seu lloc amb l'adhesiu que hàgiu triat i procediu a muntar la càmera per afrontar-la. Col·loqueu la càmera el més a prop possible de la pantalla del taulell per evitar que les entrades externes afectin el programa i assegureu-la al lloc un cop us sentiu còmode. Tanmateix, us recomanem que guardeu la fixació de la càmera perquè, quan hàgiu acabat el codi, podeu mostrar una imatge de la càmera a l'ordinador, cosa que us permetrà situar la càmera en funció del seu camp de visió. Quan la càmera i el comptador estiguin ben fixats, connecteu la càmera a una de les entrades USB del Raspberry Pi amb el cable USB a USB i connecteu el Raspberry Pi al Roomba amb el cable micro USB a USB.

Pas 3: connecteu-vos a Roomba i creeu un codi de sensor de llum

Connecteu-vos a Roomba i creeu un codi de sensor de llum
Connecteu-vos a Roomba i creeu un codi de sensor de llum

Primer, descarregueu la caixa d’eines Roomba del lloc web EF 230 i assegureu-vos de col·locar-la a les carpetes especificades. Per connectar-vos al Roomba, només cal que feu referència a l'adhesiu adjunt al Raspberry Pi i introduïu "r = roomba (x)" a la finestra d'ordres, sense les cometes, i on x significa el número de Roomba. El Roomba ha de tocar una melodia i el botó de neteja ha de mostrar un anell verd al seu voltant. Inicieu el codi amb una sentència "while" i consulteu els sensors de llum tal com apareixen a la llista de sensors. Obriu la llista de sensors escrivint "r.testSensors" a la finestra d'ordres.

Basant-vos en el color del nostre objecte, que determina la quantitat de llum que es reflecteix, definiu els requisits perquè la sentència while s'executi com a> funció. En el nostre cas, vam configurar el sensor de llum frontal perquè executés el codi a la sentència while si la lectura dels sensors de llum central esquerra o dreta era> 25. Per a la sentència executable, configureu la velocitat de Roomba perquè disminueixi escrivint "r.setDriveVelocity (x, y)" on x i y són les velocitats de les rodes esquerra i dreta respectivament. Inseriu una sentència "else", de manera que Roomba no disminueixi per a valors no especificats i torneu a introduir l'ordre set speed speed, excepte amb una velocitat diferent. Finalitzeu la sentència while amb un "final". Aquest segment de codi farà que Roomba s'aproximi a l'objecte i es redueixi la velocitat un cop arribi a un cert rang per minimitzar l'impacte.

Adjuntem una captura de pantalla del nostre codi, però no dubteu a editar-lo per adaptar-se al millor dels paràmetres de la vostra missió.

Pas 4: creeu un codi de para-xocs

Crea un codi de para-xocs
Crea un codi de para-xocs

A mesura que el Roomba es desaccelera, minimitzarà l'impacte que té sobre l'objecte, encara que no tant que no desencadeni el para-xocs físic. Per a aquest segment de codi, comenceu de nou amb un bucle "while" i configureu la seva expressió com a veritable. Per a la sentència, definiu la variable T igual a la sortida del para-xocs, ja sigui 0 o 1, per a fals i cert. Podeu utilitzar el "T = r.getBumpers" per a això. T sortirà com a estructura. Introduïu una sentència "if" i establiu la seva expressió per a la subestructura T.front a 1 i configureu la sentència per establir la velocitat de la unitat a 0, mitjançant "r.setDriveVelocity (x, y)" o "r.stop ". Introduïu un "descans" perquè Roomba es pugui moure després que es compleixi la condició del següent codi. Afegiu un "else" i configureu el seu enunciat per establir la velocitat de conducció a la velocitat de creuer normal del Roomba.

Adjuntem una captura de pantalla del nostre codi, però no dubteu a editar-lo per adaptar-se al millor dels paràmetres de la vostra missió.

Pas 5: creeu codi per llegir la pantalla del comptador, interpretar-lo i retirar-vos de la font

Creeu codi per llegir la pantalla del comptador, interpretar-lo i retirar-vos de la font
Creeu codi per llegir la pantalla del comptador, interpretar-lo i retirar-vos de la font

Al centre del nostre projecte hi ha el comptador Geiger-Muller i el següent segment de codi s’utilitza per determinar què volen dir les dades de la pantalla mitjançant la càmera. Atès que la pantalla del comptador canvia de color en funció de l'activitat de la font, configurarem la càmera perquè interpreti el color de la pantalla. Inicieu el codi establint una variable igual a l'ordre "r.getImage". La variable contindrà una matriu en 3D de valors de color de la imatge que va fer en vermell, verd i blau. Definiu variables iguals a les mitjanes d’aquestes matrius de colors respectives mitjançant l’ordre "mean (mean (img1 (:,:, x)))" on x és un nombre enter de l'1 al 3. 1, 2 i 3 representen vermell, verd i blau respectivament. Com passa amb totes les ordres a què es fa referència, no inclogueu cometes.

Feu que el programa es posi en pausa durant 20 segons mitjançant "pausa (20)" perquè el comptador pugui obtenir una lectura precisa de la mostra i, a continuació, comenci una sentència "si". Vam fer sonar el nostre Roomba diverses vegades fent servir "r.beep" abans de mostrar-li un menú amb el text "S'ha trobat un radioisòtop! Atenció!" això es pot aconseguir amb l'ordre "waitfor (helpdlg ({'texthere'})". Després de fer clic a D'acord, Roomba continuarà seguint la resta del codi de la sentència "si". Feu que Roomba condueixi la mostra fent servir una combinació de les ordres "r.moveDistance" i "r.turnAngle". Assegureu-vos de finalitzar la sentència if amb un "end".

Adjuntem una captura de pantalla del nostre codi, però no dubteu a editar-lo per adaptar-se al millor dels paràmetres de la vostra missió.

Pas 6: creeu un codi de sensor de penya-segat

Creeu un codi de sensor de penya-segat
Creeu un codi de sensor de penya-segat

Per crear un codi que faci ús dels sensors de penya-segat integrats al Roomba, comenceu amb un bucle "while" i configureu la seva expressió com a veritable. Establiu una variable perquè sigui igual a "r.getCliffSensors" i això resultarà en una estructura. Inicieu una sentència "if" i establiu les variables "X.leftFront" i "X.rightFront" de l'estructura perquè siguin superiors a algun valor predeterminat, on "X" és la variable que heu triat per a l'ordre "r.getCliffSensors". ser igual a. En el nostre cas, n’hem utilitzat 1000, ja que s’utilitzava un tros de paper blanc per representar un penya-segat i, a mesura que s’apropaven els sensors, el valor creixia fins a superar els 1000, cosa que garantia que el codi només s’executarà quan es detecti un penya-segat.. Afegiu l'ordre "break" després i, a continuació, inseriu una sentència "else". Per a la sentència "else", que s'executarà si no es detecta cap penya-segat, configureu la velocitat d'accionament a la velocitat de creuer normal per a cada roda. Si Roomba detecta un penya-segat, s'executarà el "trencament" i, a continuació, s'executarà el codi fora del bucle while. Després de col·locar el "final" per al bucle "si" i "mentre", configureu Roomba perquè es mogui cap enrere mitjançant l'ordre Mou distància. Per advertir als astronautes que hi ha un penya-segat a prop, configureu les velocitats de tracció de cada roda, x i y en el comandament de velocitat de tracció, que siguin a i -a, on a sigui un nombre real. Això farà que el Roomba giri, alertant l’astronauta sobre el penya-segat.

Adjuntem una captura de pantalla del nostre codi, però no dubteu a editar-lo perquè s'adapti millor als paràmetres de la vostra missió.

Pas 7: Conclusió

Conclusió
Conclusió

L’objectiu final del RADbot a Mart és ajudar els astronautes en la seva exploració i colonització del planeta vermell. En identificar mostres radioactives a la superfície, esperem que el robot o el rover, en aquest cas, puguin mantenir els astronautes segurs i ajudar a identificar les fonts d’energia de la seva base. Després de seguir tots aquests passos, i potser amb alguna prova i error, el RADbot hauria d’estar en funcionament. Col·loqueu la mostra radioactiva en algun lloc de la vostra àrea de proves, executeu el codi i mireu el rover fer el que estava dissenyat per fer. Gaudeix del teu RADbot!

-L’equip EF230 RADbot

Recomanat: