DB Sariak 2013

DB Sariak 2013

Este año por 3º año se celebrará el 18 de Mayo la competición DB Sariak 2013. Como en años anteriores se realizarán 2 pruebas:

  • Proiekton – Concurso de proyecto cientifico tecnológico
  • DB Bots – Concurso de robots velocistas siguelineas
Hasta ahora el concurso estaba dirigido hacia los alumnos de ESO, Bachiller y FP. Este año como gran novedad hemos abierto la posibilidad para cualquier persona pueda participar junto con los proyectos de FP.
.
.
Estamos depurando detalles de las competiciones, como premios, bases del concurso, así que estar atentos ante los cambios. Mas información en la página web de IEFPS Don Bosco
.
Mapear los pines de Arduino

Mapear los pines de Arduino

Últimamente ando un poco liado y me está costando escribir. Estoy intentando delegar en mis alumnos la tarea de documentar lo que van trabajando. Pero a veces sin darse cuenta lo publican y por mucho que les diga que tengan cuidado se suelen confundir. Por este motivo puede que veáis que un día se a publicado un artículo y al día siguiente ha desaparecido.
Cuando vamos avanzando con la placa Arduino y se ha realizado algún proyecto, suele llegar el momento de crear un proyecto final. Una solución es usar la placa de Arduino, pero 23 euros + iva sale un poco caro para dejarlo muerto de risa. Ademas si solo tenemos una placa tendríamos que comprar otra para poder seguir haciendo proyectos. Por muy elegante y mañoso que se sea, siempre da peor sensación dejarlo con los cables por el aire, por no decir que a nada que algún cable se suelte dejará de funcionar.
.

.

La solución es usar un microcontrolador y realizar el proyecto fuera de la placa Arduino. El microcontrolador que necesitamos es el ATMEGA 328p-pu. Se puede encontrar entre 3,5 y 6 euros dependiendo de la tienda en la que se compre, hay que sumarle gastos de envio… A la hora de comprar el microcontrolador hay que tener en cuenta que necesitará tener metido el Bootloader de Arduino UNO. Esto es un pequeño programa que funciona como la bios de un pc, al arrancar el micro realizar y configura unos parámetros del microcontrolador. Si sabemos como meter el bootloader, no hay problema pero si no sabemos es muy recomendable comprar el microcontrolador con el bootloader cargado.

Iba a comentar que con el bootloader cargado suelen ser un poquito más caros pero por lo visto desde que la última vez que busque en ebay el micro a bajado mucho de precio. Que cada uno valore que busca, precio, urgencia en recibirlo, servicio post venta, cercania… Os pongo un par de sitios donde se pueden comprar aunque no garantizo nada ni tengo ninguna relación ni interés en ninguno.

  • Ebay (desde 2,5€ con gastos de envio incluidos)
  • msebilbao (6€ más gastos de envio)
Hay que tener claro que los pines de la placa Arduino UNO y los pines del microcontrolador no coinciden. Con esto quiero decir que en la placa han colocado mediante pistas los pines del microcontrolador en un determinado orden para que sea más fácil empezar a trabajar con la placa. Si nosotros queremos trabajar directamente con el microcontrolador tenemos que conocer exactamente cada pin de la placa con que pin del microcontrolador corresponde. Como una imagen vale más que 1000 palabras, os dejo una imagen para que podáis ver como están ruteados los pines del micro con los pines de conexión de la placa Arduino UNO.
.
.
Antes usaba un dibujo que creo que en algún otro articulo lo publiqué, incluso se puede buscar en la hoja de características del microcontrolador o dado que la placa es Hardware Abierto mirar en Eagle como está ruteado. Esto requiere trabajo y concentración para no confundirse, ahora gracias a la Comunidad de Arduino han publicado en su foro unos esquemas muy interesantes donde se puede ver cada pin de una manera mucho más visual.
.
Encima no solo se han tomado la molestia de crearlo para el Arduino UNO, sino que han sacado para otras placas de Arduino. Os dejo la documentación que han creado hasta ahora.
Como construir un vehículo simple para Arduino

Como construir un vehículo simple para Arduino

Descripción

En el curso que acaba de finalizar realicé con los alumnos un vehículo, fácil de construir, barato y que se pudiera programar de manera sencilla. Mediante este artículo quiero comentar los pasos y el material que hace falta para la construcción del vehículo.En un anterior artículo comenté las razones técnicas y la evolución que tuvo el robot hasta que acabé creando el definitivo que tenéis en la imagen. Para la realización del vehículo es necesario haber trucado los servos como comenté en otro artículo.

 

Material:

Paso 1: Base inferior/superior

Vamos a cortar 2 rectángulos de 68x53cm de plástico o madera. Lo más sencillo es aplicar la técnica paper para la construcción de las 2 bases. Para ello hay que imprimir las dimensiones de la placa Arduino UNO con los agujeros donde van a ir las bases para la placa. Yo suelo imprimir 3 pegatinas por coche, pego una en cada lado de la base superior y la tercera en la cara superior de la base inferior. La pegatina de abajo de la base superior la uso solo para poder ver las marcas para taladrar ya que pintar sobre el plástico es complicado.
.
.
Estas plantillas las suelo imprimir sobre papel para pegarlas en las bases de plástico y corto el cuadrado que forma. Lo podemos cortar con una sierra a mano o mecánica, en mi caso las corte con una sierra de disco que se suele usar para cortar listones de madera. De esta manera conseguido la base superior e inferior. Es importante aprovechar para hacer los 4 agujeros para sujetar la placa Arduino UNO de la base rectangular superior. Estos agujeros son de M3 así que los hacemos con una broca de esa métrica en los puntos dibujados en la plantilla.
.

Paso 2: Soportes para los servos

Los soportes de los servos tienen la función de sujetar los servos al chasis del vehículo. Aparte de sujetarlos da robustez a todo el vehículo sujetando la estructura de este. Los soportes los he hecho doblando 4 pletinas de aluminio con las dimensiones 7X50X1,5cm (se puede hacer con chapa okume, lijandola).
.
.
Para saber por donde doblar y el lugar donde hacer los agujeros he vuelto a usar la técnica paper. El dibujo  de CAD lo he hecho con LibreCAD ya que ocupa poco (comparándolo con autocad) y para hacer este tipo de trabajos es más que suficiente, encima de código abierto.
Yo las he imprimido en papel que tiene cola por la parte de atrás y las he pegado a una chapa. De esta manera es mucho más fácil cortar a las dimensiones necesarias y crear 4 pletinas iguales.
.
.
Una vez cortadas a las dimensiones deseadas, hay que hacer 3 agujeros con broca de M3 en cada pletina. Estos agujeros los usaremos para sujetar las pletinas al servo y a los 2 rectángulos que forman la base superior e inferior. Lijo las rebabas que suelen salir al taladrar aluminio.
.
.
Para trucar los servos 9g, hemos seguido el artículo como trucar servos paso a paso escrito y comentado hace poco. Pero para poder atornillar las pletinas a los servos, los agujeros que tienen en las 2 orejas los servos son un poco pequeños. encima están tan cerca del cuerpo del servo que no hay espacio para atornillarlos. Por lo que hay que agrandar los agujeros de los 2 servos con brocas de M3 y hacer que el agujero sea corrido, como en la foto de abajo.
.
.
Ahora hay que doblar las 4 pletinas, se puede hacer individualmente pero es más rápido si antes las pegamos con celo y una vez sujetas las doblamos en la plegadora. No todo el mundo tiene una plegadora por lo que tal vez alguno tenga que usar un tornillo de mesa y un martillo. En caso de no saber como doblarla siempre queda hacerla con chapa okume y lijándola.
.
.
Una vez doblas, les quito el papel y el celo para atornillarlas al servo, como se muestra en la imagen.
.
.

Paso 3: Montar el vehiculo

Una vez que los dos servos tienen atornillados sus 2 pletinas en forma de U. Presento ante la base superior los dos servos y marco los 4 puntos en los que hay que hacer agujeros para atornillar los servos. Como quiero que el servo quede debajo de la placa Arduno procuro que no sobresalga la pletina en forma de U de la base rectangular superior. Hago los agujeros donde están las marcas con una broca de métrica 3.

.
.
Aprovecho para atornillar los 4 soportes de nylon a la base superior ya que al mecanizar la base habíamos agujereados los puntos donde iban los soportes. Atornillo a la base superior las 4 pletinas que tienen amarradas los servos, quedando como en la imagen inferior.
.
.
Marco el lugar de los 4 agujeros de la base inferior presentando las pletinas ante la base y agujereo la base en los lugares indicados con broca M3. Según el sistema de apoyo que vayamos a usar (bola loca, terminal…) como tercera pata, medimos y realizamos los agujeros del tamaño adecuado en el extremo opuesto a donde van a ir los servos. Es recomendable centrar a la base el sistema de apoyo y no ajustarlo demasiado al borde de la base para evitar problemas.
.
.
Solo queda montar la base inferior a las pletinas, atornillan los 4 tornillos y montar el sistema de apoyo, en mi caso ha sido un terminal por lo que el propio terminal traía los tornillos de apriete para regularlo a la altura deseada.
.
.
Las ruedas las atornillo con los tornillos que traen los servos, estos tornillos con el tiempo se suelen soltar. Para aumentar el apriete suele echar cola caliente en el servo donde voy a atornillarlo a la rueda, incluyendo el agujero donde tiene que roscarse el tornillo. Sin que se enfríe la cola atornillo la rueda al servo, de esta manera se consigue un mayor agarre y no se suele soltar la rueda con tanta facilidad.
.
.
Solo nos queda colocar la placa Arduino UNO, atornillar los tornillos de nylon a los soportes de nylon (como se ve en la imagen superior). Montar el esquema eléctrico y programarla pero eso lo haré en otro artículo para que no quede muy largo este.
Vehículo simple para Arduino

Vehículo simple para Arduino

El objetivo que me marque el curso pasado fue construir un pequeño robot para que los alumnos lo pudieran construirlo y programarlo con Arduino. Me pasé tiempo pensando como construir un vehículo para poder controlarlo con Arduino. Encontré cierta inspiración entre otros, en el blog de Jrodrigo y también en la información que publico Nayma sobre la construcción de un robot.
Desde el principio me pareció que hacerlo con motores de continua iba a ser difícil dado que los alumnos eran de primero de desarrollo de productos electrónicos (ahora con la nueva ley, el ciclo es mantenimiento electrónico). Por ese motivo decidí hacerlo con servomotores trucados, pero tenían que ser muy pequeños por eso usé los 9g. El tamaño tenía su importancia porque la idea que tenía era meter 4 servos debajo de la placa Arduino, ya que pensaba que lo mejor iba a ser tener 4 ruedas, ¡como los coches de verdad!.
Como tenemos una plegadora de chapas en el departamento de soldadura estuve haciendo pruebas hasta que conseguí este robot.
.

.

Para hacer el vehículo, medí las dimensiones de la placa arduino y hice 4 Us de alumnio (1,5mm espesor) para que no sobrepasaran las dimensiones de la placa. No podían ser ni muy gordas las Us ni muy finas, sino o el servo no entraba o las ruedas no tocarían el suelo. No voy a seguir comentando como construi este robot principalmente porque cuando lo programé descubrí que tenía muchos problemas. Pero el motivo por el que tuve que desistir fue, que los alumnos doblaban chapas por doblar y no conseguían casar dos Us ni de casualidad. ¡Se les olvidaba que antes de doblar hay que pensar!
Ese fue el principal motivo pero ya antes había empezado a encontrarme con cosas que no me gustaban:
  • No podía amarrar los servos trucados previamente al chasis con tornillos (más adelante descubrí como) por lo que tuve que hacerlo con cola caliente. Pero al coger el robot si se hacía presión en una rueda la cola cedía y la rueda se soltaba
  • La programación de 4 servos y el control no es sencilla ya que cada uno de los servos en teoría se para en 90º pero en realidad es en una horquilla entre 80 y 100. Por lo que cada servo tiene su ángulo para que deje de girar.
  • 4 Servos consumen una cantidad de corriente importante que requiere tenerlo en cuenta, si no recuerdo mal más de 1A.
  • Con 4 Ruedas con tracción, es muy difícil que todas estén tocando con la misma fuerza el suelo. Normalmente una se me quedaba al aire, por lo que el coche giraba hacía ese lado más.
  • Pero como comentaba lo principal era que los alumnos no eran capaces de doblar chapas de un tamaño aceptable y que entrasen los servos, las ruedas tocasen el suelo y que las Us casasen una dentro de otra.
Mientras veía que no podía seguir así, empecé a barajar otras posibilidades y buscando inspiración se me ocurrió como hacerlo:
  • Al ver que siempre tocaban 3 ruedas el suelo y una se quedaba en el aire, había que hacer un vehículo con 3 apoyos, el cuarto estorbaba.
  • De los 3 apoyos, 2 serían servos y el tercero algo que se arrastrase, una rueda loca o un simple tornillo con la cabeza pulida. La programación y el consumo de corriente se simplificaba.
  • Hacer una U era difícil con los alumnos, pero era más fácil hacer 2 superficies planas unidas entre sí.
Como andaba fatal de tiempo me puse a construir en serie los robots, llegando a sistematizar tanto que los construyo en un momento 🙂 Así ha quedado el robot montado:

.

.
Más adelante escribiré otro artículo comentando como construir paso a paso un vehiculo simple para Arduino. Pero para que vayáis viendo su funcionamiento, os dejo el video que hicimos para que funcionase como siguelineas.
.

.
Este robot del video participó en el concurso de robots velocistas dbbots que organizamos este año por primera vez.
Como trucar servomotores paso a paso

Como trucar servomotores paso a paso

Generalmente los servomotores giran 180º el objetivo con este artículo es enseñar como se puede hacer girar 360º el servomotor. Trucando los servomotores vamos a hacer un vehículo aunque eso lo comentaremos en otro artículo más adelante. Os dejo una foto de mi primer prototipo aunque más adelante evolucionó en un vehículo simple para Arduino.
.

Alguno se preguntará ¿para que quiero hacer eso si con un motor de corriente continua se puede hacer?. Las ventajas de trucar un servomotor respecto respecto a un motor dc son:

  • No se necesita montar un circuito de potencia para alimentar el servo ya que lo trae internamente.
  • Es muy barato los de tipo 9g rondan los 2 euros.
  • El servomotor tiene su propia estructura para amarrarlo a cualquier chasis
  • Los servomotores suelen venderlos con accesorios para poder amarrar elementos al eje.
Como no todo son cosas buenas tiene alguna pega que hay que tener en cuenta.
  • Trucar los servos no es complicado pero hay que hacerlo con cuidado ya que todo es muy pequeño.
  • Los motores giran 360º pero no van a grandes velocidades.

Características del servomotor

La principal característica de un servomotor sin trucar es que se puede controlar el ángulo de giro de su eje entre 0º y 180º. El servomotor en su interior tiene un motor dc normal, una circuitería que controla la posición del eje del servomotor y engranajes para disminuir la velocidad de giro del motor.
.

.
Generalmente suelen tener 3 elementos que hacen que solo giren 180º:

  • La circuitería que controla que no gire más de 180º, corrigiendo automáticamente los posibles desvíos.
  • Un potenciómetro como eje que no puede gira una vuelta completa. (algunos potenciómetros si giran 360º).
  • Un tope mecánico en los dientes de los engranajes que imposibilita que gire completamente el engranaje.
Ya tenemos una idea de lo que tenemos entre manos, pero la primera duda suele ser, ¿Donde compro un servomotor? Como busques en una tienda convencional sale caro, como poco 3 o 4 veces más caro. Yo todo el desarrollo lo he hecho con este servomotor TowerPro SG90. Es un poco carito por lo que los siguientes los compré en ebay mucho más baratos simplemente buscando servo 9g ojo!! marca que te busque en todo el mundo que los chinos son los baratos 😉 yo no suelo pujar y voy directamente a los «compralo ya» o si voy a comprar unos cuantos, le pido un precio a alguno de los vendedores que suelen estar encantados de vender y contestan siempre.

Trucar servomotor

Una vez que tengamos algún servo 9g para trucarlos hay que modificar los 3 elementos que hacen que solo gire 180º comentados anteriormente, como se muestra a continuación:

Paso 1: Cortar la pestaña del engranaje

Hay que cotar con un cutter las dos pegatinas que trae el servo (una a cada lado), para luego poder separar con facilidad la carcasa. Otra posibilidad es quitar la pegatina, según lo pegadas que estén elijo uno o lo otro.
.
.

.

A continuación soltamos los 4 tornillos que trae con un destornillador adecuado para que no se estropeen las cabezas de los tornillos. Hay que tener cuidado porque la rosca es la propia carcasa y si lo forzamos se puede dañar la rosca.
.

.

Una vez desenroscados los 4 tornillos, separamos la tapa que protege los engranajes del cuerpo del servo. Sacamos el engranaje del eje, como suele estar duro hay que hacer fuerza pero sin pasarse para que no salga todo volando.

.
.

.

Separamos el engranaje que trae la pestaña que bloquea el giro de 360º y cortamos con un cutter la pestaña con mucho cuidado de no dañar los dientes del engranaje.

.

.

.

Paso 2: Romper el tope del potenciometro

Hay que sacar todos los engranajes y dejar el eje del potenciómetro a la vista. Este servo tiene un potenciómetro que no gira los 360º porque tiene un tope mecánico, en algún otro servo he visto que no trae este tope. No se aprecia muy bien en la foto pero la base el eje del potenciómetro tiene una arandela fina para que haga tope en la carcasa del potenciómetro y no gire más de 180º. Con unas tijeras, una punta y unos alicates de punta fina hay que ir cortando y quitando la arandela fina hasta que deje girar los 360º al potenciómetro en los dos sentidos.
.

.

