Tabla de contenido:
- Paso 1: Partes
- Paso 2: PROTOTIPOS
- Paso 3: GUANTE
- Paso 4: CAJA TRANSMISORA
- Paso 5: CAJA DE CONTROL DEL BRAZO
- Paso 6: ASIGNACIÓN DE PIN
- Paso 7: COMUNICACIÓN
- Paso 8: BOCETOS y más …
- Paso 9: ¿QUÉ MÁS?
- Paso 10: *** ¡¡¡GANAMOS !!! ***
Video: Mueva su mano para controlar el brazo robótico OWI Sin ataduras: 10 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
LA IDEA:
Hay al menos otros 4 proyectos en Instructables.com (a partir del 13 de mayo de 2015) relacionados con la modificación o el control de OWI Robotic Arm. No es sorprendente, ya que es un kit robótico tan bueno y económico para jugar. Este proyecto es similar en espíritu (es decir, controlar el brazo robótico con Arduino), pero diferente en el enfoque. [video]
La idea es poder controlar el brazo robótico de forma inalámbrica mediante gestos. Además, traté de mantener las modificaciones del brazo robótico al mínimo, por lo que aún podría usarse con el controlador original.
Suena sencillo.
Lo que terminó siendo es un proyecto de tres partes:
- Un guante equipado con suficientes sensores para controlar un LED y 5 motores
- Un dispositivo transmisor basado en Arduino Nano para aceptar comandos de control desde el guante y enviarlos de forma inalámbrica al dispositivo controlador Arm
- Un receptor inalámbrico basado en Arduino Uno y un dispositivo de control de motor conectado al brazo robótico OWI
CARACTERÍSTICAS
- Soporte para los 5 grados de libertad (DOF) y el LED
- Botón rojo grande: para detener inmediatamente los motores en el brazo y evitar daños
- Diseño modular portátil
Para usuarios de dispositivos móviles: el "video promocional" de este proyecto está en YouTube aquí.
Paso 1: Partes
GUANTE:
Necesitará lo siguiente para construir un controlador de guantes:
- Isotoner Smartouch Tech Stretch Stitched Glove (o similar): en Amazon.com
- Spectra Symboflex Sensor 2.2 ": en Amazon.com
- GY-521 6DOF MPU6050 Giroscopio de 3 ejes + Módulo de acelerómetro - en Fasttech.com
- CABEZAL DE CAJA 2X5 RECTA - en Phoenixent.com
- RECEPTÁCULO DE ENCHUFE IDC 2X5 - en Phoenixent.com
- CABLE DE CINTA PLANA, 10 conductores, paso de.050 "- en Phoenixent.com
- LED de 2 x 5 mm: verde y amarillo
- 2 x botones pequeños
- Resistencias, cables, aguja, hilo negro, pistola de pegamento, pistola de soldadura, soldadura, etc.
CAJA DE CORREA DE TRANSMISIÓN:
- Placa Nano v3.0 ATmega328P-20AU compatible con Arduino - en Fasttech.com
- nRF24L01 + transceptor inalámbrico de 2,4 GHz compatible con Arduino: en Amazon.com
- Gymboss WRISTBAND: en Amazon.com
- Amazon.com: caja de soporte de batería de 9 V con interruptor de encendido / apagado de cable: en Amazon.com
- CABEZAL DE CAJA 2X5 RECTA - en Phoenixent.com
- Batería de 9v
- Condensador 47uF (50v)
- Resistencias, cables, pistola de pegamento, pistola de soldar, soldadura, etc.
CAJA DE CONTROLADOR DE BRAZO ROBÓTICO OWI:
- Placa de desarrollo Uno R3 Rev3 compatible con Arduino - en Fasttech.com
- Prototype Shield DIY KIT para Arduino (o similar): en Amazon.com
- nRF24L01 + transceptor inalámbrico de 2,4 GHz compatible con Arduino: en Amazon.com
- 3 x L293D Controlador de motor IC de circuito integrado de 16 pines - en Fasttech.com
- 1 x SN74HC595 74HC595 Registro de cambio de 8 bits con registros de salida de 3 estados DIP16: en Amazon.com
- Condensador 47uF (50v)
- Caja para Arduino: en Amazon.com
- Interruptor encendido / apagado
- 2 botones de 13 mm (uno rojo y uno verde)
- CABEZAL DE CAJA RECTA DE 2 x 2X7 - Igual que el anterior en Phoenixent.com
- CABLE DE CINTA PLANA 14 Conductor Paso de.050 "- igual que el anterior en Phoenixent.com
- Batería 9v + conector clip
- Resistencias, cables, pistola de pegamento, pistola de soldar, soldadura, etc.
… y por supuesto:
Borde de brazo robótico OWI - brazo robótico - OWI-535 - en Adafruit.com
Paso 2: PROTOTIPOS
Sugiero encarecidamente crear un prototipo de cada uno de los dispositivos controladores antes de soldar todos los componentes juntos.
Este proyecto utiliza algunas piezas de hardware desafiantes:
nRF24L01
Me tomó un tiempo hacer que los dos nRF24 hablaran entre sí. Aparentemente, ni Nano ni Uno proporcionan suficiente potencia estabilizada de 3.3v para que los módulos funcionen de manera consistente. Una solución en mi caso fue un condensador de 47uF en los pines de alimentación de ambos módulos nRF24. También hay algunas peculiaridades con el uso de la biblioteca RF24 en los modos IRQ y no IRQ, por lo que recomiendo estudiar los ejemplos con mucho cuidado.
Un par de excelentes recursos:
nRF24L01 Página de producto del IC del transceptor RF de 2,4 GHz de potencia ultrabaja
Página de la biblioteca de controladores RF24
Simplemente buscar en Google nRF24 + arduino producirá muchos enlaces. Vale la pena investigar
74HC595 REGISTRO DE CAMBIOS
Como era de esperar, al tener que controlar 5 motores, un LED, dos botones y un módulo inalámbrico, me quedé sin pines en el Uno con relativa rapidez. La forma más conocida de "ampliar" el número de pines es utilizar un registro de desplazamiento. Dado que nRF24 ya estaba usando la interfaz SPI, decidí usar SPI para la programación del registro de desplazamiento también (para la velocidad y para guardar pines) en lugar de la función shiftout (). Para mi sorpresa, funcionó a las mil maravillas desde la primera vez. Puede comprobarlo en la asignación de pines y en los bocetos.
Los cables de puente y placa de pruebas son tus amigos.
Paso 3: GUANTE
OWI Robotic ARM tiene 6 elementos para controlar (OWI Robotic Arm Edge Picture)
- Un LED ubicado en el GRIPPER del dispositivo
- UN PINZA
- UNA MUÑECA
- Un CODO: es la parte del brazo robótico unida a la MUÑECA.
- Un HOMBRO es la parte del brazo robótico unida a la BASE
- UNA BASE
El guante está diseñado para controlar el LED del brazo robótico y los 5 motores (grados de libertad).
Tengo sensores individuales marcados en las imágenes, así como una descripción a continuación:
- El GRIPPER se controla mediante los botones ubicados en el dedo medio y el meñique. La pinza se cierra presionando los dedos índice y medio juntos. La pinza se abre presionando el anillo y el meñique juntos.
- La MUÑECA está controlada por la resistencia flexible en el buscador de índices. Doblar el dedo hasta la mitad hace que la muñeca baje, y doblarlo completamente hace que la muñeca suba. Mantener el dedo índice recto detiene la muñeca.
- El CODO está controlado por un acelerómetro: inclinar la palma hacia arriba y hacia abajo mueve el codo hacia arriba y hacia abajo, respectivamente.
- El HOMBRO se controla mediante un acelerómetro: inclinar la palma hacia la derecha y hacia la izquierda (¡aunque no al revés!) Mueve el hombro hacia arriba y hacia abajo respectivamente.
- La BASE también está controlada por un acelerómetro, similar a la inclinación de los hombros con la palma hacia la derecha y hacia la izquierda completamente al revés (con la palma hacia arriba) mueve la base hacia la derecha y hacia la izquierda, respectivamente.
- El LED de la pinza se enciende / apaga presionando ambos botones de control de la pinza al mismo tiempo.
Todas las respuestas de los botones se retrasan 1/4 de segundo para evitar fluctuaciones.
Ensamblar el guante requiere algo de soldadura y mucha costura. Básicamente, se trata de conectar 2 botones, resistencia flexible, módulo Accel / Gyro a la tela del guante y enrutar los cables a la caja del conector.
Dos LED en la caja de conexiones son:
- VERDE - encendido
- AMARILLO: parpadea cuando se transmiten datos a la caja de control del brazo.
Paso 4: CAJA TRANSMISORA
La caja del transmisor es esencialmente Arduino Nano, módulo inalámbrico nRF24, conector de cable flexible y 3 resistencias: 2 resistencias desplegables de 10 kOhm para los botones de control de la pinza en el guante y una resistencia de división de voltaje de 20 kOhm para el sensor flexible que controla la muñeca.
Todo está soldado en un tablero vero. Tenga en cuenta que nRF24 está "colgando" sobre Nano. Me preocupaba que esto pudiera causar interferencias, pero funciona.
El uso de la batería de 9v hace que la parte de la correa sea un poco voluminosa, pero no quería meterme con las baterías LiPo. Quizas mas tarde.
Consulte el paso de asignación de pines para obtener instrucciones de soldadura
Paso 5: CAJA DE CONTROL DEL BRAZO
La caja de control del brazo se basa en Arduino Uno. Recibe comandos del guante de forma inalámbrica a través del módulo nRF24 y controla el brazo OWI Robotoc a través de 3 chips de controlador L293D.
Dado que se utilizaron casi todos los pines Uno, hay muchos cables dentro de la caja, ¡apenas se cierra!
Por diseño, la caja comienza en el modo APAGADO (como si se presionara un botón de parada de rojo), lo que le da al operador tiempo para ponerse el guante y prepararse. Una vez listo, el operador presiona el botón verde y la conexión entre el guante y la caja de control debe establecerse inmediatamente (como lo indica el LED amarillo en el guante y el LED rojo en la caja de control).
CONECTARSE A OWI
La conexión al brazo robótico se realiza a través de un cabezal de doble fila de 14 pines (según la imagen de arriba) a través de un cable plano de 14 hilos.
- Las conexiones del LED son a tierra común (-) y al pin arduino A0 a través de una resistencia de 220 ohmios
- Todos los cables del motor están conectados a los pines 3/6 o 11/14 (+/- respectivamente) del L293D. Cada L293D admite 2 motores, por lo tanto, dos pares de pines.
- Las líneas de alimentación de OWI son los pines más a la izquierda (+ 6v) y más a la derecha (GND) del conector de 7 pines en la parte posterior de la parte superior amarilla. (Puede ver los cables conectados en la imagen de arriba). Estos dos están conectados a los pines 8 (+) y 4, 5, 12, 13 (GND) en los tres L293D.
Consulte el resto de la asignación de pines en el siguiente paso
Paso 6: ASIGNACIÓN DE PIN
NANO:
- 3.3v - 3.3v al chip nRF24L01 (pin 2)
- 5v - 5v a placa de acelerómetro, botones, sensor flexible
- a0 - entrada de resistencia flexible
- a1 - control LED amarillo "comms"
- a4 - SDA a acelerómetro
- a5 - SCL a acelerómetro
- d02 - Pin de interrupción del chip nRF24L01 (pin 8)
- d03 - entrada de botón de pinza abierta
- d04 - entrada del botón de cierre de pinza
- d09 - Pin SPI CSN al chip nRF24L01 (pin 4)
- d10 - Pin SPI CS al chip nRF24L01 (pin 3)
- d11 - Chip SPI MOSI a nRF24L01 (pin 6)
- d12 - Chip SPI MISO a nRF24L01 (pin 7)
- d13 - Chip SPI SCK a nRF24L01 (pin 5)
- Vin - 9v +
- GND - tierra común
UNO:
- 3.3v - 3.3v al chip nRF24L01 (pin 2)
- 5v - 5v a botones
- Vin - 9v +
- GND - tierra común
- a0 - LED de muñeca +
- a1 - Pin SPI SS para Selección de registro de cambio - al pin 12 en Registro de cambio
- a2 - Entrada de botón ROJO
- a3 - Entrada de botón VERDE
- a4 - dirección base derecha - pin 15 en L293D
- a5 - led de comunicaciones
- d02 - Entrada IRQ nRF24L01 (pin 8)
- d03 - habilitar el pin 1 o 9 del servo base (pwm) en L293D
- d04 - base de dirección izquierda - pin 10 en L293D respectivo
- d05 - habilitar el pin 1 o 9 del servo de hombro (pwm) en L293D
- d06 - habilita el pin 1 o 9 del servo codo (pwm) en L293D
- d07 - Pin SPI CSN al chip nRF24L01 (pin 4)
- d08 - Pin SPI CS al chip nRF24L01 (pin 3)
- d09 - habilitar el pin 1 o 9 del servo de muñeca (pwm) en L293D
- d10: habilita el pin 1 o 9 del servo de pinza (pwm) en L293D
- d11 - SPI MOSI al chip nRF24L01 (pin 6) y pin 14 en el registro de cambios
- d12 - Chip SPI MISO a nRF24L01 (pin 7)
- d13 - SPI SCK al chip nRF24L01 (pin 5) y pin 11 en el registro de cambios
REGISTRO DE CAMBIOS Y L293Ds:
- pin QA (15) de 74HC595 al pin 2 de L293D # 1
- pin QB (1) de 74HC595 al pin 7 de L293D # 1
- pin QC (2) de 74HC595 al pin 10 de L293D # 1
- pin QD (3) de 74HC595 al pin 15 de L293D # 1
- pin QE (4) de 74HC595 al pin 2 de L293D # 2
- pin QF (5) de 74HC595 al pin 7 de L293D # 2
- pin QG (6) de 74HC595 al pin 10 de L293D # 2
- pin QH (7) de 74HC595 al pin 15 de L293D # 2
Paso 7: COMUNICACIÓN
Glove envía 2 bytes de datos a la caja de control 10 veces por segundo o cada vez que se recibe una señal de uno de los sensores.
2 bytes son suficientes para 6 controles porque solo necesitamos enviar:
- ENCENDIDO / APAGADO para LED (1 bit): en realidad usé 2 bits para ser consistente con los motores, pero uno es suficiente
- APAGADO / DERECHO / IZQUIERDO para 5 motores: 2 bits cada uno = 10 bits
Un total de 11 o 12 bits es suficiente.
Códigos de dirección:
- APAGADO: 00
- DERECHA: 01
- IZQUIERDA: 10
La palabra de control se ve así (bit a bit):
Byte 2 ---------------- Byte 1 ----------------
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 LED-- M5-- M4-- M3-- M2-- M1--
- M1 - pinza
- M2 - muñeca
- M3 - codo
- M4 - hombro
- M5 - base
El byte 1 podría alimentarse convenientemente directamente en el registro de desplazamiento, ya que controla la dirección derecha / izquierda de los motores 1 a 4.
Se habilita un tiempo de espera de 2 segundos para las comunicaciones. Si se agota el tiempo de espera, todos los motores se detienen como si se presionara un botón ROJO.
Paso 8: BOCETOS y más …
GUANTE
Glove sketch utiliza las siguientes bibliotecas:
- DirectIO: disponible en Github
- I2Cdev - disponible en Github
- Cable: parte de Arduino IDE
- MPU6050 - disponible en Github
- SPI - parte de Arduino IDE
- RF24 - disponible en Github
y tres bibliotecas desarrolladas por mí:
- AvgFilter - disponible de Github
- DhpFilter: disponible en Github
- TaskScheduler: disponible en Github
El boceto del guante está disponible aquí: Glove Sketch v1.3
CAJA DE CONTROL DE BRAZO
Arm sketch utiliza las siguientes bibliotecas:
- DirectIO: disponible en Github
- PinChangeInt - disponible en Github
- SPI - parte de Arduino IDE
- RF24 - disponible en Github
y una biblioteca desarrollada por mí:
TaskScheduler: disponible en Github
El boceto del brazo está disponible aquí: Arm Sketch v1.3
Hojas de datos para el hardware utilizado
- 74HC595 shift register - hoja de datos
- Controlador de motor L293D - hoja de datos
- módulo inalámbrico nRF24 - hoja de datos
- Módulo de acelerómetro / giroscopio MPU6050 - hoja de datos
31 de mayo de 2015 ACTUALIZACIÓN:
Una nueva versión de los bocetos de la caja de control de guantes y brazos está disponible aquí: Bocetos de guantes y brazos v1.5
También se encuentran aquí en github.
Cambios
- Se agregaron dos bytes más a la estructura de comunicación para enviar la velocidad del motor solicitada para los motores de muñeca, codo, hombro y base como un valor de 5 bits (0.. 31) desde el guante en proporción al ángulo del gesto de control (ver más abajo). Arm Control Box asigna los valores [0.. 31] a los respectivos valores de PWM para cada uno de los motores. Esto permite un control gradual de la velocidad por parte del operador y un manejo más preciso del brazo.
- Nuevo conjunto de gestos:
1. LED: LED de control de botones - botón del dedo medio - ENCENDIDO, botón del dedo meñique - APAGADO
2. PINZA: Controles de tira flexible Pinza - dedo medio doblado - ABIERTO, dedo completamente doblado - CERRADO
3. MUÑECA: La muñeca se controla inclinando la palma desde la posición completamente horizontal ARRIBA y ABAJO respectivamente. Más inclinación produce más velocidad
4. BRAZO: El brazo se controla inclinando la palma desde la posición totalmente horizontal IZQUIERDA y DERECHA. Más inclinación produce más velocidad
5. HOMBRO: El hombro se controla girando la palma hacia la DERECHA e IZQUIERDA desde la palma apuntando hacia arriba. La palma se gira a lo largo del eje del codo (al igual que agita la mano)
6. BASE: La base se controla de la misma manera que el hombro con la palma apuntando hacia abajo.
Paso 9: ¿QUÉ MÁS?
IMAGINACIÓN EN EL TRABAJO
Como es habitual con estos sistemas, podrían programarse para hacer mucho más.
Por ejemplo, el diseño actual ya incorpora capacidades adicionales, que no son posibles con el control remoto estándar:
- Aumento gradual de la velocidad: cada movimiento del motor se inicia a una velocidad mínima predefinida, que se incrementa gradualmente cada 1 segundo hasta alcanzar una velocidad máxima. Esto permite un control más preciso de cada uno de los motores (especialmente la muñeca y la pinza)
- Cancelación de movimiento más rápida: cuando el Arm Box recibe la orden de detener un motor, lo invierte momentáneamente durante unos 50 ms, "interrumpiendo" el movimiento y permitiendo un control más preciso.
¿QUÉ OTRA COSA?
Quizás se podrían implementar gestos de control más elaborados. O se podrían usar gestos simultáneos para controles elaborados. ¿Puede bailar el brazo?
Si tiene una idea de cómo reprogramar el guante o tiene una versión de un boceto que desea que pruebe, hágamelo saber: [email protected]
Paso 10: *** ¡¡¡GANAMOS !!! ***
Este proyecto ganó el primer premio en el concurso de creaciones codificadas patrocinado por Microsoft.
¡Echale un vistazo! ¡¡¡WOO-HOO !!!
Segundo premio en las creaciones codificadas
Recomendado:
¿Cómo controlar un brazo robótico de gran tamaño de alta potencia 4dof con control remoto Arduino y Ps2 ?: 4 pasos
¿Cómo controlar un brazo robótico de gran tamaño de alta potencia 4dof con control remoto Arduino y Ps2?: Este kit usa un motor de alta potencia mg996, necesita alta corriente, hemos probado mucha entrada de energía. La placa arduino también funciona en el brazo del robot 6dof
Un brazo robótico simple controlado sobre el movimiento real de la mano: 7 pasos (con imágenes)
Un brazo robótico simple controlado sobre el movimiento real de la mano: este es un brazo robótico DOF muy simple para principiantes. El brazo está controlado por Arduino. Está conectado con un sensor que se coloca en la mano del operador. Por lo tanto, el operador puede controlar el codo del brazo doblando su propio movimiento del codo. En el
Envuelva cuidadosamente los cables sin ataduras ni enredos: 5 pasos (con imágenes)
Envuelva cuidadosamente los cables sin ataduras ni enredos: el objetivo: una forma de enrollar los cables (auriculares, alimentación, etc.) sin ataduras o correas de velcro que sea rápida, que no se deshaga y que se deshaga rápidamente. Aquí hay un método, ¿alguna sugerencia mejor? Más guías: http://www.curiousinventor.com/guidesVideo showi
Cómo hacer Jailbreak (sin ataduras) 3.0 y 2.2.1: 8 pasos
Cómo hacer Jailbreak (sin ataduras) 3.0 y 2.2.1: ACTUALIZACIÓN: ¡el equipo de desarrollo ha lanzado una nueva versión de redsn0w y saurik ha lanzado nuevas versiones de Mobile Substrate y winterboard para 3GS! -champster 2.2.1 es solo para el ipod touch 2G. Y también mira los datos que yo, Cyle / cyleleghorn / A
Enfriador / soporte para computadora portátil de costo cero (sin pegamento, sin perforaciones, sin tuercas y pernos, sin tornillos): 3 pasos
Enfriador / soporte para computadora portátil de costo cero (sin pegamento, sin perforaciones, sin tuercas y pernos, sin tornillos): ACTUALIZACIÓN: POR FAVOR AMABLE VOTE POR MI INSTRUCTABLE, GRACIAS ^ _ ^ TAMBIÉN PUEDE VOTAR POR MI OTRO CONCURSO ENTRADA EN www.instructables.com/id/Zero-Cost-Aluminum-Furnace-No-Propane-No-Glue-/ O QUIZÁS VOTE POR MI MEJOR AMIGO