Electrónica.

Un primer diseño de la electrónica para el robot (todavía no probada) y primera idea de base completa, que dejan el robot terminado al 100% listo para empezar con la programación.


Lo primero es conectar la placa de control con los motores y con la placa de sensores, además necesitamos dar una alimentación de 5V ó 3.3V a la placa de sensores, por lo que tendremos que añadir algún tipo de regulador que nos proporcione la tensión requerida desde la batería de manera constante. Para todo ésto he montado una placa  con la que unir las distintas partes del robot y añadir componentes adicionales como el regulador de 5 V, leds, botones, etc..

La semana pasada el robot acabó así.


Una primera idea de base con un peso de 124 gramos. Falta todavía añadir la plataforma superior, donde se coloca la electrónica y los botones. Se puede hacer de muchas maneras, haciendo una palca de circuito impreso dura, usando una placa de topos en la que hacer la soldaduras, yo me he decidido por usar otra pieza de plástico y una placa para circuito impreso fina que casi no pesa, todas las opciones son más o menos equivalentes en peso.

Si no se tiene experiencia realizando placas de circuito impreso lo más fácil es recurrie a una placa de topos.


Es una forma de unir los distintos componentes electrónicos, se fijan a la placa y se unen mediante cables o se realizan las pistas uniendo las islas con estaño. Si no se tiene experiencia en electrónica esta es la opción más fácil, ya que no hay que diseñar y hacer la placa de circuito impreso. Aunque parezca más rápido que hacer un circuito impreso, es todo lo contrario, se tarda mucho más que cuando se tiene experiencia diseñando y creando circuitos impresos.

Si vamos a usar una placa de estas pues haremos los agujeros para acoplar a los 3 tornillos del robot y pincharemos la placa de pololu del microcontrolador (en el conector que pondremos en la placa de topos para tal fin) para hacer las distintas conexiones con el resto de los componentes. Una forma fácil de cortar y dar forma a estas placas de topos es con unos alicates de corte (los típicos de cortar cables) ir cortando uno a uno el material entre dos agujeros. Si nunca se ha hecho un pcb pues esta es la mejor opción para montar un primer robot, en cualquier tienda de electrónica venden estas placas, de distintos tamaños, y su precio es de unos pocos euros.

Otra opción sería realizar una placa de circuito impreso que se atornille al robot sobre la que se montarán los componentes, esta puede que sea la mejor opción, la única dificultad es la de cortar el pcb y darle forma, que si no se dispone de herramienta adecuada (como es mi caso) pues suele llevar bastante tiempo.

La opción por la que yo me he decido es usar una placa muy fina y flexible, que se puede cortar con unas simples tijeras con la forma deseada y taladrar con un punzón. Si queremos montar componentes como botones, interruptores pues habrá que pensar en una superficie sobre la que colocar esta placa fina. Aunque se podría atornillar directamente al robot la placa fina y funcionar perfectamente, pero no da la sensación de rigidez de las anteriores, aunque nos ahorraríamos unos gramillos.

Usando PVC como el anterior se crea una pieza que será la parte superior del robot.


Este material pesa poco y se puede trabajar sin necesidad de ninguna herramienta especial, se taladra para que encaje con los tornillos de la base y se hace un agujero para incorporar el interruptor que enciende el robot, según la normativa de muchos concursos el robot se deja sobre la pista totalmente apagado, y para comenzar simplemente se enciende. Por lo que llevar el interruptor principal en una zona accesible es lo lógico, aunque las normativas están para saltarselas y luego en los concursos se ve como se permite a los robots 3 pi hacer la calibración previa de sensores sobre la pista que necesitan antes de empezar a andar, comenzando la carrera mediante un pulsador. Pero bueno en principio hay que diseñar según el reglamento.


Se fija el interruptor al que soldaremos un par de cables para conectar en serie con la batería. Y en placa fina creamos el circuito impreso para conectar la electrónica necesaria. Que con unas tijeras y un punzón y brocas damos la forma deseada y la ajustamos a la base superior.


La placa de la derecha es donde pinchamos la electrónica de control (baby orangutan), el esquema es el siguiente: (esquema aún por probar)


En el centro está la Baby Orangutan, con sus pines con sus correspondientes nombres. Para un diseño mínimo del robot lo único que necesitaríamos hacer es conectar los motores y los sensores con la placa del microcontrolador y añadir un regulador que alimente a la placa de sensores.

La parte del regulador se encuentra arriba a la izquierda, en X1-1 y X1-2 se conecta la batería, a continuación de X1-1 se ve un conector, ahí va el interruptor en serie con la batería, a continuacuón sale un cable que va a Vin (tensión de batería a la placa del micro) y un diodo de protección, detrás del diodo encontramos un regulador 7805 con sus correspondientes condensadores para filtrar ruido, y lo usaremos para alimentar toda la electrónica distinta de la Baby Orangutan que se añada al robot.

La asignación de pines del microcontrolador se ha realizado para facilitar el trazado del circuito impreso, dejando el Reset sin conexión exterior, al igual que el ADC7 y el led de usuario (PD1). PB4 y PB5 son pines que también se usan para el conector de programación en serie, por lo que se han conectado a los sensores, si molestan en la programación con quitar el conector de la placa de sensores es suficiente. En PB1 y PD0 se han añadido unos leds, en lugar de un led por pin se han añadido tres, ya que así será más fácil verlos cuando el robot esté en la pista, se encienden mediante un transistor y la alimentación la toman del 7805. En PB0 y PB2 tenemos un par de interruptores, que nos sirven para seleccionar distintas estrategías del programa del robot, es recomendable añadirlos, ya que en el concurso no suele haber tiempo para reprogramar entre carreras y llevarlos y poder decidir entre distintos programas o parámetros es una ventaja.

 En ADC6 se lee la batería mediante un divisor de tensión, en este caso las resistencias son iguales dividiendo la tensión de la batería (7.4V) entre dos, ya que valores mayores de 5V no podemos leer, las resistencias deben ser del orden de 10K, se podría añadir un condensador en paralelo con la resistencia a tierra para evitar el efecto de carga del adc, pero vamos en este caso como está es suficiente. En PC4 y PC5 se ha puesto un conector para el protocolo I2C, que se usará para conectar un interfaz al robot y poder leer los registros del microcontrolador, como el valor de lectura de los sensores por ejemplo, así podremos comprobar su funcionamiento. Los pines que faltan se usan para leer la placa de sensores. Por último se han puesto los conectores para los motores en M1 y M2.

Aún no he probado esta placa de sensores pero viendo los pines que hay, la forma de leerla probablemente sea mediante la interrupción externa, por lo que es lo único que le debemos pedir al pin, que disponga de una. En principio si no surge posteriormente ninguna incompatibilidad entre la asignación de pines y los periféricos usados pues este diseño podría valer y si no me he equivocado en nada será el definitivo.

Una vez que se tiene el esquema se pasa a hacer el circuito mediante un programa como Eagle, Orcad, etc.. A mi me gusta Eagle aunque probablemente lo más acertado sea usar alguna de las alternativas libres.



Los componentes elegidos por temas de espacio suelen ser SMD sobre DIP, soldar SMD es bastante sencillo aunque parezca todo lo contrario, sólo requiere un poco de práctica, por lo que no hay ninguna razón para seguir usando componentes DIP sobre SMD en la mayoría de los casos. El fotolito final es este:  pcb. Para realizar la placa hay varias técnicas, yo uso insoladora más cloruro férrico, para insolar hay que asegurarse tener un buen fotolito, que no pase la luz, yo uso una impresora laser de las baratas y papel de transparencia para hacerlos, no se obtienen buenos resultados y las placas quedan un poco feas, pero es suficiente.

Una vez que sacamos la placa del ácido pasamos a soldarla, para componentes pequeños el mejor soldador que yo he encontrado es el JBC 14s con punta de 0.5 mm, junto con una pinzas (JBC también) y un soporte para la placa es todo lo que se necesita.


Una vez soldada la placa queda así:
 
Respecto a los valores de los componentes, la resistencias de los leds depende del color elegido: 130 para el verde y 180 para los rojos. Las resistencias de los transistores son de 100k y sirven para darle un valor de 0 V en la puerta en el caso de que configuremos el pin como entrada, se puede quitar. Las resistencias de los interruptores don de 12k las que van a Vcc y de 220 las que están en serie con el pin del micro, y sirven para proteger a éste de errores de configuración. El condensador electrolitico de 0.47 uF y el otro de 0.1 uF. Las resistencias del divisor de tensión de 12k.

La paca Baby Orangutan se inserta en los conectores que se han puesto para tal fin (cuidado de no meterla al revés), así tenemos la opción de quitarla, cambiarla sin tener que desoldar. El conector de arriba va a la placa de sensores, los dos conectores en el medio más pequeños son para los motores, y el conector grande al lado de las letras es el de la batería, los dos conectores en la parte de debajo son para el bus I2C y una salida de 5V por si queremos añadir una placa adicional al robot. En el bus I2C no se han puesto las resistencias necesarias para su funcionamiento, por lo que habrá que tenerlo en cuenta de proporcionarlas externamente cuando se vaya a utilizar. La placa tiene un par de puentes, se ve en la foto de las pistas y los componentes, las dos líneas amarillas las debemos unir haciendo un puente con un cable, hay 4 circulos verdes que es a donde deben ir estos cables. Junto al conector de la batería se observan los dos agujeros donde se deben soldar los cables del interruptor.

Por lo que la placa montada en el robot quedaría de la siguiente manera:


Si nunca se ha hecho un pcb ni se dispone de medios, pues la opción es usar la placa de todos del principio y monrarlo todo ahí con componentes dip.

Con esto ya tendríamos toda la electrónica necesaria para hacer funcionar al robot, pero se ha realizado una placa más con la única finalidad de hacer el robot más atractivo, ya que aunque no sea requisito es una buena idea intentar hacer robots bonitos de ver, ya que en los concursos una gran parte de la gente es el público, (vamos es una excusa para poder poner los leds que me venden los chinos de ebay que tanto me gustan XD).

La otra placa que se ha realizado es esta:


El esquema es muy sencillo, son sólo unos diodos leds con su resistencia.

Y su fotolito está aquí: leds.

Y así quedan en el robot.
 

Si, lo sé, todavía falta una línea de leds rosas entre los motores y los sensores, si no me meten mucho ruído en estos últimos ahí estarán.

La electrónica ya está hecha, por lo que sólo queda cablear todo. Lo primero es poner un cable a los motores que vienen sin nada:

Se suelda un par de cables a cada terminal, y se pone por lo menos un condensador entre ambos terminales de 0.1 uF para quitar ruidos, si se quiere también se puede soldar un par de condensadores más desde cada terminal a un punto común de la carcasa del motor, pero con el primer condensador inicial es suficiente.

Una vez cableados y montados en el robot quedan así:


Queda hacer al cable que une la placa de sensores con la placa que hemos realizado del microcontrolador y el cable que lleva la alimentación a los leds. Yo todo este tipo de cables los suelo hacer de la siguiente manera:

Partiendo de los siguiente componentes: conector hembra, cable de los buses del pc y termoretráctil.


Se pela y separa el cable del pc y se corta la longitud deseada de pines para el conector, en cada corte se sacrifica un pin, si necesitamos 11 hay que cortar por el 12.


Una vez pelados y cortado el conector se les da flux y se estañan ambos, de tal forma que para luego unirlos sólo tengamos que usar el soldador sin proporcionar estaño.


Una vez que se han soldado todos se coloca y calienta el termoretráctil.
 

Por último se puede dar un poco de termocola a los conectores para asegurarse de que no se muevan.


Realizamos el otro conector de igual forma:


Con esto ya estaría el robot completo, respecto a la base se ha realizado un cambio y se ha añadido una segunda rueda loca.


Debido a la flexibilidad del PVC la parte de los sensores casi tocaba el suelo, por lo que el rozamiento con los tornillos iba a ser constante, por lo que prefiero poner otra rueda loca más pequeña lo que añade peso y hace que el robot vaya siempre a esa altura. La altura variable puede ser un problema ya que se va a leer valores analógicos (en este caso contando el tiempo), por lo que la altura variable afectaría a la lectura.



Lo ideal son 3 puntos de apoyo, que son los que se necesitan para el plano y de esa forma nunca una rueda se va a poder quedar al aire. En este caso el centro de gravedad está sobre el eje o por detrás de éste, por lo que el caso de perder el contacto de una rueda con el suelo en una superficie plana es imposible. Segunda rueda loca.

Voy a empezar a probar con esta idea de base a ver que resultado obtengo, y sobretodo para ver como van los motores ya que tengo serias dudas sobre pasar el metro por segundo con ellos. De todas formas tengo los mismos motores 10:1 de más corriente, 1.6 A en stall que podrían quemar la Baby Orangutan si el robot se queda bloqueado, pero los he probado y me ha sorprendido la velocidad y la fuerza que tienen.

La base con todo montado y lista para funcionar da el siguiente peso.
 
166 gramos, creo recordar que el 3 pi lo pese y estaba sobre los 155 gramos.

 

Así queda el robot listo para programar y probar la electrónica que se ha montado, que aún no es seguro que funcione. Montar un robot lleva un par de tardes como se puede ver, lo difícil viene ahora que es programarlo de la mejor manera posible y lo que requiere la mayor parte de tiempo de prueba y desarrollo de un robot. Pero bueno eso para más adelante, que ahora voy a ver si vuelvo un poco con los miniz que están un poco abandonados.

Para cualquier duda, comentario, idea, correción... Foro.