Skip to main content

Bluetooth IV El programa en mBlock

TeComo recomendamosya estashemos páginas:

visto
    NO Teoríapodemos deusar BluetoothEdhidnaML Cómopues setrabaja comunicaen convivo un Arduino

    sotros vamos a utilizar la APP BlueControl:

      ver cómo funciona ver cómo se vincula cony el móvilHC06

      Problema número 1: ocupamosbloquea el puertocable serie

      USB

      Si

      PASO has1 leído Cómo se comunica con un Arduino habrás visto que ocupamos LOS MISMOS PINES D0 Y D1 QUE UTILIZAINSTALAMOS EL DISPOSITIVO ARDUINO PARA COMUNICARSE POR EL PUERTO SERIE CON EL ORDENADOR.

      Esto crea un problema: No se puede tener conectado el HC-06 mientras nos comunicamos el ordenador con el Arduino.

      Solución: Pues quítalo,IDE y luego cuando acabes de descargar el programa en el Arduino, pues lo pones.

      Bah!! ¿sólo era eso? pues no, que nos ocupe el puerto serie nos fastidia: ¿puedes interaccionar con el Sprite? por ejemplo ¿puedes hacer que el oso panda de mBlock se mueva según el mando de BlueControl?...NO

      Problema 2 la velocidad del puerto es elevada

      Al programar con mBlock fija la velocidad del puerto serie a 115200 baudios, y nuestro HC-06 soporta 9600

      Solución: Bajarlo manualmente, un rollo, tenemos que salir de mBlock, editarlo en Arduino IDE .... esto se ve mejor en el ejemplo siguiente.

      Reto: Encendido y apagado de LEDs con el móvil

      Vamos a ejecutarDispositivos - Añadir - Arduino UNO (no vale el Echidna ni el Arduino nano)

      2025-12-05 10_03_34-mBlock v5.4.3.png

      PASO 2 INSTALAMOS LA EXTENSIÓN BLUETOOTH SERIAL

      Hay muchas extensiones que trabajan el Bluetooth con Arduino (hay mucha basura) hemos elegido este pequeñopues programa,es una extensión sencilla, en castellano y que alenvía apretarcomo recibe por el botónBluetooth

      2025-12-05 10_15_18-Greenshot image editor.png

      PASO 3 PROGRAMA

      Con la extensión instalada y el dispositivo ya podemos empezar a programar

      ENUNCIADO Vamos a realizar un programa que envíe y reciba datos desde la APP del móvil al Echidna

        Si envío una R se enciende el Rojo Si envío una A se enciende el Amarillo Si envío una L que me diga el nivel de arribaLuz que hay, 10 lecturas para ver cómo cambia

        SOLUCIÓN

        2025-12-05 10_17_34-mBlock v5.4.3.png
        El programa lo puedes descargar aquí https://planet.mblock.cc/project/6844489

          Utilizamos los pines del Arduino (busca instrucciones azules Pin) el led rojo está en D13 y en naranja en el 12 de momento empezamos poniéndolos apagados PONEMOS LA VELOCIDAD DE BLUETOOTH A 9600 HAY QUE BAJARLO SINO NO FUNCIONA
            Y ponemos Rx que es D0 y Tx es D1 como hemos visto anteriormente El programa empieza con el clásico bucle y pregunta si se enciendenhan recibido datos Si se han recibido datos pues entonces lo almacena en una variable interna llamada "Letra" Si Letra = R entonces se enciende el led Rojo Si Letra = A entonces se enciende el led Amarillo Si Letra = L entonces es que preguntamos qué nivel hay de Luz Entramos en un bucle de 10 veces tal y como dice el enunciado Escribe en la APP el valor de la luz medida en el sensor LDR que está en el A5
              OJO HAY QUE MAPEARLO (ya hemos visto qué significa esto) y la instrucción de mapear está en violeta en Datos

              CUÁNTO HAY QUE MAPEARLO pues el LDR según www.echidna.es va desde 1 a 900 y Bluetooth solo lee un carácter en ASCII luego convertimos el valor de A5 (1-900) a un valor ASCII que si vemos la página, lo hacemos para los ledsvalores de los caracteres 0 a 9 y alasí apretarnos elda una lectura de abajola secantidad apagan:de luz entre 0 y 9

              VALOR ASCII CARACTER 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9

              Resultado

              SoluciónOtras APPs

              image-1648741316977.png

              PrimeroHay hayotras apps como el Arduino Bluetooth Control  que vincularpermite elponer móvilflechas, concontrol lade voz... pero no permite envío de Echidna a APP



              Segundo hay que subir el programa solucionando los problemas anteriores

              Mejor verlo con esta presentación:



              O sea, ya podemos jugar con el móvil y con nuestro Echidna !!!

              Por ejemplo..Incluso se podría hacer un coche teledirigido, el programa lo tienes en el repositorio: https://github.com/JavierQuintana/Echidna y el vídeo en el muro

              // generated by mBlock5 for <your product>
              // codes make you happy
              
              #include <Arduino.h>
              #include <Wire.h>
              #include <SoftwareSerial.h>
              
              void _delay(float seconds) {
                long endTime = millis() + seconds * 1000;
                while(millis() < endTime) _loop();
              }
              
              void setup() {
                pinMode(13,OUTPUT);
                Serial.begin(9600);
                digitalWrite(13,0);
                while(1) {
                    if(Serial.available() > 0){
                      if(Serial.read() == 'a'){
                        digitalWrite(13,1);
                      }else{
                        digitalWrite(13,0);
                      }
              
                    }
              
                    _loop();
                }
              
              }
              
              void _loop() {
              }
              
              void loop() {
                _loop();
              }