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.
O 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.
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.
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.
- Conectamos o módulo Bluetooth ao Arduíno. O LED vermello do módulo Bluetooth escintilará.
- Acendemos o noso dispositivo móbil e activamos a conexión Bluetooth.
- Pulsamos sobre Bluetooth e sairanos unha pantalla que indicará os dispositivos dispoñibles, é dicir, os dispositivos con Bluetooth aceso que hai na nosa proximidade.
- Detecta o Bluetooth do Arduíno denominado HC-05.
- 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:
- 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:
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.
Ao pulsar o Botón de desconexión, desconéctase do móbil e móstranos unha mensaxe.
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Ω:
- 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).
- Modifica o deseño en App Inventor: engade dous botóns On_12 e Off_12, dentro dunha disposición horizontal.
- 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.