Después montamos todos los engranajes en el orden que le corresponde y le ponemos la tapa para protegerlos.

Paso 3: Trucar sistema de control

Sacamos completamente los 4 tornillos y separamos la tapa trasera del cuerpo. De esta manera tendremos acceso a la placa de control de giro y al potenciómetro (por ahora no sacaremos la tapa de los engranajes). Sacamos la tarjeta de control de giro y comprobamos que hay 2 cables que van al motor de continua y otros 3 al potenciómetro.
.

.

Cuidado con la manipulación de estos cables si se les mueve mucho se suelen cortar los hilos de cobre sobre todo los que están soldados a la placa. En mi caso los cables eran de diferentes colores por lo que es más fácil saber cual es cual pero por ahorrar muchas veces suelen ser todos los cables rojos. En este punto hay que sacar una foto porque algún cable (si no son 2 o 3) se nos soltará por descuido y la foto nos ayudará a volver a montarlo.
Ahora lo que tenemos que hacer es sustituir el potenciómetro por 2 resistencias del mismo valor. El valor de la resistencia no importa cual sea (yo he usado de 3300 ohm) pero las dos resistencias tienen que tener el mismo valor. Mis resistencias tienen una tolerancia del + – 5% por lo que su valor oscilará entre 3135 ohms y 3465 ohms. Por ese motivo suelo usar resistencias del 1% de tolerancia. Para encontrar dos resistencias iguales mido las resistencias con el polímetro, esto es fundamental para conseguir parar el servomotor por software. A la derecha tenemos el esquema del potenciómetro y a la izquierda su sustitución por las 2 resistencias que tenemos que hacer.
.
.
Al sustituir el potenciómetro por 2 resistencias iguales, engañamos al potenciómetro haciéndole creen que siempre está el potenciómetro girado a 90º.
Al soltar los 3 cables del potenciómetro hay que fijarse cual de los cables esta conectado a la pata del centro del potenciómetro. Ese cable tendrá que conectarse a la unión de las 2 resistencias. A mi me gusta añadirle cable termorretractil para proteger el circuito de posibles cortocircuitos, aunque le da más volumen y se complica luego meterlo todo en la cajita del servo.
.

.

Algunas recomendaciones:
  • Usa resistencias pequeñas de 1/4 wattios como mucho.
  • Usa estaño con plomo sino te va a costar mucho.
  • Marca con algo el cable que va al centro del potenciometro.
  • Usa cable termorretractil para que no se produzcan cortos al darle marcha.
  • Manipula lo mínimo posible los cables para que no se te suelten.
  • Agranda con unos alicates el termorretractil que une las resistencias (mira la foto).
  • Paciencia porque este paso cuesta horrores la primera vez.
Una vez soldadas las resistencias a los 3 cables, con un mechero se calienta el cable termorretractil, contrayéndose y quedando protegidas las soldaduras. Ahora hay que meter todo en el minúsculo espacio que hay en la caja del servo. Para hacer un poco de sitio suelo cortar las 3 patas del potenciómetro que no sirven para nada.
.

.

Ahora solo falta montarlo todo y cerrar la tapa. Entra muy justo y hace falta maña y un poco de fuerza para poder volver a montarlo todo. Los cuatro tornillos van a entrar a presión por ese motivo es importante al soltarlos no romper la rosca. Es muy posible que en este proceso se vayan soltando las soldaduras de los cables con la placa o con el motor dc, por lo que tendremos que reacerlo. Este paso le produce frustración a más de uno.
Una vez que hemos conseguido roscar y cerrar la tapa del servomotor completamente hay que ver si el servo gira en los dos sentidos continuamente, porque sino habrá que soltar y comprobar las soldaduras.
Para comprobar si funciona yo uso el microcontrolador Arduino UNO cargándole el sketch Sweep
#include <Servo.h> 
 
Servo myservo; 

int pos = 0;
 
void setup() 
{ 
  myservo.attach(9);   
} 
 
void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)   
  {                                  
    myservo.write(pos);              
    delay(15);                       
  } 
  for(pos = 180; pos>=1; pos-=1)      
  {                                
    myservo.write(pos);              
    delay(15);                      
  } 
} 

Mediante este programa el servo tiene que girar un rato en una dirección luego se desacelerará hasta pararse y volverá a girar hacia el otro lado. Como solo es para comprobar que funciona se puede ajustar el tiempo de los delay para  que no vaya muy rápido, ni sea muy lento y aburrido.

Un alumno ha hecho un video comentando todos los pasos, los comentarios están en euskera, si puedo más adelante lo traduciré pero hasta en verano ando un poco liado 😉

.