domingo, 22 de junio de 2008

pi-pi pi-pipi pipipipi...

El prototipo cada vez está más perfilado. Por último, hemos incorporado el sonido.

Para ello tan sólo hemos tenido que definir una salida analógica de salida más y ligar un zumbador de PC a esta, cuando queremos que suene, solo tenemos que generar una salida analógica i obtendremos el sonido del zumbador.

El código utilizado es el siguiente:

int zumbador = 11;

void setup(){

Serial.begin(115200){
// y demás.... opciones de configuracion del bluetooth

pinMode(zumbador, OUTPUT);

}

void loop(){
analogWrite(zumbador,200);
}

jueves, 12 de junio de 2008

Fin de semana de carreras...

Montamos las tres pilas en serie alimentando la placa Arduino, obteniendo el siguiente montaje:


Utilizaremos el programa citado anteriormente para obtener los siguientes resultados:




Como se puede ver claramente, el problema era el que habíamos previsto y está solventado.

Nos movemos !

Soluciones a la falta de pilas...

Para solventar el "supuesto" problema necesitamos mas tensión en el sistema, pero recordando las especificaciones de Arduino, que anoto seguidamente...

Don't power the board with more than 5.5 volts to the or reverse the polarity (power and ground pins) of your power supply, or you might kill the ATmega168 on the Arduino BT

... , vemos que la máxima tensión a la que podemos llegar es 4,5 Voltios.

Nuestra previsión de compras nos hizo comprar un serie para 6 pilas, sin embargo, no podemos entrar más de 3, por lo que tenemos que buscar soluciones !

Observando el artilugio, vemos que tan solo sigue la corriente en serie por las seis pilas, por lo que si hacemos un puente entre 3 posiciones podremos obtener los 4,5 V de las otras tres posiciones, en las imagenes inferiores podemos ver que para hacerlo utilizamos un pequeño cable.


Para probar que los resultados son los que pensábamos, utilizamos un multímetro que nos demuestra que tenemos los 4,5 V que necesitamos, ahora tan sólo falta probar nuestra teoría.

Llega el fin de semana, no tenemos pilas...

Primero, montamos la placa siguiendo el esquema de la anterior entrada. Utilizamos el chip L293D para controlar el motor y seguimos con la alimentación de 3 Voltios.

A continuación, le cargamos la siguiente aplicación (muy simple) a la Arduino:

int pin9 = 9;

void setup() {
pinMode(pin9,OUTPUT);
Serial.begin(115200);
delay(2000);
Serial.println("SET BT PAGEMODE 3 2000 1");
Serial.println("SET BT NAME ARDUINOBT");
Serial.println("SET BT ROLE 0 f 7d00");
Serial.println("SET CONTROL ECHO 0");
Serial.println("SET BT AUTH * 12345");
Serial.println("SET CONTROL ESCAPE - 00 1");
Serial.println("SET CONTROL BAUD 115200,8n1");
}

void loop () {
analogWrite(pin9, 200);
delay(5000);
analogWrite(pin9, 0);
delay(5000);
}

Con esta aplicación, conseguimos que el motor se encienda y se pare en intervalos de 5 segundos.

Sin embargo, el montaje no resulta, y creemos que puede ser por falta de voltaje. Nuestra teoría es que, al encender el motor, este consume gran parte de los 3 Voltios que tenemos en el sistema, dejando a la placa Arduino "vacía", por lo que se "resetea" y no nos deja probar que nuestro sencillo código funciona !

martes, 10 de junio de 2008

Nos ponemos en marcha 2...

Anteriormente, se debatía la manera en la que se podía utilizar la placa Arduino para alimentar un motor DC y controlar su actividad. Ahora, ya contamos con el material para solventarlo.

Por un lado, como podemos ver a la derecha de la imagen ya tenemos el integrado L 293 D, que nos permitira controlar los motores de continua mediante la placa Arduino.

Por el otro , a la izquierda de la imagen tenemos un serie de seis pilas de 1.5V, dado que necesitaremos más de los tres voltios actuales para alimentar los motores.

jueves, 5 de junio de 2008

¡¡¡Tenemos el control!!!

Control o Driver de un motor de continua:

Los dos parámetros que queremos controlar de un motor de continua, es su dirección de giro y su velocidad. La dirección se controla cambiando su polaridad. En cambio, para su velocidad, debemos utilizar la técnica de modulación por ancho de pulso-PWM.

Aquí hay algunos gráficos donde se muestra la relación entre la señal de pulsos (PWM) y el voltage efectivo:

Cuando el tiempo que el pulso está activo es la mitad del periodo de la señal o el parámetro duty cycle está al 50%, el voltage efectivo es la mitad del voltage total de entrada.

Cuando el duty cycle es reducido al 25%, el voltage efectivo es un cuarto del voltage total de entrada. Entonces la velocidad del motor disminuye.

De esta forma controlando el duty cycle o el tiempo que el pulso está activo (frecuencia), podemos controlar la velocidad del motor de continua.

Una forma de realizar dicho control en Arduino, es utilizando la salida analógica PWM. Hay que recordar que la señal de salida PWM (pines 9,10) es una señal de frecuencia constante (30769 Hz) y que sólo nos permite cambiar el "duty cycle" o el tiempo que el pulso está activo (on) o inactivo (off), utilizando la función analogWrite().

La otra forma es generando señales PWM utilizando la capacidad del microprocesador a través de la función digitalWrite ().

Si queremos controlar simultáneamente la velocidad y dirección de un motor, necesitamos utilizar un circuito integrado o chip llamado de forma general como "puentes H", por ejemplo como el L293D.

Nos ponemos en marcha...

Una vez solventado el problema de la comunicación, el siguiente paso es conseguir mover a nuestro despertador.

Para ello poseemos un motor de continua, aunque para la implementación final querríamos tener dos para poder crear trayectorias con ambos.

En cuanto a la implementación con un motor, la idea que tenemos es seguir el siguiente esquema:


Aunque este diseño no sea para nuestra placa, ArduinoBT conserva muchas similitudes con Wiring que nos pueden facilitar la implementación de un prototipo.

Analizando esta idea, nos encontramos con el problema de que las salidas de Arduino no nos proporcionan tensión suficiente para alimentar a un motor DC como el que tenemos.

Para solventar este obstáculo, usaremos el chip L 293 D, que es un circuito integrado que puede ser utilizado para controlar simultáneamente la velocidad y dirección de dos motores de continua.

domingo, 1 de junio de 2008

Conociendonos... más pruebas

Después de realizar numerosas pruebas, vamos intimando con Arduino, consiguiendo conocer las comunicaciones que nos ofrece dicha placa. En este post intentaremos esclarecer algunos detalles no comentados anteriormente sobre como cargar una aplicación dentro de la placa.

El bluetooth que tiene Arduino puede tener muchas utilidades, entre las que se encuentra la posibilidad de cargar una aplicación propia en la placa. Para ello deberemos seguir algunos pasos:

1) Desarrollar programa básico y compilarlo:

Lo primero que tenemos que hacer es crear un código en el IDE de Arduino y compilarlo para generar un archivo .hex, que posteriormente cargaremos en la placa.

El código básico para generar esta imagen es el siguiente:


2) Realizar la conexión Bluetooth entre el PC y la placa Arduino:

Mediante un usb bluetooth hemos establecido una conexión con la placa Arduino.

3) Resetear la placa y cardar la imagen a Arduino:

Por último, tenemos que resetear la placa pulsando el botón que hay en ella y, inmediatamente después cargar la imagen desde el IDE como podemos ver en la imagen inferior, cuando la imagen se haya descargado el IDE nos lo notificará.


Con esto cerramos la problemática de comunicaciones bluetooth con la placa Arduino.