Vamos a desbloquear alguna de las posibilidades que ofrece la placa Esplora. La placa Esplora contiene muchas opciones de control que no traen consigo otras placas.

Al parecer, esta placa no consigue arrancar con proyectos que puedan llamar mucho la atención, pero para ello, voy a mostrar un ejemplo de uso que puede extenderse con muchas posibilidades.

La idea concreta es poder realizar una comunicación inalámbrica de esta placa con otros dispositivos. Para ello voy a usar el módulo Bluetooth HC-05, y como ya vimos en un post anterior; lo podemos hacer rápidamente gracias a la librería SoftwareSerial.

En el caso que voy a proponer, quizás sea un poco rebuscado, ya que voy a realizar una conexión un tanto especial para acceder a los pines 3 y 11 para establecer esta comunicación.

En principio podríamos escoger cualquier pin digital, pero uno de los objetivos que queremos conseguir, es conectar además una pantalla ST7735, que ocupará el resto de pines disponibles. De esta manera, podremos establecer una conexión Bluetooth y en función de los datos que se transmiten, mostrar datos en pantalla o pintar gráficos.

 

 

#include <Esplora.h>         // Arduino Esplora specific library
long bps = 38400;
SoftwareSerial BT( 11,3); // RX, TX
void setup() {
  Serial.begin(bps);
  BT.begin(bps);
  delay(2000);
  Serial.println("Goodnight ESPLORA ");
}

void loop() {
  while (BT.available()) {
    String BT_data = BT.readString();
    Serial.println(BT_data);
  }
    delay(100);

  while (Serial.available()) {
    String Serial_data = Serial.readString();
    BT.print(Serial_data);

  }
}

Desde la siguiente página, podemos acceder a una interfaz de Ardublockly adaptada para la creación de gráficos y desde ella podremos desarrollar este mismo ejercicio y modificarlo cuanto necesitemos.

Hay que tener en cuenta que la velocidad de comunicación tiene que ser la misma que la que tenemos configurada para nuestro módulo Bluetooth. En este ejemplo, la dispondremos a 38400 baudios por segundo.

Desde el siguiente diagrama se pueden ver otras opciones de conexión, pero nosotros utilizaremos el 3 y el 11 como se indica. En este momento podemos escoger cualquier aplicación Bluetooth para ponerla a prueba; ya sea

 

Una vez que consigamos obtener valores en el monitor serie, vamos a proceder a la conexión de una pantalla TFT; para la placa Esplora utilizaremos el modelo ST7735,cuya librería podemos descargar desde el siguiente enlace.

Ahora solamente tendremos que añadir la pantalla a nuestra placa Arduino Esplora con la conexión del Bluetooth anterior.

Y el código de programación será el siguiente.

// These definitions map display functions to the Adduino Esplora display header pins
#define sclk 15
#define mosi 16
#define cs   7
#define dc   0
#define rst  1

#include <SoftwareSerial.h>
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>             // SPI communications library
#include <Esplora.h>         // Arduino Esplora specific library

long bps = 38400;
SoftwareSerial BT( 11,3); // RX, TX

Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);

void setup() {
  Serial.begin(bps);
  BT.begin(bps);
  tft.initR(INITR_GREENTAB); 
  tft.setRotation(1);  
  tft.setTextWrap(false);
  tft.fillScreen(ST7735_GREEN); 
  delay(2000);
  Serial.println("Goodnight ESPLORA");
}

void loop() {
  while (BT.available()) {
    char BT_data = BT.read();
    Serial.println(BT_data);
    if(BT_data == 'U'){
      tft.fillScreen(ST7735_YELLOW); 
    }
    if(BT_data == 'D'){
      tft.fillScreen(ST7735_BLUE); 
    }
    if(BT_data == 'R'){
      tft.fillScreen(ST7735_GREEN); 
    }
    if(BT_data == 'L'){
      tft.fillScreen(ST7735_RED); 
    }
    if(BT_data == 'I'){
      tft.fillScreen(ST7735_BLACK); 
    }
    
  }
    delay(100);

  while (Serial.available()) {
    String Serial_data = Serial.readString();
    BT.print(Serial_data);
    tft.println(Serial_data);

  }
}

Y desde Ardublockly, podemos realizar lo mismo, para añadir las instrucciones que creamos convenientes. Hay que fijarse bien en que las comillas no sean dobles, ya que estamos leyendo solo un carácter y así lo hemos definido.

En tutoriales posteriores realizaremos las lecturas con cadenas completas y el tipo de dato String en lugar de un simple carácter.

A partir de este momento podemos conectar una aplicación de movil a nuestra placa Esplora y visualizar los cambios en pantalla.

En un siguiente tutorial realizaremos una aplicación propia para hacer una comunicación bidireccional y poder controlar robots desde la propia placa Esplora.