Arduino Nano Based Hexbug Scarab Robotic Spider: 10 pasos (con fotos)

Arduino Nano Based Hexbug Scarab Robotic Spider: 10 pasos (con fotos)

Tabla de contenido:

Anonim

La idea:

Para construir una araña robótica programable basada en Hexbug Scarab, equipada con el siguiente conjunto de sensores:

vídeo

Sensor de distancia ultrasónico

  1. Sensores / equipos infrarrojos para obstáculos
  2. Giroscopio
  3. Acelerómetro
  4. Puntero láser

El robot debería poder hacer muchas cosas. Entre ellos:

  1. Avanza, retrocede y gira.
  2. Mantener la dirección
  3. Detectar y evitar obstáculos.
  4. Detecta estar al revés o al costado.
  5. LEDs de flash, apuntan la dirección con un rayo láser

Dado que Scarab tiene Arduino Nano a bordo, podría programarse para realizar una variedad de acciones, incluso como plataforma física para ejecutar pasos programables en el equivalente del lenguaje de programación del logotipo.

La decisión de tener dos sensores para la detección de obstáculos proviene del hecho de que cada uno de los sensores tiene sus limitaciones:

  1. El sensor de ultrasonido no detecta objetos blandos (por ejemplo, un oso de peluche)
  2. El sensor IR no detecta objetos negros

(Un osito de peluche negro sigue siendo un desafío para este Scarab …)

Cuando el escarabajo detecta un obstáculo, realiza un " danza '.

UNA danza Es una secuencia de movimientos que realiza Scarab para ayudarlo a decidir cómo sortear un obstáculo. Algunos de los movimientos de baile son solo para divertirse y presumir.

Actualmente el escarabajo realiza 3 danzas diferentes, que elige al azar frente a cada obstáculo:

  1. Gire aleatoriamente hacia la derecha o hacia la izquierda 90 grados y camine en esa dirección durante 5 segundos. A continuación, intente moverse en la dirección original.
  2. Deténgase y mida la distancia al obstáculo a 30 grados a la derecha y a 30 grados a la izquierda. Luego intente ir en la dirección de medición con la distancia más alta al obstáculo.
  3. Retroceda un poco, luego ejecute dance # 1 (al azar) - esto es solo un poco más comprometido que el dance # 1.

Cuando Scarab está encendido, necesita calibrar el giroscopio. Tiene que estar absolutamente inmóvil, y en una superficie horizontal. Cuando Scarab está calibrando el giro, una luz amarilla parpadea. Si Scarab se mueve o agita durante la calibración, una luz roja comienza a parpadear y el proceso de calibración se reinicia.

Si Scarab se da vuelta, se detiene y reinicia el proceso de calibración. Esto también restablece la dirección que Scarab intenta mantener.

Si Scarab no puede moverse, ya sea por algún obstáculo serio o por baterías bajas, las tres luces parpadearán con un ligero retraso relativo (luces de marcha).

Para usuarios móviles: el "video promocional" de este proyecto está en YouTube aquí.

Suministros:

Paso 1: Piezas y herramientas

Desafortunadamente, no estaba tomando fotos de cada paso mientras construía el Scarab. Esto significa que muchas instrucciones serán solo textuales y solo direccionales.

Uno necesita estar muy familiarizado con la soldadura de componentes electrónicos, y trabajar con herramientas tales como taladro eléctrico, sierras de traste, varios destornilladores Phillips pequeños, etc.

PARTES:

Para construir un escarabajo, uno necesitará:

  1. Juguete controlado por radio Hexbug Scarab XL: Scarab XL en Amazon
  2. Placa de microcontrolador Arduino Nano: Arduino Compatible Nano v3.0
  3. GY-521 6DOF MPU6050 Giroscopio de 3 ejes + Módulo de acelerómetro: Giroscopio + Módulo de acelerómetro
  4. Sensor infrarrojo IR ZITRADES Sensor de evitación de obstáculos: Sensor infrarrojo infrarrojo
  5. SunFounder Ultrasonic Module HC-SR04 Sensor de distancia: Módulo ultrasónico
  6. Agujeros recubiertos de doble cara (PTH) 2 "x1.34" Paso de fibra epoxi de 250 orificios 0.1 ": Placas
  7. Controlador de motor de puente H doble para CC o Steppers - 600mA - L293D: L293D
  8. 2 x Cable de plástico negro del soporte de la caja de la batería 2 x 1.5V AAA: Soporte de la caja de la batería AAA
  9. Soporte de caja de batería de plástico negro para baterías de 9 V: Soporte de caja de batería
  10. Diodo emisor de luz LED 5mm 3mm Rojo Verde Amarillo: LED
  11. (Opcional): Módulo láser rojo de 5 mW: puntero láser
  12. Un montón de cables, como estos: Cables
  13. Interruptor de micro alimentación (puede reutilizar el que está en el Scarab o en el control remoto del Scarab)
  14. Cinta adhesiva de doble cara: como esta

HERRAMIENTAS:

  1. Soldadores y suministros de soldadura.
  2. Pistola de pegamento y suministros
  3. Pegamento (adhesivo fuerte tipo super-cemento)
  4. Brocas y brocas
  5. Surtido de destornilladores Phillips
  6. Cuchillo afilado
  7. tijeras

Paso 2: Preparando Hexbug

PRECAUCIÓN: El siguiente procedimiento cambiará tu hexbug de una manera que ya no funcionará como un juguete RC.

1. Extracción del tablero de control.

Abre el hexbug quitando 4 tornillos Phillips de la parte inferior. La parte superior de la araña debería desprenderse y usted debería tener acceso a la tarjeta electrónica interna.

Desatornille los dos tornillos Phillips que sostienen la tarjeta en su lugar, corte los cables que salen de la fuente de alimentación y los motores (corte lo más cerca posible de la tarjeta; reutilizaremos los cables) y extraiga la tarjeta; no la utilizaremos Para este proyecto.

2. fuente de alimentación

Probé el Scarab usando una fuente de alimentación interna de 4.5V y lo encontré demasiado débil (Scarab es un poco lento). Así que quité la cubierta de la fuente de alimentación, corté el borde de plástico y adjunté dos fuentes de alimentación separadas:

  1. 2 x soportes de batería AAA dobles en cada lado de la parte inferior del escarabajo, conectados en serie, suministran una fuente de alimentación de 6 V que utilizo para los motores
  2. 1 soporte de batería de 9V adjunto desde la parte inferior (ocupa parcialmente el espacio de batería incorporado, proporciona 9V para la placa Arduino en sí.

Deberá perforar un par de orificios de 3 mm en ambos lados de la parte inferior de Scarab para que los cables de AAA puedan pasar. Elija un punto que esté entre y alejado de los engranajes internos y perfore muy Con cuidado de no arruinar el mecanismo.

Para los cables de 9V, puede reutilizar las rutas de cables existentes en la parte posterior del Escarabajo.

Paso 3: Sensor ultrasónico

Elegí instalar el sensor ultrasónico en la parte frontal del Scarab usando la cinta de doble cara (varias capas para nivelar los microchips).

Debe quitar los dos "dientes" frontales para liberar espacio para el módulo. Los cables van debajo de la cubierta superior en el lado derecho e izquierdo del escarabajo (donde solían estar los "dientes").

Paso 4: Sensor de infrarrojos

Coloqué el sensor IR en el lado izquierdo de la parte inferior de la parte inferior del cuerpo de Scarab con cinta adhesiva de doble cara.

El sensor IR tiene un rango de 15 a 20 cm, por lo que lo instalé sobresaliendo casi hasta el nivel del sensor sónico permitiendo una distancia máxima para la detección de obstáculos IR.

Es posible que desee utilizar dos sensores IR, ya que tener solo uno en el lado izquierdo deja a Scarab "ciego" en el lado derecho. Sentí que uno era suficiente para mí.

Sintonice el sensor de infrarrojos con el potenciómetro incorporado para alcanzar el rango máximo.

Paso 5: Arduino, Gyro / Acelerómetro y Láser

Giroscopio / Aceleromoter

Grabé el giroscopio / acelerómetro en el interior de la cubierta superior utilizando cinta adhesiva de doble cara para lograr la máxima posición horizontal. El tablero de giroscopios se coloca boca abajo con orificios de conexión orientados hacia la parte frontal del Scarab.

Láser

El puntero láser es opcional y es solo una forma visual de Scarab para indicar la dirección hacia la que se dirige. El puntero láser es de baja energía y se puede conectar directamente a los pines Arduino. Simplemente pegué el láser a la parte superior de la cubierta a la izquierda de la placa Arduino real con una pistola de pegamento.

Tablero de arduino

No hay espacio para la placa Arduino dentro del Scarab (y necesitas acceso al puerto USB), así que decidí montarlo en la parte superior.

  1. Corté los pines Arduino (usando cortadores de alambre, cuidadosamente un alfiler a la vez)
  2. Perforó dos filas de series de agujeros de 3 mm en la parte superior del escarabajo
  3. "Conectó" los orificios con un cuchillo afilado cortando de uno a otro
  4. Alisó el orificio resultante con una lima.
  5. Tablero de Arduino pegado en la parte superior con una cinta de doble cara

Paso 6: LEDs

Decidí usar tres LED para indicar el estado de Scarab:

  1. rojo (parpadeo rápido) - algún tipo de error, recuperable o no
  2. Amarillo (parpadeando): la calibración del giro o la evitación de obstáculos está en curso
  3. Verde (sólido) - todo está bien - avanzando

Para instalar los LED, realicé orificios de 3 x 3 mm en el lado derecho del Escarabajo y pegué los LED en el interior de la cubierta.

RECUERDA que cada uno de los LEDs debe estar conectado a Arduino a través de una resistencia de 200 Ohm.

Paso 7: Tablero de Control de Motor

El circuito de control del motor se construye en la placa vero, y se ajusta exactamente a las medidas de la placa de control interna del juguete. Perforé los dos orificios en exactamente los mismos lugares que el tablero de control original para poder reutilizar los accesorios de montaje.

Hay muchos diagramas de cableado para el chip L293D H-bridge en Internet. Me refiero a la publicada en el sitio web Adafruit.com.

Aquí es cómo se asignan los pines en mi L293D:

  1. Conéctate al pin + 5V de Arduino
  2. Conéctate al pin digital # 6 de Arduino
  3. conecte al pin # 1 del motor # 1
  4. conectarse a tierra
  5. conectarse a tierra
  6. conecte al pin # 2 del motor # 1
  7. Conéctate al pin digital # 9 de Arduino
  8. conecte a "+" de la fuente de alimentación del motor (el paquete doble de 6V de 2xAAA)
  9. Conéctate al pin + 5V de Arduino
  10. Conéctate al pin digital # 3 de Arduino
  11. conecte al pin # 2 del motor # 2
  12. conectarse a tierra
  13. conectarse a tierra
  14. conecte al pin # 1 o motor # 2
  15. Conéctate al pin digital # 5 de Arduino
  16. Conéctate al pin + 5V de Arduino

Ambos motores en el Scarab ya tienen "tratamiento completo de condensadores", por lo que solo necesita soldar los cables de los pines 3, 6, 11 y 14 de L293D a las resistencias respectivas de los motores.

Paso 8: Asignación de Arduino Pin

A continuación se muestra la asignación de pines Arduino Nano asociada con el boceto adjunto:

Vin - conecte a + 9V de la fuente de alimentación de 9V (a través del interruptor de alimentación)

Gnd - Conecte a -9V, cables a tierra de los LED, sensores de ultrasonido e IR, giroscopio / acelerómetro, láser, cátodos LED y L293D

Reiniciar - no conectado

5v - conecte a los pines VCC de L293D, sensores de ultrasonido e IR, giroscopio / acelerómetro

A7 - no conectado

A6 - no conectado

A5 - Conectar al pin SCL de Gyro / Acelerómetro

A4 - Conectar al pin SDA de Gyro / Acelerómetro

A3 - Conectar a VCC del puntero láser.

A2 - no conectado

A1 - no conectado

A0 - no conectado

ÁRBITRO - no conectado

3.3V - no conectado

D13 - no conectado

D12 - Conectar al pin DATA del sensor IR.

D11 - Conectar al pin TRIGGER del sensor de ultrasonido

D10 - conecte al pin ECHO del sensor de ultrasonido

D9 - Conectar al pin # 2 del motor # 1

D8 - Conectar a ánodo LED rojo (a través de resistencia)

D7 - Conectar al ánodo LED verde (a través de la resistencia)

D6 - Conectar al pin # 1 del motor # 1

D5 - Conectar al pin # 1 del motor # 2

D4 - Conectar al ánodo LED amarillo (a través de la resistencia)

D3 - Conectar al pin # 2 del motor # 2

D2 - conecte al pin INT del giroscopio / acelerómetro (no utilizado actualmente por el boceto)

El resto de los pines no son usados.

Paso 9: Asamblea

Recomiendo montar el hexbug en el siguiente orden:

  1. Marque las posiciones de todos los casos de fuentes de alimentación externas y taladre los orificios
  2. Marque la posición del sensor IR y taladre el agujero para sus cables
  3. Conecte las cajas de la fuente de alimentación y tire de los cables dentro del Escarabajo, conecte los cables AAA de 2 cajas en serie para alcanzar 6V
  4. Conecte el sensor de infrarrojos y tire de sus cables dentro del escarabajo
  5. Conecte el sensor Ultasonic y coloque sus cables dentro del escarabajo
  6. Suelde L293D en la placa vero, suelde los cables a todos sus pines
  7. Suelde + 6V al pin de potencia del motor de L239D (a través del interruptor de 3 vías - vea el paso # 23)
  8. Soldadura -6V al cable de tierra de L293D
  9. Cree un cable de "conexión a tierra común" y conecte todos los cables de tierra del sensor / arduino, incluido el cable de alimentación de -9V
  10. Coloque la placa vero en el lugar de la placa de control con tornillos Phillips
  11. Suelde los pasadores de control del motor L293D a los pasadores del motor apropiados
  12. Taladre los agujeros apropiados en la cubierta superior del Scarab para Arduino y LED
  13. Fije el giroscopio / acelerómetro al interior de la cubierta del escarabajo con cinta adhesiva de doble cara
  14. Pegue los LEDs a los agujeros respoective
  15. Resistencias de soldadura a ánodos LED
  16. Soldadura de resistencia de cátodos a un "terreno común"
  17. Soldadura de cables de diferentes colores a las resistencias LED.
  18. Marque todos los cables que deben ir a Arduino y tire de ellos a través de los respectivos lados de los orificios "Arduino" en la cubierta superior del Scarab
  19. Tire de todos los cables a través de los lados respectivos
  20. Fije Arduino Nano al exterior de la cubierta superior con cinta adhesiva de doble cara
  21. Cierre la cubierta del escarabajo y apriete ligeramente 2 tornillos en diagonal para mantenerla en su lugar
  22. Suelde todos los cables unidos a Arduino a los respectivos pasadores Arduino
  23. Use el interruptor de tres vías del control remoto hexbug como interruptor de encendido tanto para la placa Arduino como para los motores: encamine los cables positivos de 9V y 6V hacia el interruptor y luego vuelva al pin VIN de Arduino y Vmotor + pin de L293D respectivamente
  24. Pega el interruptor a la tapa del Scarab con una pistola de pegamento
  25. Tire de los cables sobrantes debajo de la cubierta superior
  26. Apriete los 4 tornillos Phillips

Paso 10: Sketch

Bibliotecas

Scarab se basa actualmente en las siguientes bibliotecas:

  1. Alambre - parte de Arduino IDE
  2. Estadística - disponible en Github
  3. MPU6050 - disponible en Github
  4. I2Cdev - disponible en Github
  5. DirectIO - disponible en Github

Desarrollado por mí:

  1. AvgFilter - disponible en Github
  2. Programador de tareas: disponible en Github

Bosquejo:

La versión 1.7.0 implementa un nuevo algoritmo para evitar obstáculos: disponible en Github

  • Al detectar una distancia de comprobación de obstáculos hasta el obstáculo más cercano a las 3 y las 9 en punto, muévase en la dirección donde el obstáculo está más lejos
  • Haga de la derecha / izquierda preferencia desde el paso 1 una dirección "preferida" para evitar obstáculos. Scarab siempre intentará ir hacia la derecha o hacia la izquierda (según la decisión del paso 1)
  • Si la dirección original no se puede lograr dentro de N vueltas, "abandone" la dirección y comience a preferir girar siempre en la dirección opuesta, aumentando el conteo de "renunciar" en 2 (N + 2). Como resultado, Scarab tiende a ir hacia la derecha o hacia la izquierda cada vez que se "rinde" con la esperanza de finalmente alcanzar la dirección original.
  • Una vez que se alcanza la dirección original y se mantiene durante 5 segundos, la dirección de giro "preferida" se "olvida". El siguiente obstáculo será evaluado nuevamente desde el paso 1.