Inicio » Aula » ATOM: robot de cuatro ruedas de propósito general

ATOM: robot de cuatro ruedas de propósito general

Atom es un robot móvil de cuatro de propósito general que sirve como plataforma de desarrollo para crear diferentes aplicaciones bajo un mismo hardware.

1 INTRODUCCIÓN

Atom es un robot móvil de cuatro de propósito general que sirve como plataforma de desarrollo para crear diferentes aplicaciones bajo un mismo hardware.

Su envergadura es de 60 x 55 cm  y  posee una configuración skid steer que le permite realizar giros deslizándose sobre sí mismo como en un tanque. Emplea cuatro ruedas de 6 pulgadas impulsadas por cuatro motores de corriente continua. El sistema de amortiguamiento está basado en una suspensión de paralelogramo deformable. También dispone de una pantalla de 7 pulgadas preparada para actuar como interfaz con el usuario.

El chasis es de aluminio y está completamente cortado a mano. La carcasa es de polietileno blanco y también está cortada manualmente. Dispone de una cerradura para acceder a su interior y una asa para llevarlo en la mano.

La electrónica está pensada para ser plug-and-play. Todos los sensores y actuadores se conectan a una única placa controladora que se encarga de comunicarse por USB a un ordenador. En el ordenador se ejecuta el código principal y es el encargado de mandar las ordenes y escuchar al controlador.

 

2 MATERIALES

    Componentes mecánicos

  •  4 x Acoplamiento flexible
  •  4x Eje 8 x 200 mm de aluminio
  •  8x Rodamiento 8 mm
  •  4 x Hub Adapter 17mm
  •  4 x Soporte motor
  •  8 x Amortiguador
  •  4 x Motor 6A
  •  4 x Ruedas 6»
  •  2 x Perfil aluminio bruto liso  gris plata 5
  •  16 x Escuadra perforada 40X40X40mm
  •  50 x Tornillos M3 x 10mm 1 Tornillos
  •  50 x M3 x 12mm 1 Tornillos
  •  50 x M4 x 15mm 1 Tornillos
  •  50 x M4 x 20mm 1 Tornillos
  •  50 x Plancha polietileno 2x1m
  •  1 X Plancha de madera

 

    Componentes electrónicos

  • 1 x STM32F407VGT
  • 4 x Controlador de motor
  • 1 x Receptor RC
  • 1 x Emisora Fly Sky
  • 1 x ST Link programador
  • 1 x Bateria 11.1 litio
  • 1 x Power Bank USB
  • 4 x Fusibles 10 A
  • 1 x Interruptor 100A
  • 4 x Conector 3.5mm macho y hembra
  • 1 x Cable 3A
  • 1 x Regleta
  • 4 x Sensores VL530L0X
  • 1 x Atmega328

 

3. ELECTRÓNICA

 

La electrónica implementada es la básica. Se trata de cuatro controladores de motor de diseño propio gestionados por la placa controladora. Esta a su vez recibe los datos de una emisora a partir de un receptor RC al que está conectado.

            3.1 ALIMENTACIÓN

La alimentación está basada en una lipo de 11.1 V y una power bank USB. La batería lipo alimenta a los controladores de los motores Para evitar los picos de tensión e intensidad que se producen por la f.e.m inducida en los motores se han colocado cuatro fusibles de 10 amperios cada uno para proteger el resto de elementos. Por otro lado, la power bank alimenta a  la placa controladora y a una rasberry pi ( que en este caso no se usa ).

            3.2 CONTROL REMOTO

La placa controladora recibe los datos a través de un receptor RC como el de la siguiente imagen. Se emplean solo dos canales de los cuatro que dispone la emisora empleada.

La señal recibida se trata de la posición de las palancas de la emisora moduladas en una señal PPM diferencial. Este tipo de señales están basadas en PWM y su interpretación es la misma que un servomotor.

En la siguiente imagen cada canal puede generar una señal de 50 Hz cuadrada con un ciclo de trabajo que puede ir desde 1ms a 2ms. A 1 ms la palanca de la emisora esta hacia abajo al máximo y a 2 ms está hacia arriba al máximo. Cuando uno de los canales termina comienza el siguiente.

Una vez que todos los canales han terminado se espera al nuevo ciclo cada 20 ms (es una señal de 50Hz).

 

            3.3 PLACA CONTROLADORA

La placa controladora se trata de una STM32F407 con los circuitos mínimos para su funcionamiento. Esta placa se encarga de recibir la información de todos los sensores y gestionar  todos los actuadores. En este caso se encarga de leer la señal PPM procedente del receptor RC y de generar la señal PWM que controla la velocidad de los motores.

Esta placa al tener el circuito mínimo es necesario emplear un programador externo para hacerlo. Para ello se emplea el ST-LINK que a través del protocolo SWD (Serial Wire Debug) permite programar y depurar la placa.

 

 

            3.4 PLACA DE SENSORES DE DISTANCIA

Los sensores VL530L0X son sensores lidar basados en el tiempo en vuelo de la distancia recorrida por un haz. El fabricante ST provee una API para controlarlo desde sus microcontroladores.  Sin embargo esta API es poco eficiente y complicada de usar.  ST no provee del mapa de registros para crear librerías personalizadas. La solución es emplear un atmega328 encargado de gestionar los sensores VL530L0X. La placa controladora se comunica con el atmega328 mediante SPI preguntando sobre el valor de cada sensor. Esta placa de sensores de distancia puede soportar hasta 16 sensores a la vez.

 

4 PANTALLA LCD HDMI

 

Aunque en esta entrada no se emplee, se destaca la elección de la pantalla LCD. Se trata de una pantalla de 7 pulgadas con pantalla táctil resistiva. Para controlar la pantalla es necesario un controlador LCD Universal. Esto permite usar conexión HDMI, VUGA o RCA.

5 APLICACIONES

    5.1 CONTROL REMOTO

Se ha diseñado un programa en C que permitiese la lectura del receptor RC y escritura de señal PWM a través de los controladores de motor. Debido a la extensión del código y licencia no se van a publicar ninguna de las librerías que gestionan al robot.

El resultado puede verse a continuación. Es necesario recalcar que se trata de la primera prueba en la que no se ajustaron los parámetros mecánicos, electrónicos y de programación para su funcionamiento por lo que el robot hace giros bruscos.

       5.2   OTRAS APLICACIONES

Se ha diseñado una navegación reactiva basada en comportamientos Fuzzi mediante cuatro sensores de rango lidar (están basados en tiempo de vuelo y no por triangulación). A partir de los cuatro sensores, tres en el morro y un apuntando hacia el suelo el robot es capaz de avanzar evitando obstáculos y de detectar cambios de nivel en el suelo (una escalera) para no caerse.