Tabla de contenido:

El RADbot: 7 pasos
El RADbot: 7 pasos

Video: El RADbot: 7 pasos

Video: El RADbot: 7 pasos
Video: Idealle Automatizador de porta deslizante IPEC - PASSO A PASSO 2024, Octubre
Anonim
El RADbot
El RADbot

Un proyecto de Jackson Breakell, Tyler McCubbins y Jakob Thaler para EF 230

En Marte, los astronautas estarán sujetos a una variedad de peligros, que van desde temperaturas extremas hasta tormentas de polvo. Sin embargo, un factor que a menudo se pasa por alto es el peligro que presentan los poderosos radioisótopos que residen en la superficie del planeta. El RADbot brinda asistencia para explorar astronautas en la superficie de Marte identificando muestras de rocas con actividades elevadas a medida que viaja, y también tiene características de seguridad programadas que utilizan sus sensores de acantilado, sensores de luz, sensores de parachoques y una cámara, evitando que el robot se dañe. en el implacable terreno marciano. Además de advertir a los astronautas de posibles peligros radiactivos en la superficie, la función de ubicación de muestras radiactivas del robot podría implementarse como una herramienta para identificar áreas que podrían contener grandes depósitos de uranio y otros actínidos. Los astronautas podrían extraer estos elementos, enriquecerlos lo suficiente y usarlos en reactores nucleares y generadores termoeléctricos, lo que podría ayudar a alimentar una colonia permanente y autosuficiente en el planeta.

A diferencia del típico rover de Marte, nuestro diseño presenta componentes listos para usar y un precio razonable. Siempre que tenga los fondos y el deseo, incluso puede construir uno usted mismo siguiendo esta guía. Siga leyendo para aprender cómo crear su propio RADbot.

Paso 1: Adquiera las piezas y los materiales necesarios

Adquirir piezas y materiales necesarios
Adquirir piezas y materiales necesarios
Adquirir piezas y materiales necesarios
Adquirir piezas y materiales necesarios
Adquirir piezas y materiales necesarios
Adquirir piezas y materiales necesarios

Qué necesitará para comenzar (Imágenes colocadas en el orden en que se enumeran)

1. Un Roomba (cualquier modelo más nuevo)

2. Un contador Geiger-Mueller

3. Una Raspberry Pi

4. Una cámara de placa con una salida USB

5. Un cable micro USB a USB

6. Un cable USB a USB

7. Una muestra radiactiva de actividad suficiente (~ 5μSv o más)

8. Una computadora con Matlab instalado

9. Adhesivo (preferiblemente cinta adhesiva para facilitar la extracción)

Paso 2: Configuración de la cámara y el contador Geiger-Muller

Configuración de la cámara y el contador Geiger-Muller
Configuración de la cámara y el contador Geiger-Muller

Ahora que tiene todos los materiales necesarios para crear el RADbot, comenzaremos simplemente colocando la cámara para que pueda leer la actividad en el mostrador. Coloque el contador Geiger-Muller lo más cerca posible del extremo del Roomba y asegúrese de que su sensor no esté bloqueado. Asegure el mostrador en su lugar firmemente con el adhesivo que eligió y proceda a montar la cámara de frente. Coloque la cámara lo más cerca posible de la pantalla del mostrador para evitar que las entradas externas afecten el programa y fíjela en su lugar una vez que se sienta cómodo. Sin embargo, le recomendamos que guarde la protección de la cámara para el final, ya que, cuando finalice su código, puede mostrar una imagen de la cámara en su computadora, lo que le permite colocar la cámara en función de su campo de visión. Una vez que tanto la cámara como el contador estén firmemente en su lugar, conecte la cámara a una de las entradas USB de la Raspberry Pi con el cable USB a USB, y conecte la Raspberry Pi al Roomba con el cable micro USB a USB.

Paso 3: Conéctese a su Roomba y cree un código de sensor de luz

Conéctese a su Roomba y cree un código de sensor de luz
Conéctese a su Roomba y cree un código de sensor de luz

Primero, descargue la caja de herramientas de Roomba del sitio web de EF 230 y asegúrese de colocarla en las carpetas especificadas. Para conectarse a su Roomba, simplemente haga referencia a la etiqueta adjunta a la Raspberry Pi e ingrese "r = roomba (x)" en la ventana de comandos, sin las comillas, y donde x representa el número de Roomba. El Roomba debería reproducir una melodía y el botón de limpieza debería mostrar un anillo verde a su alrededor. Comience su código con una declaración "mientras" y consulte los sensores de luz tal como aparecen en la lista de sensores. Abra la lista de sensores escribiendo "r.testSensors" en la ventana de comandos.

Según el color de nuestro objeto, que determina cuánta luz se refleja, establezca los requisitos para que la instrucción while se ejecute como una función>. En nuestro caso, configuramos el sensor de luz frontal para ejecutar el código en la declaración while si la lectura en los sensores de luz central izquierdo o derecho era> 25. Para la instrucción ejecutable, configure la velocidad del Roomba para que disminuya escribiendo "r.setDriveVelocity (x, y)" donde xey son las velocidades de las ruedas izquierda y derecha, respectivamente. Inserte una declaración "else", de modo que el Roomba no disminuya la velocidad para valores no especificados, e ingrese el comando set drive velocity nuevamente, excepto con una velocidad diferente. Termine la instrucción while con un "fin". Este segmento de código hará que el Roomba se acerque al objeto y disminuya la velocidad una vez que alcance un cierto rango para minimizar el impacto.

Se adjunta una captura de pantalla de nuestro código, pero siéntase libre de editarlo para que se adapte mejor a los parámetros de su misión.

Paso 4: Cree un código de parachoques

Crear código de parachoques
Crear código de parachoques

A medida que el Roomba se ralentiza, minimizará el impacto que tiene sobre el objeto, aunque no tanto como para no activar el parachoques físico. Para este segmento de código, comience de nuevo con un ciclo "while" y establezca su expresión como verdadera. Para la declaración, establezca la variable T igual a la salida del parachoques, ya sea 0 o 1, para falso y verdadero. Puede utilizar "T = r.getBumpers" para esto. T saldrá como una estructura. Ingrese una instrucción "if" y establezca su expresión para la subestructura T.front en 1, y establezca la instrucción para establecer la velocidad de transmisión en 0, usando "r.setDriveVelocity (x, y)" o "r.stop ". Ingrese un "descanso" para que Roomba pueda moverse después de que se cumpla la condición en el siguiente código. Agregue un "else" y establezca su declaración para establecer la velocidad de transmisión a la velocidad de crucero normal del Roomba.

Se adjunta una captura de pantalla de nuestro código, pero siéntase libre de editarlo para que se adapte mejor a los parámetros de su misión.

Paso 5: Crear código para leer la pantalla del contador, interpretarlo y retirarse de la fuente

Crear código para leer la pantalla del contador, interpretarlo y retirarse de la fuente
Crear código para leer la pantalla del contador, interpretarlo y retirarse de la fuente

En el corazón de nuestro proyecto está el contador Geiger-Muller y el siguiente segmento de código se usa para determinar qué significan los datos en la pantalla usando la cámara. Dado que la pantalla de nuestro contador cambia de color en función de la actividad de la fuente, configuraremos la cámara para que interprete el color de la pantalla. Inicie su código estableciendo una variable igual al comando "r.getImage". La variable contendrá una matriz 3D de valores de color de la imagen que tomó en rojo, verde y azul. Establezca variables iguales a los promedios de estas respectivas matrices de color mediante el comando "mean (mean (img1 (:,:, x)))" donde x es un número entero de 1 a 3. 1, 2 y 3 representan rojo, verde y azul respectivamente. Al igual que con todos los comandos a los que se hace referencia, no incluya comillas.

Haga que el programa haga una pausa de 20 segundos usando "pause (20)" para que el contador pueda obtener una lectura precisa de la muestra, y luego comience una declaración "si". Hicimos que nuestro Roomba emitiera un pitido varias veces usando "r.beep" antes de que mostrara un menú con el texto "¡Radioisótopo encontrado! ¡Precaución!" esto se puede lograr con el comando "waitfor (helpdlg ({'texthere'})". Después de hacer clic en Aceptar, Roomba continuará siguiendo el resto del código en la declaración "if". Haga que Roomba maneje alrededor de la muestra usando una combinación de los comandos "r.moveDistance" y "r.turnAngle". Asegúrese de terminar su declaración if con un "end".

Se adjunta una captura de pantalla de nuestro código, pero siéntase libre de editarlo para que se adapte mejor a los parámetros de su misión.

Paso 6: Cree un código de sensor de desnivel

Crear un código de sensor de desnivel
Crear un código de sensor de desnivel

Para crear un código para hacer uso de los sensores de acantilado integrados de Roomba, comience con un bucle "while" y establezca su expresión como verdadera. Establezca una variable para que sea igual a "r.getCliffSensors", y esto dará como resultado una estructura. Inicie una instrucción "if" y establezca las variables "X.leftFront" y "X.rightFront" de la estructura para que sean mayores que un valor predeterminado, donde "X" es la variable que eligió con el comando "r.getCliffSensors" ser igual a. En nuestro caso, usamos 1000, ya que se usó una hoja de papel blanco para representar un acantilado y, a medida que los sensores se acercaban al papel, los valores aumentaron a más de 1000, lo que garantiza que el código solo se ejecutará cuando se detecte un acantilado.. Agregue el comando "romper" después y luego inserte una instrucción "else". Para la instrucción "else", que se ejecutará si no se detecta ningún acantilado, establezca la velocidad de conducción a la velocidad de crucero normal para cada rueda. Si Roomba detecta un acantilado, se ejecutará la "ruptura" y luego se ejecutará el código fuera del ciclo while. Después de colocar el "final" para el ciclo "si" y "mientras", configure el Roomba para que se mueva hacia atrás usando el comando mover distancia. Para advertir a los astronautas que hay un acantilado cerca, establezca las velocidades de conducción de cada rueda, xey en el comando de velocidad de conducción, para que sean ay -a, donde a es un número real. Esto hará que el Roomba gire, alertando al astronauta del acantilado.

Se adjunta una captura de pantalla de nuestro código, pero siéntase libre de editarlo para que se adapte mejor a los parámetros de su misión.

Paso 7: Conclusión

Conclusión
Conclusión

El objetivo final del RADbot en Marte es ayudar a los astronautas en su exploración y colonización del planeta rojo. Al identificar muestras radiactivas en la superficie, nuestras esperanzas son que el robot, o rover, en este caso, realmente pueda mantener a los astronautas seguros y ayudar a identificar las fuentes de energía para sus bases. Después de seguir todos estos pasos, y quizás con un poco de prueba y error, su RADbot debería estar en funcionamiento. Coloque la muestra radiactiva en algún lugar dentro de su área de prueba, ejecute su código y observe cómo el rover hace lo que fue diseñado para hacer. ¡Disfruta tu RADbot!

-El equipo EF230 RADbot

Recomendado: