Este es un guante exoesqueleto, compatible con el entorno de desarrollo Arduino, cuenta con bluetooth 4.0 y sensor de aceleración giroscópico, se puede utilizar como transmisor de señal para robots y definir varias formas de mover al robot.


lo primero que haremos es probar los leds el bluetooth y los potenciómetros.

dejando asi el sensor giroscopico para mas adelante


para empezar usaremos el siguiente código de ejemplo 

#include <SoftwareSerial.h>

#define LED1  2
#define LED2  3
#define LED3  4
#define LED4  5
#define LED5  6

#define FINGER1 0
#define FINGER2 1
#define FINGER3 2
#define FINGER4 3
#define FINGER5 6

SoftwareSerial BTSerial(11,12);
int val[5];

void setup() {
  // put your setup code here, to run once:
  
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);

  BTSerial.begin(9600);
  BTSerial.print("AT+ROLE=S");
  delay(100);
  BTSerial.print("AT+RESET");
  delay(250);
}

void loop() {
  // put your main code here, to run repeatedly:

  digitalWrite(LED1,0);
  digitalWrite(LED2,0);
  digitalWrite(LED3,0);
  digitalWrite(LED4,0);
  digitalWrite(LED5,0);
  delay(250);

  digitalWrite(LED1,1);
  digitalWrite(LED2,1);
  digitalWrite(LED3,1);
  digitalWrite(LED4,1);
  digitalWrite(LED5,1);

  delay(250);
  
  val[0] = analogRead(FINGER1);
  val[1] = analogRead(FINGER2);
  val[2] = analogRead(FINGER3);
  val[3] = analogRead(FINGER4);
  val[4] = analogRead(FINGER5);
  BTSerial.print(val[0]);
  BTSerial.print(",");
  BTSerial.print(val[1]);
  BTSerial.print(",");
  BTSerial.print(val[2]);
  BTSerial.print(",");
  BTSerial.print(val[3]);
  BTSerial.print(",");
  BTSerial.print(val[4]);
  BTSerial.println(";");
  delay(1000);
}

lo primero que debemos saber es que la tarjeta esta basada en un ARDUINO UNO.

respecto a los pines de asociados a cada componente podemos observar que las salidas asociadas  a los leds son los son la

2,3,4,5,6

#define LED1  2
#define LED2  3
#define LED3  4
#define LED4  5
#define LED5  6

respecto a los pines asociados a los potenciómetros serian los pines A0,A1,A2,A3,A6

#define FINGER1 0
#define FINGER2 1
#define FINGER3 2
#define FINGER4 3
#define FINGER5 6

respecto a los pines conectados a l Bluetooth son  los pines 11 y 12, la razón por la que son diferentes a los pines de comunicación con la computado es para evitar interferencia cuando se haga la comunicación con la computadora, las instrucciones asociadas.

#include <SoftwareSerial.h>

libreria  Softwareserial es una libreria para la comunicacion serial por sofware.

SoftwareSerial BTSerial(11,12);

se crea el objeto de comunicacion con el nombre BTSerial.

BTSerial.begin(9600);

se establece la velocidad de la  comunicacion 9600 

digitalWrite(LED1,0);
  digitalWrite(LED2,0);
  digitalWrite(LED3,0);
  digitalWrite(LED4,0);
  digitalWrite(LED5,0);
  delay(250);

  digitalWrite(LED1,1);
  digitalWrite(LED2,1);
  digitalWrite(LED3,1);
  digitalWrite(LED4,1);
  digitalWrite(LED5,1);

  delay(250);

enciende todos los leds 250 milisegundos y los apaga durante  250 ms

val[0] = analogRead(FINGER1);
  val[1] = analogRead(FINGER2);
  val[2] = analogRead(FINGER3);
  val[3] = analogRead(FINGER4);
  val[4] = analogRead(FINGER5);
  BTSerial.print(val[0]);
  BTSerial.print(",");
  BTSerial.print(val[1]);
  BTSerial.print(",");
  BTSerial.print(val[2]);
  BTSerial.print(",");
  BTSerial.print(val[3]);
  BTSerial.print(",");
  BTSerial.print(val[4]);
  BTSerial.println(";");
  delay(1000);

realiza la lectura  de los sensores y los envía las lecturas por el bluethoot.

Ahora hablaremos del bluethoot, el bluetooth en cuestión es el hc-08  que es un BLE(Bluetooth de baja energía) para poder enviar a otro dispositivo se necesita que el receptor sea el hc-08, por ahora probaremos conectando con un celular android para recibir los datos,

para recibir los datos en un telefono Android usaremos la aplicación BLE Terminal que puede descargar desde play store

 una vez dentro de la aplicación le damos a SCAN debería aparecernos el HC-08 damos click sobre el mismo y 







































como se puede apreciar recibimos los datos de los potenciometros que están siendo enviados del guante hacia el  celular mediante bluetooth. 

SENSOR GIROSCOPICO DEL GUANTE SOMATO SENSORIAL.

respecto al sensor giroscopio integrado en la tarjeta, utiliza uno de los mas comunes y es el MPU6050 Que es un sensor que utiliza la comunicacion i2c por lo cual esta conectado a los pines A4 Y A5 ya que son los  pines SDA Y SCL respectivamente.

para poder hacer una prueba usaremos la comunicacion con la computadora y visualizaremos los datos a travez del monitor serie del arduino.

// Librerias I2C para controlar el mpu6050
// la libreria MPU6050.h necesita I2Cdev.h, I2Cdev.h necesita Wire.h
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Wire.h"

// La dirección del MPU6050 puede ser 0x68 o 0x69, dependiendo 
// del estado de AD0. Si no se especifica, 0x68 estará implicito
MPU6050 sensor;

// Valores RAW (sin procesar) del acelerometro y giroscopio en los ejes x,y,z
int ax, ay, az;
int gx, gy, gz;

void setup() {
  Serial.begin(57600);    //Iniciando puerto serial
  Wire.begin();           //Iniciando I2C  
  sensor.initialize();    //Iniciando el sensor

  if (sensor.testConnection()) Serial.println("Sensor iniciado correctamente");
  else Serial.println("Error al iniciar el sensor");
}

void loop() {
  // Leer las aceleraciones y velocidades angulares
  sensor.getAcceleration(&ax, &ay, &az);
  sensor.getRotation(&gx, &gy, &gz);

  //Mostrar las lecturas separadas por un [tab]
  Serial.print("a[x y z] g[x y z]:\t");
  Serial.print(ax); Serial.print("\t");
  Serial.print(ay); Serial.print("\t");
  Serial.print(az); Serial.print("\t");
  Serial.print(gx); Serial.print("\t");
  Serial.print(gy); Serial.print("\t");
  Serial.println(gz);

  delay(100);
}

se puede obsevar los datos enviados a travez de la comunicacion serial por cable hacia la computadora



CONECCION ENTRE DISPOSITIVOS BLE(Bluetooth low Energy)

uno de los puntos importantes respecto al guante somatosensorial seria el uso del mismo para controlar otro dispositivo como se muestra en la imagen siguiente.

para lo cual hay que tomar en cuenta lo siguiente

EL RECEPTOR DEBER SER COMPTATIBLE CON EL TRANSMISOR.

lo ideal seria usar el mismo modulo como receptor, en este caso el HC-08 BLE,

Pero si no tendría que tener las siguientes características

debe ser BLE(Bluetooth low energy)

debe ser por lo menos bluetooth 4.0