Autor: Oscar Gonzalez
Tiempo de lectura: 11 minutos
Pequeño robot tanque con control remoto basado en ESP32 ATOM S3 de M5Stack
Como ya sabes, el cerebro del pequeño robot es un ESP32 ATOM S3 de M5Stack. Es un dispositivo extremadamente pequeño y potente que nos viene perfecto para el pequeño tanque. Podremos por supuesto hacer lo básico como controlarlo remotamente, como lo veremos un poco más adelante. Lo interesante es que también nos dará mucho juego para mejorarlo y ampliarlo en el futuro, así que nunca se nos quedará corto.
Pero primero vamos a preparar el chasis del robot.
El montaje del chasis es extremadamente sencillo y consiste en pegar con cianocrilato las piezas impresas a los servos.
¡Si usas la mesa para que quede todo bien recto, ten cuidado de que no quede pegado a la mesa!
Fíjate como he acortado el largo del cable de los servos para que no quede exceso de cable. Para eso debes abrir cada servo, desoldar los cables de sus conexiones, acortarlos y volver a soldarlos en su sitio.
Es un paso opcional, pero quedará todo mucho más compacto.
Ahora veremos la parte de la electrónica que consistirá en montar todos los componentes encima de la placa PCB.
Todo se basa en el ATOM S3, que por debajo, en la parte trasera, tiene unos pines hembra que vamos a utilizar para realizar todas las conexiones. Para darle alimentación por ahí, nos aprovecharemos de una funcionalidad que tiene muy interesante para el sensor de distancia láser.
Tiene unos pocos pines GPIO, alimentación y poco más. También puedes ver que están perfectamente indicadas como se puede ver en la imagen de abajo.
Parte trasera del ATOM S3 de M5Stack
Aquí abajo puedes ver las especificaciones de para qué es cada pin. Este esquema será especialmente útil cuando comiences a realizar todas las conexiones.
Esquema de pines del ATOM S3
Ahora vamos a preparar la PCB, pero primero veamos dónde va conectado cada elemento.
Más abajo podrás ver el esquema de todos los componentes que vamos a cablear con la ayuda de pequeños cables que soldaremos por la parte trasera de la PCB.
Fíjate que he usado un pequeño truco respecto a la alimentación de los servos. Hay un regulador Step-Up de 5V que alimenta directamente tanto los servos como el ATOM S3, pero no el sensor, ahora verás por qué.
Con esto lo que hago es asegurarme de que los servos se alimenten a 5V y no a 3.7V (que es la tensión de la batería). Si bien estos servos pueden funcionar igual a 3.7V, tendrán menos potencia. Con el regulador, lo que consigo es que los servos tengan un poco más potencia y de paso aprovechamos mucho más la batería según vaya cayendo el voltaje, ya que el regulador intentará mantener la salida a 5V todo lo posible.
Usar el regulador no es obligatorio y si quieres puedes montar el robot sin ese componente, pero los servos girarán un poco más despacio.
Atención a la alimentación del sensor de distancia VL6180:
El sensor de distancia lo alimento con la salida de 3.3V que tiene el ATOM, no la salida de 5V del regulador. Eso es debido a que la lógica de ESP32 funciona a 3.3V y el las señales del bus I2C del sensor de distancia deben usar el mismo nivel.
De esa forma, tanto la alimentación como las líneas de datos SCL y SDA estarán al nivel correcto de 3.3V para que funcione todo como la seda sin riesgo de freir el sensor.
Esquema de conexiones M5 Tank ESP32
Para conectar los servos usaremos unos pines macho soldados y debes fijarte en los colores de los cables para saber cómo tienes que conectarlo. Abajo puede ver a qué corresponde cada cable según su color.
La señal de los servos irán conectadas a las salidas G5 y G6 del ATOM S3. Todavía te quedarán dos pines libres, G7 y G8 por si en un futuro quieres conectar más cosas.
Conexiones de un servomotor
Como hemos visto, el protagonista principal del robot es el ATOM S3. Aún así para poder hacer algo más que radiocontrol, he añadido un sensor de distancia láser VL6180.
El VL6180 es un sensor muy interesante. Otros sensores de distancia que funcionan por ultrasonidos dependen del eco y rango cónico en la detección; sin embargo, el VL6180X al funcionar por láser, tiene un rango mucho más preciso, casi en línea recta y no tiene problemas con efectos rebote o efecto eco. Es el mismo sistema utilizado en los detectores LIDAR pero en línea recta.
Con este sensor podremos detectar objetos a cortas distancias que se encuentren delante del robot.
Sensor de distancia VL6180
El montaje de la PCB es bien sencillo y consiste en ir realizando todas las conexiones punto por punto, siguiente el esquema.
Para montar la PCB he usado cables finos y colocado los pines macho más o menos de forma coherente en la placa PCB.
Lo primero que instalo es el sensor de distancia que queda en el frente. Justo por detrás van los pines del ATOM S3 y luego el regulador.
Fíjate que he dejado un pequeño hueco entre el ATOM y el regulador para poder meter justo ahí la batería.
En estos casos me gusta hacer las líneas de alimentación en los laterales. Es decir, dejar una línea entera para el polo negativo y otra línea entera para el positivo, ambas en los laterales de la PCB.
De esa manera, según voy haciendo las diferentes conexiones, puedo tomar corriente de esos puntos. Hay que tener cuidado con los pines para la batería, ya que fácilmente podemos conectarla al revés!! He hecho una marca del positivo con un rotulador a modo de recordatorio.
No impide que lo pueda conectar al revés, pero por lo menos minimiza el riesgo ;)
Ahora que la placa PCB está lista, se puede colocar la batería en su sitio y dejar el conjunto montado sobre el chasis.
Para eso uso un trozo pequeño de cinta doble cara y dejo pegado todo el asunto sobre los servos.
No te voy a engañar, a mí lo de la cinta no me ha funcionado bien y se despega con facilidad. Podría haber pegado la PCB con cola caliente sobre el chasis, pero eso significa que si tengo que retocar algo, será un coñazo. Así que de momento lo dejo con la cinta doble cara.
Si lo has hecho todo bien, puedes ver que el ATOM muestra el programa por defecto de fábrica y el sensor se ilumina.
Si por cualquier motivo no enciende, debes revisar todas las conexiones y que la batería esté cargada.
Fíjate también que he colocado el ATOM de tal manera que el puerto USB es accesible para poder programarlo.
Ahora solo es cuestión de colocar tanto las ruedas como las gomas y seguir con la programación. Para las gomas, también puede sutilizar unas juntas tóricas como estas.
Y hablando de programación, eso es exactamente lo que vamos a ver en la siguiente página, donde también veremos cómo controlar el pequeño tanque remotamente usando otro ESP32.