Bluetooth e Arduino: Acender un led

Descrición:

Imos acender e apagar o LED 13 do Arduino desde Android mediante Bluetooth.

Esta práctica está relacionada coa práctica de Comunicación por Bluetooth de Control e Robótica.

Listado de material:

  • Placa Arduino UNO e Software para programar ao Arduino (IDE)
  • Placa Protoboard
  • Módulo Bluetooth para conectalo ao Arduino. O Arduino básico non ten Bluetooth (hai un modelo que si o ten pero resulta máis caro), así que mellor compramos un módulo, neste caso o HC05.
  • 2 Resistencias: unha de 1kΩ e outra de 560Ω, para o divisor de tensión do BT. (Podes calcular as resistencias do divisor de tensión neste enlace)
  • Pila de 9V con conector ou alimentador. (Opcional, pódese alimentar a placa a través do USB)

Conexionado do módulo Bluetooth e o Arduino.

Podes consultar a páxina Comunicación por Bluetooth de Arduino.

bluetoothhc-05O primeiro que temos que facer é conectar o noso módulo Bluetooth ao Arduino. Debemos ter moito coidado de non permutar a alimentación Vcc (+) e Gnd (-), se nos equivocamos e conectámolo no sitio equivocado o módulo se avariará inmediatamente.

O módulo Bluetooth Wireless Serial Port Module admite tensións comprendidas entre 3,6 V e 6 V.

Na foto da dereita aparecen dous módulos Bluetooth HC-05, un en anverso e outro en reverso. Observamos 6 pins (State, Rxd, Txd, Gnd,  Vcc e En), dos cales só imos utilizar 4: Rxd, Txd, Gnd e Vcc.

hc05_bb bt_arduino

Durante o proceso de carga do programa quitaremos e poñeremos varias veces estes cables, para poder cargar o programa ao Arduíno, xa que se está conectado a alimentación do Bluetooth pode non cargar o programa, así que debemos seguir estes pasos: quitamos o cable vermello de alimentación, cargamos o programa e volvemos poñer o cable vermello.

Para facer este exemplo non é necesario conectar ningún LED externo. Imos utilizar o LED 13 que se atopa integrado na placa do Arduíno.

Forma de conectalo: Módulo Bluetooth ⇒ Arduíno:

  • VCC   ⇒   9 V
  • GND  ⇒   GND
  • TXD   ⇒  RX (é a conexión 0 do Arduino)
  • RXD  ⇒  TX (é a conexión 1 do Arduino)

Fíxate que o TXD vai co RX e que o RXD vai co TX.

hc05_esquema

Cando realizamos a conexión anterior e conectámolo mediante o cable USB ao computador para programalo, o LED vermello do módulo Bluetooth escintilará continuamente, iso significa que está en funcionamento.

Emparellamento dos Bluetooth.

Chamamos emparellamento ao recoñecemento entre dous dispositivos Bluetooth.

  1. Conectamos o módulo Bluetooth ao Arduíno. O LED vermello do módulo Bluetooth escintilará.
  2. Acendemos o noso dispositivo móbil e activamos a conexión Bluetooth.
  3. Pulsamos sobre Bluetooth e sairanos unha pantalla que indicará os dispositivos dispoñibles, é dicir, os dispositivos con Bluetooth aceso que hai na nosa proximidade.
  4. Detecta o Bluetooth do Arduíno denominado HC-05.
  5. Na seguinte pantalla escribiremos a contrasinal de sincronización, que será 1234.

Xa temos o Bluetooth do móbil e do Arduíno sincronizados.

Se nalgún momento temos problemas de sincronización, desconectamos o Bluetooth do Arduíno e repetimos a operación.

Código do Arduíno.

IMPORTANTE: para cargar o programa quita o cable vermello de alimentación do Bluetooth e carga o programa no Arduíno. Despois de cargar, volve conectar o módulo Bluetooth.

Abre o IDE do Arduíno e copia o programa seguinte para o led integrado na placa Arduíno, que está conectado ao Pin 13:

char val;
int ledPin13 = 13;
 
void setup() {
  Serial.begin(9600); 
  pinMode(ledPin13, OUTPUT); 
}
 
void loop() { 
  while(! Serial.available());   // Agarda a que haxa datos no buffer
  val= Serial.read();
  
  if( val=='0') { 
    digitalWrite(ledPin13, LOW);
    }
  if( val=='1') { 
    digitalWrite(ledPin13, HIGH);
  } 
}

Unha vez recoñecido o USB e cargado o programa no Arduíno:

  • Podemos quitar o cable USB que o conecta ao computador e conectar unha pila de 9 V  para que funcione independentemente do computador.
  • Xa podes conectar o módulo Bluetooth.

App Inventor:

Deseño:

desenobluetootharduino

  • Unha DisposiciónHorizontal1.
  • Un SelectorDeLista, o chamamos sdl_Conectar (o podes atopar no bloque de Interfaz de usuario)
  • Un Botón, o chamamos Btn_Desconectar.
  • Unha DisposiciónHorizontal2.
  • Dous Botóns, os chamamos On_13 e Off_13
  • Un ClienteBluetooth (o podes atopar no bloque de Conectividad)
  • Un Notificador (o podes atopar no bloque de Interfaz de usuario)

Cando pulsamos o SelectorDeLista de Conectar, o móbil móstranos unha lista dos dispositivos Bluetooth dispoñibles.

Pulsamos no noso, que está indicado co seu Mac e o seu nome HC-05.

Conéctase e móstrase unha mensaxe de conexión. Entón desactívase o SelectorDeLista de Conectar, e actívase o Botón Desconectar.

NOTA: O terminal 13 xa está conectado a un pequeno LED soldado na placa, de tal maneira que podemos facer o noso experimento só utilizando o LED 13 soldado á placa sen ter que poñer LED externos.

Código de programación en bloques:

bloquesconectarbt

Cando pulsamos algún dos botóns, envíase ao Arduíno un número do 0 ao 1, segundo o número enviado, o Arduíno realizará unha operación como observamos no seu código.

bloquesconectardesconectarpin13

Ao pulsar o Botón de desconexión, desconéctase do móbil e móstranos unha mensaxe.

bloquesdesconectarbt

NOTAS:

  • No canto de enviar o dato mediante botóns, poderiamos poñer un CampoDeTexto e un Botón para que cando escribamos un número no CampoDeTexto e pulsemos o Botón, o número se envíe ao Arduíno e execute unha acción.
  • No canto de poñer un VisorDeLista poderíase poñer un Botón normal para conectar, púxose o VisorDeLista por se hai máis Bluetooth na proximidade.

Reto1:

Conecta agora dous leds, un ao terminal 13 e outro ao terminal 12, cada un cunha resistencia de 220Ω:

  1. Modifica a programación de Arduino: engade o novo ledPin12. Ten en conta que tes que engadir dous datos máis (val==2, para ledPin12 apagado, val==3, para ledPin12 acendido).
  2. Modifica o deseño en App Inventor: engade dous botóns On_12 e Off_12, dentro dunha disposición horizontal.
  3. Modifica a programación de bloques en App Inventor: engade a programación dous novos botóns seguindo os bloques dos botóns On_13 e Off_13, pero ten en conta que os números que enviará Arduíno serán 2 e 3 respectivamente.

Reto2:

Modifica o código de App inventor, para que ao pronunciar as palabras cero, un, dous e tres, se acendan ou apaguen uns LEDs. Utiliza Recoñecemento de voz e de Texto a voz.