Taula de continguts:
- Pas 1: adquiriu les peces i els materials necessaris
- Pas 2: Configuració de la càmera i el comptador Geiger-Muller
- Pas 3: connecteu-vos a Roomba i creeu un codi de sensor de llum
- Pas 4: creeu un codi de para-xocs
- Pas 5: creeu codi per llegir la pantalla del comptador, interpretar-lo i retirar-vos de la font
- Pas 6: creeu un codi de sensor de penya-segat
- Pas 7: Conclusió
Vídeo: El RADbot: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
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
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
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
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
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
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
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ó
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:
Disseny de jocs en Flick en 5 passos: 5 passos
Disseny de jocs en Flick en 5 passos: Flick és una manera molt senzilla de fer un joc, sobretot com un trencaclosques, una novel·la visual o un joc d’aventures
Detecció de cares a Raspberry Pi 4B en 3 passos: 3 passos
Detecció de cares a Raspberry Pi 4B en 3 passos: en aquest manual, farem la detecció de cares a Raspberry Pi 4 amb Shunya O / S mitjançant la biblioteca Shunyaface. Shunyaface és una biblioteca de reconeixement / detecció de cares. El projecte té com a objectiu aconseguir una velocitat de detecció i reconeixement més ràpida amb
Com fer un comptador de passos ?: 3 passos (amb imatges)
Com fer un comptador de passos ?: Jo solia tenir un bon rendiment en molts esports: caminar, córrer, anar en bicicleta, jugar a bàdminton, etc. M’encanta viatjar poc després. Bé, mireu el meu ventre corpulent … Bé, de totes maneres, decideixo tornar a començar a fer exercici. Quin equip he de preparar?
Mirall de vanitat de bricolatge en passos senzills (amb llums de tira LED): 4 passos
Mirall de vanitat de bricolatge en passos senzills (amb llums de tires LED): en aquest post vaig crear un mirall de vanitat de bricolatge amb l'ajut de les tires LED. És molt genial i també heu de provar-les
Arduino Halloween Edition: pantalla emergent de zombis (passos amb imatges): 6 passos
Arduino Halloween Edition: pantalla emergent de zombis (passos amb imatges): voleu espantar els vostres amics i fer soroll a Halloween? O simplement voleu fer una bona broma? Aquesta pantalla emergent de Zombies ho pot fer! En aquest instructiu us ensenyaré a fer zombis fàcilment amb Arduino. L'HC-SR0