#include <SoftwareSerial.h>
#include <Servo.h>
SoftwareSerial bluetoothSerial(10, 11); // RX, TX
char bluetoothChar;
String bluetoothCadena;
bool contadorInicio = false;
bool presionadoPulgar = false;
bool presionadoIndice = false;
bool presionadoMedio = false;
bool presionadoAnular = false;
bool presionadoMenique = false;
bool presionadoMuneca = false;
bool presionadoTodo = false;
bool presionadoModoNormal = false;
Servo pulgar;
Servo indice;
Servo medio;
Servo anular;
Servo menique;
Servo muneca;
int ServoPines[6] = {3,5,6,9,12,13};
void setup() {
Serial.begin(9600); // Inicializa la comunicación serial con el monitor serial
bluetoothSerial.begin(9600); // Inicializa la comunicación serial con el módulo Bluetooth
Serial.println("Bluetooth Iniciado");
pulgar.attach(ServoPines[0]); // Pin 3 para pulgar
indice.attach(ServoPines[1]); // Pin 5 para indice
medio.attach(ServoPines[2]); // Pin 6 para medio
anular.attach(ServoPines[3]); // Pin 9 para anular
menique.attach(ServoPines[4]); // Pin 10 para menique
muneca.attach(ServoPines[5]); // Pin 10 para menique
}
void loop() {
// Leer datos del módulo Bluetooth y enviarlos al monitor serial de Arduino
if (bluetoothSerial.available()) {
bluetoothChar = bluetoothSerial.read(); // Lee el caracter recibido desde el módulo Bluetooth
if(bluetoothChar=='/'){
contadorInicio = true;
}
if(contadorInicio){
bluetoothCadena += bluetoothChar;
}
moverServos(bluetoothCadena);
}
}
void moverServos(String dedo){
Serial.println(dedo);
if(dedo == "/pulgar"){
if(presionadoPulgar){
Serial.println("abriendo dedo pulgar");
pulgar.write(180);
}else{
Serial.println("cerrando dedo pulgar");
pulgar.write(0);
}
presionadoPulgar = !presionadoPulgar;
bluetoothCadena = "";
}else if(dedo == "/indice"){
if(presionadoIndice){
Serial.println("abriendo dedo indice");
indice.write(180);
}else{
Serial.println("cerrando dedo indice");
indice.write(0);
}
presionadoIndice = !presionadoIndice;
bluetoothCadena = "";
} else if(dedo == "/medio"){
if(presionadoMedio){
Serial.println("abriendo dedo medio");
medio.write(180);
}else{
Serial.println("cerrando dedo medio");
medio.write(0);
}
presionadoMedio = !presionadoMedio;
bluetoothCadena = "";
} else if(dedo == "/anular"){
if(presionadoAnular){
Serial.println("abriendo dedo anular");
anular.write(180);
}else{
Serial.println("cerrando dedo anular");
anular.write(0);
}
presionadoAnular = !presionadoAnular;
bluetoothCadena = "";
} else if(dedo == "/menique"){
if(presionadoMenique){
Serial.println("abriendo dedo menique");
menique.write(180);
}else{
Serial.println("cerrando dedo menique");
menique.write(0);
}
presionadoMenique = !presionadoMenique;
bluetoothCadena = "";
}else if(dedo == "/abrircerrar"){
if(presionadoTodo){
Serial.println("abriendo dedo todo");
pulgar.write(180);
indice.write(180);
medio.write(180);
anular.write(180);
menique.write(180);
}else{
Serial.println("cerrando dedo todo");
pulgar.write(0);
indice.write(0);
medio.write(0);
anular.write(0);
menique.write(0);
}
presionadoTodo = !presionadoTodo;
bluetoothCadena = "";
} else if(dedo == "/normal"){
if(presionadoModoNormal){
Serial.println("abriendo dedo todo");
pulgar.write(0);
indice.write(0);
medio.write(0);
anular.write(0);
menique.write(0);
muneca.write(0);
}else{
Serial.println("cerrando dedo todo");
}
presionadoModoNormal = !presionadoModoNormal;
bluetoothCadena = "";
}
}