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.