Introducción
El variwheeler es un robot omnidireccional con geometría variable diseñador para ser usado de forma sencilla.
Hace uso de unas ruedas mecano (también llamadas ruedas suecas) para poder desplazarse en cualquier dirección en el espacio, pero además, también emplea unos servomotores sg90 para bloquear o permitir el movimiento de un eje que le levanta o desciende según la necesidad. Como no podía ser de otra manera, cuenta con 4 sensores VL53L0X para evitar colisiones y un QTR-8RC para poder detectar y seguir líneas con precisión.
Este es un proyecto en curso, que pretende avanzar a convertirse no solo en un robot interesante, si no en uno del que puedas aprender desde 0, tato a programar como a manejar un robot apropiadamente, para todo esto y mas se sirve de su propia librería para su manejo.
Podéis encontrar toda la información y seguir este proyecto de código abierto en su enlace de GitHub.
Diseño
En este apartado vamos a ver como se han diseñado las diferentes características del variwheeler
Diseño mecánico
¿Qué mejor forma de comenzar a visualizar nuestro robot que con el clásico blueprint?
Ahora que ya hemos podido ver un diseño bidimensional genérico de nuestras intenciones, creo que se entenderá mejor si vemos el resultado a producir:
Bien, ahora desmenuzemos un poco las partes que componen todo esto:
Cuerpo principal:
Este es el elemento que lo une todo
Plataforma móvil:
Esta es la que soporta el controlador de los motores, cuando el robot se comprime se mete debajo del cuerpo principal parcialmente, cuando no se alinea con este.
Pata:
Esta pieza es esencial para el robot, es la que porta el motor y es la que une los ejes de rotación para la plataforma móvil respecto del cuerpo, describiendo la trayectoria.
sg90:
A pesar de su etiqueta se trata de la versión full metal del sg90, es un servomotor de -90º a 90º controlado por la longitud de un pulso. La elección de la versión metálica se debe a que va a tener que soportar constantemente las fuerzas producidas en el eje por el movimiento del robot.
Transmisor de eje:
Es la pieza que une el sg90 y la pata. Su parte tubular es para pasar por dentro de un rodamiento y soportar la base sin forzar el eje del servomotor.
Restrictor:
Esta fragil pieza es la encargada de restringir los movimientos de la plataforma móvil, forzándola a estar lo mas paralela posible al plano del cuerpo principal. Por otro lado, es la que transporta los cables del cuerpo principal a la plataforma móvil.
Ruedas suecas:
En este caso se han usado unas ruedas suecas de 60mm que acoplan directamente con los motores TT
Soporte de QTR:
Esta pieza sirve para mantener a una distancia apropiada los QTR del suelo, se acopla a la plataforma móvil.
Motor TT:
El motor que mueve el robot.
Diseño electrónico
En la versión construida se ha empleado una PCB perforada para hacer el sistema.
Los componentes utilizados son los siguientes:
ESP32:
La controladora principal, Usa lógica de 3v3 e integra el wifi y bluetooth por si misma.
PCA9685:
Es el elemento que controla los motores TT y los servos
Se trata de un PWM de 12 bits a 5V
QTR8-RC:
Los sensores de luminosidad, son 8 sensores digitales que dan un valor entre 0 y 1000 tras ser calibrados, ideales para detectar líneas.
Level Shifter.
Dado que algunos dispositivos funcionan a 5V y otros a 3.3V, es necesario para comunicarlos.
VL53L0X:
Un sensor laser por I2C, como todos tienen la misma dirección es necesario encenderlos secuencialmente, además, se han usado a 5V, por que a pesar de que teóricamente pueden ir a 3.3V, no todos los del mercado funcionan apropiadamente bajo estas condiciones.
LM7805:
Regulador de voltaje para 5V, con este elemento garantizamos unos voltajes estables para los servos y los elementos de 5V.
LM7808:
Regulador de voltaje para 8V, con este alimentamos a los motores principales y la placa de control.
Transistor 2N3904:
Estos transistores sirven para encender secuencialmente los sensores laser.
Algunas fotos del resultado final:
Por ultimo, el esquema: