18 de juny 2014

Comunicació inalàmbrica. Bluetooth

La connexió de dispositius sense cables és possible amb diferents tecnologies inalàmbriques.
La més simple i asequible econòmicament és la tecnologia Bluetooth. Encara que el seu abast és més reduït que d'altres, per a nosaltres ha de ser més que suficient.

Utilitzarem un mòdul bluetooth HC-06, comprat a e-Bay
Té un abast (cobertura) de fins a 9 metres (30 feet), i capacitat per transferir dades a una velocitat de 1.200 bps fins a 1,3 Mbps.

Esquema de connexió
HC-06 VCC  –> Arduino +5V
HC-06 GND –> Arduino GND
HC-06 TXD –> Arduino Pin 0 (RXD)
HC-06 RXD –> Arduino Pin 1 (TXD)


Instal·lació del dispositiu Bluetooth
Per emparellar el mòdul amb el PC:
Clic dret a la barra d'eines inferior dreta del PC i "Agregar dispositiu Bluetooth".

Per defecte el mòdul està configurat per treballar a 9600 bps.
La contrasenya d'emparellament sol ser "1234"

Un cop establerta la connexió i assignat un port COM el dispositiu estarà llest per ser utilitzat.

Podem carregar programes a la placa a través del mòdul Bluetooth (sense cable USB), seleccionant a l'IDE el port COM corresponent al dispositiu.


Configuració del mòdul HC-06
La velocitat, el nom, la contrassenya i d'altres paràmetres del mòdul es poden canviar mitjançant comandaments AT.
http://ingeerick.weebly.com/arduino/bluetooth-hc-06-configuracin-con-arduino
http://diwo.bq.com/zum-bt-328-configuracion-del-bluetooth-mediante-comandos-at/



Scratch for Arduino via Bluetooth
S4A interactua amb l'Arduino enviant l'estat dels actuadors i rebent dades dels sensors cada 75 ms.
Per tant la placa no pot ser autònoma, ha d'estar connectada a l'ordinador amb el programa en marxa. Aixó és un problema en el cas dels robots, per molt llarg que sigui el cable de connexió USB, sempre molesta per la navegació.
L'S4A treballa a 38.500 bps. Cal canviar la configuració del mòdul.
Link a la entrada del bloc Tecno-Lògic

Proba de programació:
Es tracta que quan enviem un caràcter concret pel port sèrie, aparegui un missatge associat a aquest caràcter (utilitzarem el monitor sèrie):




String dada;  // variable tipus cadena per desar les dades rebudes per bluetooth
 
void setup() 
{
  Serial.begin(9600);    // inici de la comunicació serial
}
 
void loop() 
{ 
  while (Serial.available())  // mentre hagi connexió amb algun dispositiu ...
    { 
      delay(10);
      if (Serial.available() > 0)  // quan es rebi una dada ...
      {
        char c = Serial.read();   // la dada rebuda es desa com un caracter
        dada += c; // cadena de caracters formada por la suma de les dades rebudes
      }
    }

  if(dada == "A")  // si es reb una A ...
  { Serial.println ("he rebut AAAA"); }  // text a mostrar pel monitor serial 
  if(dada == "B")  // si es reb una B ...
  { Serial.println ("he rebut BBBB"); }  // text a mostrar pel monitor serial  
  if(dada == "C")  // si es reb una C ...
  { Serial.println ("he rebut CCCC"); }  // text a mostrar pel monitor serial   
  
  dada = "";   // buidem la variable "dada" per tornar a desar els nous caracters
}

tutorials i exemples >>>

Cap comentari:

Publica un comentari a l'entrada