Una de las asignaturas pendientes que tenía era aprender a manejar un programa de CAD para poder diseñar mis piezas e imprimirlas en la impresora 3D. Así que me puse manos a la obra con los Tutoriales de Obijuan y aprendí a moverme con FreeCAD.
Lo primero que quería diseñar era un robot pequeño y manejable, orientado a que pudiera jugar también con él mi hijo pequeño. Las características mínimas que tenía en mente para este objetivo eran:
- Pequeñas dimensiones, manejable con una mano
- Diseño básico y resistente
- Que toda la electrónica estuviera contenida dentro del robot, sin cables ni artilugios por fuera. Vamos, que pareciera un juguete
Y después de un tiempo…. He aquí el resultado 🙂
Especificaciones y la lista de la compra
Las características básicas que tenía en mente para el robot eran:
- Movimiento mediante cadenas tipo «tanque»
- Usar servos micro trucándolos para rotación continua
- Alimentación por 4 pilas AAA
- Sensor de Ultrasonidos para evitar obstáculos
- Receptor de Infrarrojos para poder controlarlo con un mando a distancia
- Pulsador para poder controlar las opciones
- Buzzer
- Interruptor On / Off
Diseño del Robot
El diseño del robot con FreeCAD fue más o menos sencillo, ya que la forma del mismo es bastante simple. La parte que conlleva más complejidad con diferencia son los eslabones de la cadena.
Aunque calculé el módulo de los engranajes y las dimensiones que tenían que tener los eslabones para que rodaran bien, siempre había algún problema tras imprimirlos. O bien, el paso de los eslabones no era el adecuado y terminaba «saltándose» un diente (y parándose normalmente el motor ya que no tiene tanta fuerza) o bien la longitud de la cadena no era la adecuada y estaba muy floja o demasiado apretada. En definitiva, tuve que imprimir varias combinaciones hasta que al final di con una que funcionaba. Diseño en plan Prueba y error.
El resto del robot fue simplemente paciencia, imaginación y tiempo.
Las piezas para imprimir os las podéis descargar de Thingiverse.
Mecánica
Aquí el problema fue también la cadena. Lo primero que hice fue trucar un servo para que funcionara de manera continua. Lo intenté de la forma fácil, que es situando el potenciometro en el centro y pegándolo para que no se moviese. Pero al final terminaba moviéndose ligeramente y el servo no funcionaba correctamente (en reposo se movía ligeramente). Al final terminé haciéndolo quitando el potenciometro y soldando 2 resistencias a modo de divisor de tensión simulando la posición «centro». Esto funcionó muy bien, sin no pocos problemas para meter las 2 resistencias dentro del servo.
Una vez resuelto este problema, me encontré con otro y fue la resistencia de los engranajes del propio servo. Si terminas de montar una de las cadenas y se la das a tu hijo pequeño lo primero que hará (al menos el mío) es intentar moverlas con la mano. Al hacerlo rapidamente se empiezan a saltar los dientes del servo hasta que al final dejan de funcionar. Solución: servos con engranajes metálicos. Fin del problema (pero más caros, también).
Electrónica
No fueron pocos los problemas que me encontré montando la electrónica. Si a esto le sumamos que la cabeza del robot es demasiado pequeña para todo lo que hay que incluir, la verdad es que la cosa se complica.
Uno de los principales problemas fue la alimentación, ya que yo quería alimentarlo con 4 pilas AAA y esto es demasiado poco para el Arduino. Al final me decanté por alimentar los servos directamente desde el portapilas y el Arduino con un step-up que convierte la tension de entrada a 9V.
Ya cuando tenía todo montado y lo estaba programando, otro problema que me encontré es que el receptor de infrarrojos tenía lecturas erróneas mientras los servos estaban en marcha. Al final analizando el circuito con un osciloscopio la causa del problema era bien sencilla: había ruido en la línea de masa (la compartían con los servos y éstos metían el ruido). La solución fue tan fácil como tomar la tierra de otro sitio (directamente del Arduino).
A parte de estos la verdad es que también me encontré muchos otros problemas. Sinceramente creí que lo que más problemas me iba a dar iba a ser el diseño pero terminó siendo la electrónica. Los circuitos funcionan bien de manera aislada en una placa proyecto pero cuando conectas todo al Arduino, la cosa no va igual… 🙂
Software
Todavía tengo que poner en orden el código y subirlo. Por ahora el funcionamiento es bastante simple. Al encender el robot emite una música y entra en modo «Menú» permitiendo elegir con el pulsador superior el modo de funcionamiento:
- Modo 1. Anda de manera autónoma y cuando se encuentra un obstáculo lo evita
- Modo 2. Nos permite controlar los movimientos del robot con un mando a distancia por infrarrojos
En cualquiera de los dos casos, si pulsamos el botón superior, el robot se para y vuelve al modo «Menú»
Algunas fotos





¡En marcha!
Aquí os dejo un pequeño video del Robot en Modo 1. Cuando tenga el código ordenado y subido al repositorio lo publico en otra entrada, así como también el esquema de conexión de la electrónica.
¡Hasta otra!