domingo, 22 de junio de 2008
pi-pi pi-pipi pipipipi...
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...
Soluciones a la falta de pilas...
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...
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...

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...
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
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.
jueves, 29 de mayo de 2008
¡¡¡Enciendan Motores que arrancamos!!!
jueves, 22 de mayo de 2008
Conociendonos... primeras pruebas
Primero hemos comprado un dongle USB Bluetooth y lo hemos instalado en un portátil para poder realizar la conexión. Abajo podemos ver una captura del software que nos ha permitido emparejar nuestro Usb con la placa Arduino.
Ahora escribimos el siguiente código en el IDE. En resumen, define un pin como salida digital y lo cambia de estado cada cierto retardo.
#include "WProgram.h"
int ledPin = 13; //definimos el pin numero trece como un entero llamado ledPin
void setup(){
pinMode(ledPin,OUTPUT); // en la carga inicial definimos ledPin como una salida digital
}
void loop(){
digitalWrite(ledPin,HIGH); //creamos una rutina iterativa que enciende y apaga ledPin
delay(1000);
digitalWrite(ledPin,LOW);
delay(1000);
}
En la placa, hemos puesto un led en el pin 13.

Para volcar el programa que tenemos escrito en el IDE, debemos cargar el archivo compilado con el botón load del IDE.
El programa se transferirá en nuestra placa y se quedara ejecutandose de manera indefinida hasta que la placa se apague o le transfiramos otro programa.
Para acabar, hemos grabado un pequeño video que permite ver como funciona la placa, espero que sea de vuestro agrado !
Montaje básico Arduino
Esqueleto

jueves, 15 de mayo de 2008
Empezamos con la elaboración del prototipo
Para ello, hemos definido las secciones del trabajo que tenemos, la división quedade la siguiente manera.
Sección de mecánica: En esta parte intentaremos definir una estructura móvil basada en K'nex donde podamos alojar la placa Arduino y todos los periféricos que sean necesarios.
Sección de comunicaciones: Esta se ocupará de toda la comunicación por Bluetooth entre la placa Arduino y la aplicación para terminales móviles basada en Mobile Procesing.
Sección de alimentación : La placa Arduino requiere una alimentación DC de 3 V, esta sección se ocupará de ella y de todas las que necesitemos para otras partes del proyecto (motor...).
Sección de reloj : Por último, esta parte medira el tiempo constantemente, para poder informar al usuario y hacer sonar la alarma cuando haga falta.
Problemática Arduino
En primer lugar la placa no posee un USB, por lo que no teniamos muy claro como podiamos conectar la placa a un PC. Después de investigar, hemos descubierto que la placa se conecta al PC mediante Bluetooth, como podemos ver en el siguiente enlace.
http://www.arduino.cc/playgroun
En segundo plano queda que no tiene conector para alimentar la placa. Esto se puede solventar montando una pequeña fuente basada en pilas que nos proporcionen una tensión entre 3-5V que nos permitan hacer funcionar la placa.
Después de salvar está problemática, esperamos recibir en breve la placa para empezar a trabajar en el prototipo a implementar.
jueves, 8 de mayo de 2008
Wiring vs Arduino BT



Después de debatir cual de las dos es la mejor opción, nos hemos decantado, por unanimidad, por la segunda opción, dado su ventajoso precio y la posibilidad de aprender nuevas tecnologias.
miércoles, 7 de mayo de 2008
¡El tamaño a veces importa!
Dado que interesa hacer un prototipo que se asemeje a lo comercial, debemos tener en cuenta las medidas. Nos interesa que no sea demasiado grande por lo que hemos decidido utilizar modulos PCB o SMDs. Nuestras opciones son:
Bluetooth
En esta nueva versión del despertador vamos a intentar acoplarle un modem bluetooth para poder programar la hora desde nuestro mobil al despertador. En nuesto primer contacto con la placa nos damos cuenta de que ésta no posee modem bluetooth por lo que surjen nuestras primeras preocupaciones. Para ello empezamos a indagar en como incorporarle un modem.
jueves, 3 de abril de 2008
Presentación
Principalmente, queremos hacer un prototipo de un despertador que salga corriendo al sonar su alarma, de esta manera el usuario tendrá que despertarse obligatoriamente para apagarlo.
Nada de remolones !