Tabla de contenido:

DIY Educational Micro: bit Robot: 8 pasos (con imágenes)
DIY Educational Micro: bit Robot: 8 pasos (con imágenes)

Video: DIY Educational Micro: bit Robot: 8 pasos (con imágenes)

Video: DIY Educational Micro: bit Robot: 8 pasos (con imágenes)
Video: Make a Parking Garage (micro:bit) by Strawbees 2024, Mes de julio
Anonim
Micro educativo de bricolaje: robot de bits
Micro educativo de bricolaje: robot de bits
Micro educativo de bricolaje: robot de bits
Micro educativo de bricolaje: robot de bits

Este instructivo le mostrará cómo construir un robot relativamente accesible, capaz y barato. Mi objetivo al diseñar este robot era proponer algo que la mayoría de la gente pudiera pagar, para que pudieran enseñar ciencias de la computación de una manera atractiva o para aprender sobre ella.

Una vez que haya construido este robot, podrá disfrutar de su variedad de sensores y actuadores para hacer cosas básicas pero también bastante avanzadas dependiendo de la versión que construya (proporcionaré dos versiones). Con este robot le está dando ojos (¡vista de 180 °!) Y piernas (¡con un movimiento preciso posible!) Al micro: bit, mientras que el micro: bit le brinda excelentes características como la matriz de LED, la comunicación por radio, la comunicación por bluetooth, el acelerómetro., compas, pero también acceso a todo eso con MicroPython o con un lenguaje de programación visual similar a scratch (en realidad también en C ++ y javascript, pero los encuentro menos adecuados para la educación).

También trabajaré en este instructivo para poder encaminar a los lectores y creadores a descubrir más sobre robótica móvil, electrónica, diseño y corte de madera. Para ello, diseñé todo para que fuera lo más modular posible. Por ejemplo, no usaré ningún pegamento para permitir el montaje y desmontaje libremente, lo que facilita las actualizaciones y la depuración. También haré los pasos lo más incrementales que pueda, para que puedas entender progresivamente lo que está pasando, comprobar que las cosas funcionan como deberían y llegar al final con un robot que funciona.

Paso 1: Reunir las piezas

Reuniendo las piezas
Reuniendo las piezas

Para este proyecto, el oso mínimo que necesitará es:

  • Madera MDF de 5 mm de espesor y cortador láser para el esqueleto
  • 1x18650 batería de litio, 1x protector de batería para la energía y un interruptor
  • 1xMicro: tarjeta de bits y 1xMicro: placa de extensión de bits para el cerebro (aunque ambos pueden ser reemplazados fácilmente por un Arduino)
  • Motores paso a paso 2x28BYJ-5V, controladores de motor paso a paso 2xA4988 y placa de desarrollo 2x para montar los controladores para las piernas
  • 1x TOF10120 y 1x Mini servomotor 9g para los ojos Algunos cables y tornillos
  • 1x rueda universal, altura = 15 mm

Entre ellos, solo tres partes no son estándares, por lo tanto, aquí hay enlaces para encontrarlos: busque la placa de extensión que usé aquí (pero le recomiendo que use esta en su lugar para la versión ordenada del robot. No cambie casi nada en el diseño y hará que el cableado sea mucho más simple con conectores hembra-hembra doblados), el protector de la batería aquí y la rueda universal aquí.

Idealmente también tendrás a tu disposición:

  • Un multimetro
  • Una placa de pruebas
  • Un soldador

Tanto para ellos como para el cortador láser, ¡compruebe si tiene algún fablab en su lugar! ¡Esos son lugares fantásticos para conocer a creadores inspiradores!

Paso 2: Preparar las piernas

Preparando las piernas
Preparando las piernas
Preparando las piernas
Preparando las piernas
Preparando las piernas
Preparando las piernas
Preparando las piernas
Preparando las piernas

