Omet navegació

9.1. Pràctica 1 Control Bluetooth de 4 leds

Cas d'estudi: Pas previ a programar el «Cotxe teledirigit»

Anem a crear una aplicació per controlar 4 leds situats en una placa protoboard, també cal afegir un integrat bluetooth HC06, i una targeta Arduino UNO amb les connexions següents.

Arduino + 4 leds + Bluetooth

Les potetes de l'integrat HC06 les connectem de la forma:

VCC a 5V d'Arduino

GND al comú d'Arduino

Rx de HC06 a port 2 d'Arduino. Al programa Rx li assignarem el pin 3.

Tx de HC06  a port 3 d'Arduino. Al programa Tx li assignarem el pin 2.

Això és lògic. Rx de Arduino s'ha de connectar amb Tx de HC06 i Tx d'Arduino s'ha de connectar amb Rx de HC06. Si els dos receptor són el mateix no hi ha comunicació.

 D'aquesta forma els ports RX i TX d'Arduino que hi són al 0 i 1 queden lliures per comunicar amb l'ordinador amb el cable USB, així podem carregar programes sense haver de desconnectar els ports RX i TX del HC06 ja que els hem assignat al 2 i 3.

Els leds el connecten als pins 10, 11, 12 i 13

Fes  el programa següent:

Bluetooth 4 leds

El programa per fer carregar a Arduino i interaccionar amb els leds a l'IDE és aquest:

#include <SoftwareSerial.h>

SoftwareSerial serial(3,2);

int pinLed1 = 10;
int pinLed2 = 11;
int pinLed3 = 12;
int pinLed4 = 13;
char TextRebut = 0;

void setup() {
  serial.begin(9600);
  pinMode(pinLed1, OUTPUT);
  pinMode(pinLed2, OUTPUT);
  pinMode(pinLed3, OUTPUT);
  pinMode(pinLed4, OUTPUT);

}

void loop() {
    if (serial.available()) {
      TextRebut = serial.read();
      switch (TextRebut) {
      case '1':
        digitalWrite(pinLed1, HIGH);
        digitalWrite(pinLed2, LOW);
        digitalWrite(pinLed3, LOW);
        digitalWrite(pinLed4, LOW);
        break;
      }
      switch (TextRebut) {
      case '2':
        digitalWrite(pinLed1, LOW);
        digitalWrite(pinLed2, HIGH);
        digitalWrite(pinLed3, LOW);
        digitalWrite(pinLed4, LOW);
        break;
      }
      switch (TextRebut) {
      case '3':
        digitalWrite(pinLed1, LOW);
        digitalWrite(pinLed2, LOW);
        digitalWrite(pinLed3, HIGH);
        digitalWrite(pinLed4, LOW);
        break;
      }
      switch (TextRebut) {
      case '4':
        digitalWrite(pinLed1, LOW);
        digitalWrite(pinLed2, LOW);
        digitalWrite(pinLed3, LOW);
        digitalWrite(pinLed4, HIGH);
        break;
      }
      switch (TextRebut) {
      case '0':
        digitalWrite(pinLed1, LOW);
        digitalWrite(pinLed2, LOW);
        digitalWrite(pinLed3, LOW);
        digitalWrite(pinLed4, LOW);
        break;
      }

    }

}//Final de programa

Ara mateix sols et falta activar el servei Bluetooth al teu mòbil, i des de la Play Store instal·lar l'app «Bluetooth Terminal». Després aparelles amb el telèfon el dispositiu insegur HC06 que té per contrasenya 1234.

bluetooth_terminal

A continuació envies consecutivament el text 0, 1, 2, 3, 4 (sense les comes) i prems «Send» després de cada número. Veuràs com els leds s'engeguen depenent del número que envies o s'aturem tots si prems i envies el 0.

El programa AppInventor et permet crear aplicacions per taules i telèfons mòbils amb  Android amb una interfície gràfica web desenvolupada per Google.

Et cal entrar a la web http://ai2.appinventor.mit.edu/ amb compte teu de Google, triar la llengua espanyol o anglés i prémer el botó per començar un projecte nou.

APP Inventor nova

Ara anem a fer una aplicació senzilla per controlar els mateixos 4 leds amb 5 botons.

Afegeix al dissenyador els elements següents:

- De «Interfaz de usuario» pren «SelectorDeLista» i anomena-lo SelectBluetooth

- De «Disposición» pren «Disposiciónvertical» i no cal que li canvie el nom. Els botons i etiquetes aniran tots dins de la disposició vertical.

- De «Interfaz de usuario» pren 4 «Botón» i anomena-los btLed1 a btLed4. Canvia la forma i el color per deixar-los verds com els leds.

- De «Interfaz de usuario» pren 1 «Botón» i anomena-lo btAtura. Canvia la forma i el color per deixar-lo roig.

- De «Interfaz de usuario» pren 1 «Etiqueta» i anomena-lo «etiqueta» però no li poses títol , deixa-la sense contingut « ».

- De «Conectividad» pren «ClienteBluetooth» i solta-la dins de la pantalla «Screen1» que anirà a la secció «Componentes no visibles».

- De «Sensores» pren «Reloj» i solta-la dins de la pantalla «Screen1» que anirà a la secció «Componentes no visibles».

L'aspecte serà aquest:

appinvent_dissenyador

Ara canvia el dissenyador per la finestra de «Blocks» i programa els blocs següents:

appinvent-blocs-123

appinvent-blocs-4-5-6-7

appinvent-blocs-8

A continuació anem a «Generar» i premem el botó per generar la APP en format APK.

genera_apk

Després quan isca la finestra per escanejar el codi QR ho escanegem.

escaneja_apk

Carreguem l'aplicació al telèfon, li donem permisos per executar-se i l'executem.

BTT_Noconnectat

Premem el selector de Bluetooth i triem aparellar el bluetooth HC06 de l'Arduino. Recorda que el dispositiu insegur HC06 té per contrasenya 1234.

BTT_Select

Després ja podem provar el botons per engegar els leds un a un o aturar-los tots.

BTT_Connectat

Canviar el programa per controlar els motors d'un vehicle equipat amb un bluetooth és molt fàcil ja que sols hauries de modificar  l'app aquesta per enviar la senyal 0, 1, 2, 3, 4 amb un botons amb dibuixos amb fletxes a sobre per indicar que el cotxe és mou endavant, endarrere, a la dreta,  a l'esquerre o que cal que ature els motors. El programa d'Arduino també tindrà sentencies  «switch», «case» com aquest acabat de fer, però el codi que canviarà serà el que hi ha dins de cada «case» per engegar motors o aturar-los.