martes, 15 de enero de 2008

Módulo Bluetooth

Antes de tratar de conectar la placa wiring con el móvil, efectuaremos una prueba con Processing desde un ordenador portátil con Bluetooth. Vincularemos el dongle con el portátil mediante una conexión de puerto serie del ordenador (por defecto un COMx). Una vez esten vinculados los dispositivos y sepamos que puerto COM usa nuestra máquina, modificamos esta variable en el código de processing. [ver punto 3]

Requisitos de Hardware

Necesitamos conectar un Dongle de bluetooth a la placa Wiring. Como el dongle se conecta mediante un USB, conectaremos un adaptador de usb a la placa Wiring.

¿Cómo?

1. Usaremos las posibilidades de los puertos serie de wiring. Usamos el puerto serial1 (situado en los pins 2 y 3).

2. Buscamos cuales son las conexiones y requisitos de un USB. En resumen:
Pin Nombre Color del Cable Descripción
1 VCC Rojo +5V
2 D− Blanco Data −
3 D+ Verde Data +
4 GND Negro Tierra


3. Partiendo del tutorial de wireless de wiring y del ejemplo de serial input. Hemos basado nuestra primera versión del código en estos 2 ejemplos.


----------------------------------------------------------------CÓDIGO EN PROCESSING
import processing.serial.*;

Serial port;

void setup()
{
size(200, 200);
noStroke();
framerate(10);

// Listamos todos los puertos series disponible en el panel output
// Debemos escoger a que puerto tenemos conectada la placa wiring.
//En esta máquina habiamos conectado el usb en el puerto COM4 normalmente,
//ahora que pasamos a vincular el dongle con nuestro bluetooth debemos indicarle //al programa por qué puerto tx y rx. Normalmente los COM de bluetooth se me crean en el COM40
// verificar con la siguiente instrucción
println(Serial.list());

// Debemos abrir el puerto al que la placa se conecta
// Debemos poner a la misma velocidad el puerto y la placa !!!! (9600bps)
port = new Serial(this, Serial.list()[?], 9600);
}


void draw() //simplificamos el ejemplo con un simple ENTER
{
background(#222222);
if(keyPressed)
{
if(key == 'o' key == 'O')
{
port.write('O'); //ENVIAMOS O DE ON PARA EMPEZAR
}
}
}

---------- CÓDIGO EN PLACA WIRING

char val; // variable para recibir datos del puerto serie
int outpin0 = 0; // roda dreta conectada al pinPWN0
int outpin1 = 1; // roda esquerra conectada al pinPWN1

void setup()
{
//pinMode(ledpin, OUTPUT); //crec q les PWN ja estan configurades com sortida // pin 48 (on-board LED) as OUTPUT
Serial.begin(9600); // start serial communication at 9600bps
}

void loop() {
if( Serial.available() ) // si está disponible para leer
{
val = Serial.read(); // lee el puerto serie y lo guarda en val
}
if( val == 'O' ) // si recibimos O = ON empezamos programa
{
Empezar el código del prototipo!!!!!!!!!!!!!!!!
}
delay(100); // espera 100ms para la siguiente lectura del puerto
}

  • Empezaremos las pruevas esta tarde y colgaremos posteriormente la versión de código definitiva, también los puertos y un esquema.

No hay comentarios: