» » » Proyecto InMoov (VI) – Electrónica de control

Proyecto InMoov (VI) – Electrónica de control

Como el microcontrolador elegido para controlar el brazo robótico ha sido Arduino Nano he creado una librería usando el propio lenguaje de programación de Arduino, muy parecido al lenguaje C y C++. Dicha librería consta de una sola clase Arm.

El programa principal del microcontrolador, Arm.ino, hace uso de dicha librería para facilitar las acciones del movimiento del brazo y comunicarse tanto con el ordenador a través del puerto USB, como del nunchuk a través del puerto I2C.

Por último, se ha creado un programa en MATLAB, serie.m, que, ejecutado en el PC, sirve para recibir y enviar órdenes al brazo, que se comunica al microcontrolador por el puerto USB y sirve como ejemplo de la interfaz serie.

Para conectar los servomotores, sensores y el nunchuk al Arduino Nano se ha
desarrollado una placa que organiza la conexión de dichos dispositivos.

Se decidió elaborar la placa, Arm_board_1.0, usando el programa de diseño de circuitos electrónicos Eagle en su versión gratuita. En ella se incluyen los pines de conexionado para los servomotores de los dedos, muñeca,
bíceps y rotador; los pines para el nunchuk; los pines para la fuente de alimentación y, además, se han añadido los pines para dos servomotores más, en lo que sería una futura expansión del hombro. Por último, se incluía un conexionado simple para los sensores. Esta primera versión tiene unas medidas de 3 cm de ancho por 5:6 cm de
largo.

Posteriormente, se desarrolló una segunda versión, llamada Arm_board_1.5, que contaba con todos los pines de la versión anterior pero que, además, incluía un divisor de tensión con resistencias de 47 kO (tal como aconsejaba el fabricante) por cada sensor de contacto para poder tomar medidas correctas, así como de condensadores
de 470 µF entre los terminales positivos y negativos de cada servomotor. Éstos necesitan una corriente sustancial en cortos intervalos de tiempo, y, así dispuestos, los condensadores actúan como buffer de corriente para hacer frente de forma rápida a esta demanda brusca de corriente. Además, sirven para desacoplar la fuente de
alimentación de los servomotores, disminuyendo el ruido en el circuito. Tiene unas medidas de 3:2 cm ancho por 5:6 cm de largo.

Esquema de interconexión

Teniendo presente las librerías y programas mencionados anteriormente y el hardware
del que disponemos, se ha realizado el esquema de funcionamiento:

  • El microcontrolador Arduino Nano se encarga de todo el proceso de control del brazo mediante Arm.ino y la clase Arm.
  • Los servomotores reciben del microcontrolador, mediante PWM, la posición en la que deben colocarse.
  • Los sensores envían el valor de su tensión al microcontrolador, y este calculará la fuerza aplicada.
  • El microcontrolador recibirá y enviará las órdenes del y hacia el ordenador a través del puerto USB, usando un programa como MATLAB con la función serie.m.
  • El microcontrolador también podrá recibir órdenes a través del puerto I2C, usando para ello un nunchuk de la consola Wii.

Modos de funcionamiento

Para un control del brazo adecuado a diversas necesidades, se han desarrollado tres modos de funcionamiento (más uno especial), que se describirán a continuación:

  • Manual: este modo de funcionamiento permite controlar el brazo mediante elnunchuk. Al pulsar el botón C de dicho mando, se abre y cierra la mano y se controla mediante el josytick la muñeca. Al pulsar el botón Z, se controla el bíceps y el rotador usando el joystick.
  • Programado: este modo de funcionamiento permite controlar el brazo mediante el ordenador o cualquier otro dispositivo a través del puerto USB. Para ello, se ha desarrollado una interfaz para recibir y enviar órdenes mediante cadenas de caracteres.
  • Automático: en este modo de funcionamiento el brazo realizará acciones independientemente en función del valor de los sensores, tales como estrechar la mano.
  • Roshambo: el roshambo es el clásico juego de “piedra, papel o tijera”. Al activar este modo, el brazo cada vez elegirá un número aleatorio asociado a piedra, papel o tijera y jugará a ese juego. Este modo de funcionamiento sirve para probar las capacidades del brazo.
Siguiendo ajtudela:

Siempre funcionando en saturación.

Últimas publicaciones de