Usa tu cabeza y mueve un cráneo ¡Mira cómo!

Control de cráneo inalámbricamente
Control de cráneo inalámbricamente - Fuente: YouTube ViennaMike

En el sentido más literal de la frase usa tu cabeza y controlarás un cráneo (no te preocupes, es un cráneo de plástico de esos que venden en las tiendas de autoservicio para Halloween); en este artículo se te presentará el proyecto de Mike McGurrin, el cual utiliza 2 Raspberry Pi para controlar el movimiento de un cráneo con 3 ejes de movimiento en tiempo real.

Materiales

Los materiales que Mike empleó en el proyecto son los siguientes:

Así mismo deberás tener los siguientes softwares:

  • Raspberry Pi Raspbian
  • Adafruit CircuitPython
Raspberry Pi Zero W – Fuente: Raspberry Pi

Desarrollo

Este proyecto consta de dos unidades; una unidad para el sensor y otra de control.

Para la unidad del sensor se usaron un Raspberry Pi Zero W y una tarjeta IMU Adafruit BNO055 con 9 grados de libertad. Por otra parte, la unidad de control consta de una Raspberry Pi Zero Wy un controlador maestro de servo Pololu.

Las dos unidades se comunican entre sí usando XMLRPC funcionando mediante conexión al Wifi. La unidad de sensor actúa como un servidor, y la unidad de control actúa como el cliente.

- Anuncio -

Posteriormente, Mike montó la unidad del sensor en el borde de su gorra; de esta forma al mover su cabeza la unidad del sensor le será posible dar seguimiento a sus movimientos.

Fuente: Hackster

Funcionamiento

La tarjeta IMU (Unidad de Movimiento Inercial, por sus siglas en inglés) cuenta con un acelerómetro de tres ejes, un giróscopo de tres ejes y un magnetómetro de tres ejes.

De estas tres funciones, el magnetómetro sirve para indicar la orientación relativa para la posición inicial. El acelerómetro y el giróscopo son usados para medir la orientación angular y la velocidad de aceleración de los movimientos de Mike.

Otro truco es que esta tarjeta cuenta con un procesador de alta velocidad ARM Cortex-M0, el cual toma los datos “crudos” de los sensores, los fusiona y calcula la orientación en tiempo real de todas las salidas.

La orientación la provee de tres formas, mediante ángulos de Euler, como componentes x, y y z de un vector de fuerza gravitacional o como un cuaternión (éste define la dirección de un solo eje de rotación y la cantidad de rotación alrededor de ese eje).

Desafortunadamente la tarjeta tiene errores al calcular los ángulos de Euler, por lo que es recomendado usar el método de vectores de fuerza gravitacional o el de los cuaterniones.

Algo que es importante mencionar es que para mover el cráneo tendremos que usar los ángulos de Euler esto para dar las órdenes de inclinación, asentir y mover los servos del cráneo. Afortunadamente es fácil usar las matemáticas para convertir los valores de los cuaterniones en ángulos de Euler.

En este proyecto el sensor Pi está configurado para para ser un servidor XMLRPC; el cual cuando reciba la apropiada XMLRPC petición, consultará a la tarjeta para la orientación actual provista como cuaternión y la mandará inalámbricamente al controlador Pi que hizo la consulta.

El controlador Pi hace esta consulta 50 veces por segundo; una vez que tiene el cuaternión lo convierte a ángulo de Euler y después convierte cada ángulo en un comando apropiado para cada servo para pasarlo al módulo Maestro.py.

Que se comunica con el controlador Maestro de servos; adicionalmente hay una subrutina que envía comandos para mover el servo de los ojos de una forma predeterminada e improvisada.

Oportunidades de mejora

Una posible mejora al proyecto sería usar la unidad del sensor para capturar y grabar movimientos de la cabeza en un archivo. Para que un programa diferente pueda leer el archivo y reproducir los movimientos capturados anteriormente.

Este proyecto es una gran opción para aprender a programar las Raspberry Pi (en otro artículo escribí cual era la Raspberry Pi indicada para ti).

Te dejo el link donde Mike subió toda la información incluyendo el código de programación del proyecto. Toca aquí.

Fuente: Hackster
- Anuncio -
Artículo anteriorColette, el cortometraje galardonado que salió de un videojuego
Artículo siguienteDestiny 2 activa por error su función crossplay aún en prueba
Ingeniero Mecatrónico, me gusta el anime y la pizza, tengo 2 perritos, me apasionan los robots, "Si he visto más lejos es porque estoy sentando en hombros de gigantes".