Omet navegació

2. Control cotxe de 2 motors amb el Bluetooth i telèfon amb Android

Anem a crear una aplicació per controlar 2 motor reductors connectats a una Arduino UNO amb el shield Motor 1-2 i amb un integrat Bluetooth HC06 com mostra l'esquema següent:

Cotxe_bluetooth

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

VCC a 5V d'Arduino

GND al comú d'Arduino

TX a port 2 d'Arduino

RX a port 3 d'Arduino

 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.

El programa inicial amb que començaran els alumnes és aquest:

// Copyleft (C) 2019 Carles Ferrando Garcia. CotxBluetooth_Inicial.ino
// License: GNU GPL v3 http://www.gnu.org/copyleft/gpl.html 
// Cotxe amb un Bluetooth controlat amb un telefon Android. Programa inicial per als alumnes.

#include <SoftwareSerial.h>
 
SoftwareSerial serial(2,3);
// Recorda posar al HC06 bluetooth RX pin 2 , TX pin 3
  
void setup() {

  
  serial.begin(9600); // Monitor bluetooth per connectar amb mòbil
  Serial.begin(9600); // Monitor Serial per comunicar amb l'ordinador
}
 
void loop() {


  if(serial.available())
  {
    char caracter= serial.read();
    Serial.println(caracter);
   switch(caracter){
  
      case '0':// Cotxe avant, els 2 motors en mode Horari
       Serial.println("Ací has de programar instruccions digitalWrite( port,HIGH/LOW) per fer anar el cotxe cap endavant"); //Imprimeix el retol
        break;
      case '1'://Cotxe enrere, el dos motors en mode antiHorari
       Serial.println("Ací has de programar instruccions digitalWrite( port,HIGH/LOW) per fer anar el cotxe cap endarrere"); //Imprimeix el retol
        break;
      case '2'://Cotxe gira esquerra, motor 1 H i motor 2 aH
       Serial.println("Ací has de programar instruccions digitalWrite( port,HIGH/LOW) per fer anar el cotxe per girar a esquerra"); //Imprimeix el retol
        break;
      case '3'://Cotxe gira dreta, motor 1 aH i motor 2 H
       Serial.println("Ací has de programar instruccions digitalWrite( port,HIGH/LOW) per fer anar el cotxe per girar a dreta"); //Imprimeix el retol
        break;
      case '4'://Cotxe atura motors, motor 1 i motor 2 aturats
       Serial.println("Ací has de programar instruccions digitalWrite( port,HIGH/LOW) per fer anar el cotxe per aturar els motors del cotxe"); //Imprimeix el retol
        break;
   }//Final switch 
  } //Final if
 // Ací és pot afegir més codi
 
}// Final void loop

El programa final al qual haurien d'arribar els alumnes és aquest: «CotxeBluetooh_Polsat.zip (zip - 1429 B)»

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 motors s'engeguen o s'aturen depenent del número que envies o s'aturem tots si prems i envies el 4.

Ara anem a obrir la interfície de l'AppInventor i anem a fer una aplicació senzilla per controlar els motors 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 btAvant , btEnrere, btGiraDreta, btGiraEsquerra. Posa en cada botó una imatge feta amb GIMP amb una fletxa que mostre cap a on va el cotxe.

- 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-blocs1-2-3

appInvent-blocs4-5-6

appInvent-blocs7

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.

appInvent-generaCodi

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

Premem el selector de Bluetooth i triem aparellar el bluetooth HC06 de l'Arduino.

BTT_NO_Connect

El HC-06 és un integrat de classe insegura amb contrasenya 1234.

BTT_Scan

Després ja podem provar el botons per engegar i controlar el cotxe o aturar-lo.

BTT_Connect

Cal tindre en compte que l'abast del Bluetooth són de 10 metres. No pots superar aquesta distancia per controlar el cotxe. Hi ha altres models que arriben als 200 metres però són lògicament més cars.