por Elektronika eta Telekomunikazioak Don Bosco | Nov 17, 2012 | Sin categoría
Descripción
Una empresa de transporte, dedicada al reparto de cajas, nos ha pedido el diseño de un báscula para poder pesar la carga que lleva el camión y así poder solucionar el siguiente problema: saber cuanto peso deben de llevar en carga (si el camión no va lleno, pierden dinero; si el camión va demasiado lleno, les pueden multar).
Lo que se quiere conseguir con esta báscula es no perder dinero, por lo tanto, el camión tiene que ir lo más lleno posible eso si, sin pasarse del límite.
Cuando tengamos el peso ideal, se encenderá una luz verde «F». Para conseguir esto, se van a colocar 3 muelles:
- Uno largo, para que detecte cuando haya poco peso «A».
- Otro mediano,que detecte el peso ideal «B».
- Y otro corto, para detectar un peso excesivo «C».

Material
Circuito con puertas convencionales:
| COMPONENTES |
UNIDADES |
DESCRIPCIÓN |
PRECIO |
| R1,2 |
2 |
Resistencia 10k Ohm, 1/4W |
1,49 |
| U1:A |
1 |
Puerta lógica NOT 7404 |
1,75 |
| U2:A |
1 |
Puerta lógica AND 7408 |
0,35 |
| DI |
1 |
Led diodo rojo 5mm |
0,28 |
| R3 |
1 |
Resistencia 330 Ohm, 1/4W |
0,46 |
| SW |
1 |
Interruptor dil, 2 posiciones |
0,76 |
Funcionamiento
Antes de hacer nada hay que determinar las entradas y las salidas del circuito a diseñar. En nuestro caso serán, A, B, C, (los muelles-sensores), y «F» la luz verde (salida) que se encenderá al tener el peso ideal.
Por lo tanto, para diseñar el circuito hemos decidido que las variables son A, B, C, y la salida F. De ello tenemos que hacer una tabla de la verdad con todas las conbinaciones posibles y sacar la ecuación simplificada para reducir costes y material. A continuación se explica paso a paso:
PASO 1: Tabla de la verdad
A = Muelle largo
B = Muelle mediano
C = Muelle corto
F = Led verde

PASO 2: Simplificación (Método Karnaugh)
Las variables A, B y C pueden tomar valores 0 y 1, por lo tanto como son 3 vamos a tener 8 combinaciones posibles. Pero puede darse el caso que en una de las combinaciones de un resultado ilógico o que físicamente sea imposible que ocurra (por ejemplo, si A y B son 0 y C es 1). En este caso utilizaremos la función DON´T CARE simbolizado con una X para hacer uso de ella en caso de que nos convenga, para simplificar la ecuación que más adelante detallaremos.
Las numeraciones 0 y 1 del contorno de la cuadrícula corresponden a los valores de las variables y los resultados de la función, están dentro de la misma (1, X, 0).

A la hora de determinar la ecuación de salida,debemos tener en cuenta que los valores contrarios de las variables se anulan entre sí, y sólo permanecen los valores positivos o negativos del mismo signo.Ahora tenemos que sacar la ecuación canónica de la función agrupando todos los «1» que haya en la tabla. Los grupos cuanto más grandes se cojan más reducida saldrá la ecuación .Pueden ser de 2, 4, 8, 16… Como las X no ocurrirá nunca, las podemos tomar, como 1 ó como 0. De esta manera 3 X las hemos dejado como 0 y 1 X como un 1. En nuestro caso, haríamos un grupo de 2, juntando el 1 con la «X» por que nos conviene.
La ecuación de salida que nos sale para montar el circuito es: bc´
Con esta ecuación tenemos que montar dos circuitos: uno con puertas lógicas convencionales y otro con puertas lógicas NAND.
PASO 3: Montaje
Tenemos un circuito con dos entradas b y c, que están alimentadas por 5v y masa, y entre medio un interruptor en cada una (a este sistema de entrada se denomina PULL UP). En este tipo de sistema cuando el interruptor está abierto, la señal circulará hacia la puerta y cuando el interruptor esté cerrado la corriente circulará a masa porque coge el camino más fácil. Una vez explicado el sistema de alimentación, por el hilo c tenemos una señal de entrada que atraviesa una puerta inversora (not) que nos invierte la señal de entrada, por lo que esa señal de salida la tendremos en una de las entradas de la puerta AND. Por otro lado tenemos la otra entrada b en la en la puerta AND. Estas dos señales de entrada generarán otra de salida que será bc´ que atravesará el led verde, la resistencia de protección y circulará a masa encendiendo el mismo.
.
por Elektronika eta Telekomunikazioak Don Bosco | Ago 17, 2012 | Sin categoría
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.
por Elektronika eta Telekomunikazioak Don Bosco | Ago 12, 2012 | Sin categoría
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.
por Elektronika eta Telekomunikazioak Don Bosco | Ago 1, 2012 | Sin categoría
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 😉
por Elektronika eta Telekomunikazioak Don Bosco | May 30, 2012 | Sin categoría
Ondorengo estekan, arduino uno erabiliz egindako priektu txiki bat ikus daiteke. Proiektuaren eginkizuna, serbomotore bat giratzea da potentziometro batek emandako tentsio balioen arabera. Proiektua garatzeko, arduino softwarea erabili dut programa egiteko eta proteus simulazioa egiteko. Serboa ondorengo irudian ikusten dena da,

.
Estekaren bukaeran ikusiko den bezala, gurpil bat erantsi diot nola giratzen den ikusteko.
.
Ondoren, sketcha ere ikus daiteke. Bertan, serboa arduino plakaren 9 pinean dagoela ikusten da. PWM duen beste edozein ere erabili ahalko zen. Potentziometroaren irakurketa egiteko, edozein sarrera analogiko erabili behar da, kasu honetan A0 dela ikus daiteke. Potentziometroaren balioa, erabilgarri izateko, maps funtzioa erabiltzen da. Honek, serboaren biraketa 0tik 180º arte mugatzen du. Azkenik, serialetik balioak ikusteko aukera ere utzi dut.
/************************************************************************
Serbomotore bat giratzen da potentziometro
baten balioaren arabera
************************************************************************/
#include <Servo.h>
Servo serboa;
int posizioa=0;
int potentziometroa= A0;
int balioa,atera;
/************************************************************************
Hasiera batean zero posizioan egongo da serboa
hau da, erdiko puntuan
************************************************************************/
void setup(){
Serial.begin(9600);
serboa.attach(9);
serboa.write(posizioa);
delay(15);
pinMode(potentziometroa,INPUT);
}
void loop(){
balioa=analogRead(potentziometroa); // Potentziometroaren balioa
atera=map(balioa,0,1023,0,180); // 0 eta 180º artean mapeatzen dut
serboa.write(atera); // informazioa serbora bidali
delay(15);
Serial.println(atera); // serialetik ze posizio den ikusten dugu
}
Azkenik, proiektu osoaren bideo txiki bat ikus dezakezu, nun simulazioa eta muntaiaren funtzionamendua ikus daitekeen.
.