¡Tu primera misión, si la aceptas, será hacer girar nuestro motor paso a paso usando el micro: bit como controlador! ¿Por qué un motor paso a paso? Podría haber optado por un motor de CC con reductores, pero los probé y me resulta difícil conseguir motores baratos que funcionen a baja velocidad. También pensé que sería bueno saber con precisión a qué velocidad giran mis ruedas. Por esas razones, los motores paso a paso eran la mejor opción.

Entonces, ¿cómo controlar un motor 28BYJ usando un controlador 4988? La respuesta es … un poco larga. No logré que encajara perfectamente en este instructivo, así que hice otro solo para este propósito que encontrarás aquí. Te invito a seguir esos pasos hasta el final con la creación de una pequeña placa de prototipos de 26x22mm grande con orificios de 2x2mm 17 mm aparte para montarla en los laterales como se muestra en la imagen de arriba (Tenga en cuenta que como se indica en el artículo referenciado el cable amarillo a la izquierda que sobresale está ahí para recordarle que debe soldar SLP y RST juntos).

Después de hacer que esto funcionara con un motor con la placa de creación de prototipos, también diseñé mi propia PCB para hacer las cosas un poco más ordenadas. Adjunto el archivo easyEDA correspondiente. Es un archivo txt, pero aún puede abrirlo con la plataforma de edición en línea gratuita easyEDA.

Paso 3: ¡Veo la luz! (Opcional)

Veo la luz !! (Opcional)
Veo la luz !! (Opcional)
Veo la luz !! (Opcional)
Veo la luz !! (Opcional)
Veo la luz !! (Opcional)
Veo la luz !! (Opcional)

Si solo desea construir y nada más, vaya al anterior al último párrafo de este paso para ver cómo conectar un TOF10120 al micro: bit. Si no sigue adelante.

Como nuestro micro: bit no viene con ninguna cámara o sensor de proximidad, lo hace un poco ciego para cualquier aplicación robótica móvil. Viene con un emisor de radio y un receptor que nos permitiría construir el esqueleto sobre lo que ya tenemos y obtener un robot a control remoto. ¿Pero no sería genial hacer que nuestro robot fuera autónomo? ¡Sí lo sería! Así que veamos cómo llegar.

Lo que nos interesa ahora es dotar a nuestro robot de sensores, para que nuestro robot adquiera alguna información sobre su entorno. Hay muchos tipos de sensores disponibles, pero aquí nos centraremos en el sensor de proximidad. Cuando estaba diseñando este robot, mi objetivo era principalmente que el robot no chocara contra nada, por lo que quería que detectara obstáculos. Para esto también hay algunas opciones. Una primera, muy sencilla, podría ser utilizar parachoques, pero la información sobre el entorno me parece un poco limitada. En el otro extremo, podría pensar en agregar una cámara (¡o un Lidar o un kinect!). Me encantan las cámaras, la visión por computadora y todas esas cosas, pero desafortunadamente Micro: bit no las admite (tendríamos que usar una Raspberry Pi para admitir tales dispositivos, no un micro: bit o Arduino).

Entonces, ¿qué admite micro: bit que se encuentra entre una cámara y parachoques? Hay pequeños sensores activos que envían luz al entorno y verifican lo que se recibe para obtener información sobre el mundo. El que ya conocía era el GP2Y0A41SK0F que usa un método de triangulación para estimar la distancia a los obstáculos. Sin embargo, me preguntaba si podía encontrar algo mejor, así que investigué un poco y terminé descubriendo el TOF10120 (y el GY-VL53L0XV2 pero aún no lo recibí:(). Aquí hay un buen artículo para que lo descubras. Básicamente, este sensor emite una señal infrarroja que se refleja en los obstáculos y luego recibe la luz reflejada. Dependiendo del tiempo que tardó la luz en ir y venir, el sensor puede estimar la distancia del obstáculo (de ahí el nombre TOF = tiempo de vuelo) Por su pequeño tamaño, rango de distancia y requisito de potencia, decidí usar el TOF10120.

Si bien mi primera idea fue poner tres de esos en el robot (uno al frente y dos a los lados), el año nuevo chino y la pandemia de COVID-19 no lo querían de esa manera ya que parecía causar problemas con los envíos. Entonces, como estaba limitado a un TOF10120, que también quería ver en los lados y que tenía algunos servomotores por ahí, decidí montar mi sensor en un servo. Entonces, ahora faltan dos cosas: ¿cómo uso el TOF10120 con el micro: bit? Y la misma pregunta con el servo.

Afortunadamente, el micro: bit está equipado con el protocolo de comunicación I2C y nos hace la vida realmente fácil: conecte el cable rojo a 3.3V, negro a tierra, verde a SCL y azul a SDA y eso es todo por la parte del hardware. Para el software, le animo a leer un poco sobre la comunicación I2C y probar el código Python que adjunté en el micro: bit. Ese programa debería imprimirle la distancia medida por el sensor en el REPL (Leer, evaluar, bucle de impresión). Eso es todo. Solo le dimos a la vista nuestro micro: bit.

Ahora hagamos que gire el cuello si me permiten continuar con mis analogías con la anatomía animal. Lo único que necesitaremos es conducir un servomotor con el micro: bit. Esta parte se está alargando, así que solo te daré este enlace que tiene toda la información que necesitarás y el código que usé para probarlo. Si quieres, también agregué un código simple para controlar el servo usando pin0. No olvide alimentar su servo con 5 V y no con 3,3 V.

Paso 4: piratear el protector de la batería

Hackear el escudo de la batería
Hackear el escudo de la batería
Hackear el escudo de la batería
Hackear el escudo de la batería
Hackear el escudo de la batería
Hackear el escudo de la batería

Ahora que tenemos nuestros actuadores y sensores listos, es hora de echar un vistazo al sistema de gestión de la batería. Para que aprenda más sobre el protector de batería que elegí, le aconsejo que lea este artículo. Lo encuentro muy claro y accesible. En este artículo podemos ver muchas ventajas de este protector de batería, pero hay un inconveniente importante que no quería aceptar: el interruptor de ENCENDIDO / APAGADO solo afecta la salida USB. Esto significa que si apaga el interruptor, todos los demás pines de 3.3V y 5V serán alimentados. Como resultado, como estamos usando esos pines para nuestro robot, el interruptor no hará nada en absoluto …

Pero quiero poder apagar mi robot para no vaciar mi batería por nada, así que tuve que piratear el protector de la batería. No será bonito, pero funciona y no cuesta nada. Por lo tanto, quiero un interruptor para abrir o cerrar el circuito para que aísle la celda de mi batería del protector de la batería. No tengo el equipo para tocar la PCB, pero tengo piezas de plástico por todas partes. Así que ahora imagina que corté un trozo de plástico para que quepa en un extremo de la celda de mi batería en el escudo como en la primera imagen de arriba. El circuito ahora está abierto y mi batería está guardada de forma segura.

¡Sí, pero no quiero tener que abrir el robot para acceder al protector de la batería para poner y quitar esta pieza de plástico! Fácil: consigue un interruptor y pega dos pequeños cuadrados de aluminio a cada uno de los cables conectados al interruptor. Ahora pegue con cinta esas dos piezas de aluminio a la pieza de plástico para tener las dos piezas de aluminio aisladas entre sí y para que el aluminio quede expuesto al exterior de su sistema. Normalmente eso debería ser suficiente. Inserte su nueva creación en el escudo de la batería al lado de la celda, y el interruptor debería permitirle abrir o cerrar el circuito conectado a la celda.

Una última cosa: para facilitar el montaje y desmontaje del robot, le aconsejo que suelde conectores hembra en el protector de la batería. De esta manera, puede conectar y desconectar fácilmente lo que construye con los motores y sus controladores.

Paso 5: Diseño y corte 3D

Diseño y corte 3D
Diseño y corte 3D
Diseño y corte 3D
Diseño y corte 3D

Lo único que falta ahora es construir la estructura que mantendrá todos nuestros componentes juntos. Para ello utilicé la plataforma online tinkercad. Este es un entorno realmente agradable para hacer algo de CAD básico, que a menudo es suficiente para diseñar cosas para la cortadora láser.

Después de pensar un rato, llegó el momento de jugar. Para hacerlo, comencé a armar modelos 3D de las diferentes partes que tenía (primero manteniendo el servo y TOF fuera de la ecuación). Eso incluye la batería y el escudo, los motores paso a paso y los controladores del motor y, por supuesto, el micro: bit con su placa de extensión. Adjunté todos los modelos 3D correspondientes como archivos stl. Para facilitar el proceso, decidí hacer mi robot simétrico. Como resultado, modifiqué solo la mitad del robot y alcancé el diseño que se muestra en la imagen de arriba.

De esto surgieron algunas versiones, de las cuales seleccioné dos:

  • Uno bastante ordenado, sin el sensor de proximidad, que permite que no aparezcan cables. Si bien no es autónoma, esta versión aún se puede programar a través de bluetooth a través de un iPad, por ejemplo, o se puede programar para ser controlada mediante señales de radio que, por ejemplo, pueden ser enviadas por otro micro: bit como se muestra en el video de arriba.
  • Uno mucho menos ordenado que permite ir mucho más lejos en la robótica móvil ya que permite capturar la distancia del obstáculo con una vista de 180 ° gracias al sensor de proximidad integrado en un servomotor.

Para construir esto, dirígete a tu Fablab favorito y utiliza la cortadora láser que encuentres para cortar el modelo de tu preferencia: el primero correspondiente a los archivos design1_5mmMDF.svg y design1_3mmMDF que corresponden respectivamente a las piezas a cortar en el MDF de 5mm. madera y las que cortar de la de 3 mm; el segundo corresponde al archivo design2_5mmMDF.svg. Configure los contornos negros a cortar y los rojos a grabar.

Nota al margen: agregué el patrón rojo solo para mejorarlo. Esta es una función de llenado de Hilbert que generé usando el código de Python adjunto.

Paso 6: Montaje de la bestia

Montando la Bestia
Montando la Bestia
Montando la Bestia
Montando la Bestia
Montando la Bestia
Montando la Bestia

Los pasos que seguí para montar la primera versión del robot son los siguientes (las imágenes normalmente deben estar en el orden correcto):

  1. Retire la tapa azul de los motores y córtela un poco para que el cable sobresalga de la parte posterior del motor.
  2. Monte los motores en cada lado con tornillos y pernos M2.
  3. Monte la placa de creación de prototipos en los lados utilizando los orificios de 2x2 mm y algunos tornillos y pernos.
  4. Coloque los controladores A4988 y pegue con cinta adhesiva los cables del motor para mantenerlo ordenado.
  5. Monte la rueda universal debajo de la parte inferior y agregue los lados.
  6. Monte la placa de extensión del micro: bit en la parte superior.
  7. Monte la parte inferior de la cubierta frontal flexible.
  8. Pongo el blindaje de la batería y conecta todo (para hacerlo, como todavía estaba esperando la entrega de la placa de extensión que quería y que solo tenía una con los encabezados hembra sobresaliendo, reciclé un cable IDE de una computadora vieja para lograr que mis cables no sobresalgan de la placa para cubrir todo esto con la cubierta frontal plegable). Aunque el código que proporcioné es muy fácil de adaptar, para usarlo directamente, deberá conectar el STEP izquierdo al pin 2, el STEP derecho al pin 8, el DIR izquierdo al pin 12, el DIR derecho al pin 1.
  9. Pon el micro: bit en la extensión.
  10. Pruebe que todo funcione con MoveTest.py antes de continuar.
  11. Monte el interruptor en la parte superior y coloque la broca de plástico al lado de la celda de litio.
  12. Atornille la parte superior de la tapa frontal.
  13. ¡Monta la parte trasera y listo! ¡Uf! ¡No esperaba tantos pasos! ¡Es mucho más fácil pensar en ello y hacerlo que explicarlo con palabras! (¡Y estoy seguro de que todavía faltará información!)

Si está construyendo la segunda versión con el sensor de proximidad, entonces:

  1. Siga las instrucciones anteriores. La única diferencia será que tendrás que agregar algunos espaciadores M2 en el paso 7 (aunque eso es lo que hice pero no es obligatorio), ignora el paso 8 y el paso 13 (ya que no hay portada)
  2. Monte el servomotor con tornillos M2 y conecte el VCC y GND del servo directamente en los 5V del blindaje de la batería, y conecte la entrada de control al pin 0 del micro: bit.
  3. Monte las dos piezas de madera que irán encima del servo con un tornillo, atornille el sensor TOF en este así como la pieza de plástico blanco que viene con el servo.
  4. Monte esta última unidad en el servo y conecte el sensor usando I2C de micro: bit como se describe en el paso 3.

Paso 7: Programa

Eso es todo ! Tienes un robot que puedes programar en micro: python o en makecode. Adjunto aquí un código de muestra que usé para hacer los videos de arriba:

  • Ejemplo 1: Ponga radioControl.py en el micro: bit del robot y ReadAccelero.py en otro micro: bit para controlar el robot usando la inclinación del segundo micro: bit.
  • Ejemplo 2: Coloque Autonomous.py en la versión 2 del robot, explorará el entorno.

Esos son solo ejemplos básicos que puede utilizar para ir mucho más allá. Por ejemplo, me gusta bastante la localización y el mapeo simultáneos, ¡y normalmente hay todo lo que necesitas en la versión 2 de este robot para hacer eso! Aunque un gran inconveniente para mí al hacer un proyecto de este tipo es que el controlador PWM micro: bit es un controlador de software que usa el mismo temporizador para todos los canales, lo que significa que todos los PWM que configuramos deben tener la misma frecuencia (que es algo que hice No sé cuando escribí los códigos de muestra aunque detecté algo extraño cuando escribí Autonomous.py).

Paso 8: ir más lejos

No dudes en mejorar el diseño, solucionar algunos problemas que no vi. Por ejemplo, me gustaría eventualmente:

  • Agregue un sensor de infrarrojos en la parte inferior del robot para que detecte si el suelo es blanco o negro o si está llegando al final de mi escritorio.
  • Cambie el sistema de gestión de la batería, ya que todavía no estoy satisfecho. De hecho, en este momento, para recargar la batería, es necesario desmontar el robot para sacar la celda o el protector de la batería … Por lo tanto, estoy planeando: 1. agregar un conector mini-USB en la parte posterior del robot que Lo conectaré al protector de la batería, para que pueda recargarlo; 2. Haga un orificio en la parte inferior para ver los LED del protector de la batería y ver cuando finaliza la carga.
  • Compruebe si existe una forma aceptable de generar PWM con diferentes frecuencias.
  • Pruebe el VL53L0XV2 para reemplazar el TOF10120, ya que podría ser una opción más económica que lo haría accesible a más personas. Aunque leí más sobre este sensor y parece que la compañía que lo hizo barato hizo que fuera muy difícil tratar con él a propósito …
  • Pruebe diferentes diseños para las ruedas para hacerlas más duraderas (en este momento, esperaría que si coloco y quito las ruedas muchas veces, la madera se dañará progresivamente. Si hago la madera más elástica modificando el diseño, podría ser capaz de hacer que dure más)

¡Un gran agradecimiento a las personas del equipo de robótica móvil (ahora parte del laboratorio de Biorobotics) de EPFL que me ayudaron mucho a ampliar mis conocimientos de electrónica y mecánica!

Recomendado: