HARDWARE
Imagen 1: Diseño del esquema del electroestimulador, electrodos y BT HC-05
Imagen 2: Bluetooth HC-05 para la comunicación
CONFECCIÓN DE LA TELA
El peso de tela de algodón deberá encontrarse entre los 220 a 250 gramos al metro cuadrado. Tomando como referencia que el peso de un camisa de verano de algodón ronda de 125 a 220. (1)
De acuerdo a la disposición de la tela (piel- exterior):
Tela cotton lawn: Ligera y fresca, hecha de algodón, hipoalergénica.
Tela PUL: Alta resistencia al desgaste y a la abrasión. Alta resistencia a la tracción y al desgarre.
Conectividad: Cables.
Algodón Laminado: Ligero fresco y transpirable.
SCRIPT DE PROGRAMACIÓN
function myFunction() {
#include <sensor.h> // incluimos la libreria electrodo
Electrodo electrodo1; // creamos un objeto electrodo llamado electrodo1 para activar un electrodo
Electrodo electrodo2; // creamos un objeto electrodo llamado electrodo2 para activar un electrodo
Electrodo electrodo3; // creamos un objeto electrodo llamado electrodo3 para activar un electrodo
Electrodo electrodo4; // creamos un objeto electrodo llamado electrodo3 para activar un electrodo
const int pinsensor = A0; // pin analogo del sensor emg
int valsensor = 0; // variable para guardar el valor del sensor emg
int posicion = 0; // variable indica la posicion o agarre de la mano
boolean funcion = 0; // variable indica la funcion que permite distintos agarres
const int boton = 16;
const int boton2 = 10;
boolean estado = 0;
boolean estado2 = 0;
char BT = 0;
void setup() {
electrodo1.attach(7); // vinculamos el pin 8 con el electrodo1
electrodo2.attach(8); // vinculamos el pin 9 con el electrodo2
electrodo3.attach(9); // vinculamos el pin 10 con el electrodo3
electrodo4.attach(10); // vinculamos el pin 10 con el electrodo4
pinMode(boton, INPUT);
pinMode(boton2, INPUT);
pinMode(pinsensor, INPUT);
Serial.begin(9600);
Serial1.begin(9600);
electrodo1.write(0);
electrodo2.write(0);
electrodo3.write(0);
electrodo4.write(180);
}
void loop() {
estado = digitalRead(boton);
if (estado == HIGH){
if (Serial1.available() > 0){
BT = Serial1.read();
if (BT == 'a'){ // mano abierta
electrodo1.write(0);
electrodo2.write(0);
electrodo3.write(0);
electrodo4.write(180);
}
if (BT == 'b'){ // agarre en pinza
electrodo1.write(70);
electrodo2.write(180);
electrodo3.write(180);
electrodo4.write(180) ;
}
if (BT == 'c'){ // agarre de fuerza
electrodo1.write(100);
electrodo2.write(180);
electrodo3.write(180);
electrodo4.write(10);
}
if (BT == 'd'){ // posicion para pulsar teclas con el dedo indice
electrodo1.write(0);
electrodo2.write(0);
electrodo3.write(0);
electrodo4.write(10);
}
if (BT == 'e'){ // agarre de gancho 1
electrodo1.write(0);
electrodo2.write(90);
electrodo3.write(90);
electrodo4.write(60);
}
if (BT == 'f'){ // agarre de gancho 2
electrodo1.write(0);
electrodo2.write(180);
electrodo3.write(180);
electrodo4.write(10);
}
}
}
else if (estado == 0){
valsensor = analogRead(pinsensor); // leemos el valor del sensor y guardamos en valsensor
estado2 = digitalRead(boton2);
if (estado2 == HIGH){
funcion = 1;
}
else {
funcion = 0;
}
if (funcion == 0){
if (valsensor < 400){
posicion = 0;
}
if (valsensor >= 400 && valsensor <= 900){
posicion = 1;
}
if (valsensor > 900){
posicion = 2;
}
}
if (funcion == 1){
if (valsensor < 400){
posicion = 3;
}
if (valsensor >= 400 && valsensor < 900 ){
posicion = 4;
}
if (valsensor >= 900){
posicion = 5;
}
}
if (posicion == 0){ // mano abierta
electrodo1.write(0);
electrodo2.write(0);
electrodo3.write(0);
electrodo4.write(180);
}
if (posicion == 1){ // agarre en pinza
electrodo1.write(70);
electrodo2.write(180);
electrodo3.write(180);
electrodo4.write(180);
}
if (posicion == 2){ // agarre de fuerza
electrodo1.write(100);
electrodo2.write(180);
electrodo3.write(180);
electrodo4.write(10);
}
if (posicion == 3){ // posicion para pulsar teclas con el dedo indice
electrodo1.write(0);
electrodo2.write(0);
electrodo3.write(0);
electrodo4.write(10);
}
if (posicion == 4){ // agarre de gancho 1
electrodo1.write(0);
electrodo2.write(90);
electrodo3.write(90);
electrodo4.write(60);
}
if (posicion == 5){ // agarre de gancho 2
electrodo1.write(0);
electrodo2.write(180);
electrodo3.write(180);
electrodo4.write(10);
}
Serial.println(valsensor);
}
}
#include <SoftwareSerial.h> // libreria que permite establecer pines digitales
// para comunicacion serie
SoftwareSerial miBT(10, 11); // pin 10 como RX, pin 11 como TX
char DATO = 0; // variable para almacenar caracter recibido
int ELECTRODO1 = 2; // electrodo1 a pin digital numero 2
int ELECTRODO2 = 3; // electrodo2 a pin digital numero 3
int ELECTRODO3 = 4; // electrodo3 a pin digital numero 4
int ELECTRODO4 = 5; // electrodo4 a pin digital numero 5
void setup(){
miBT.begin(38400); // comunicacion serie entre Arduino y el modulo a 38400 bps
pinMode(ELECTRODO1, OUTPUT); // pin 2 como salida
pinMode(ELECTRODO2, OUTPUT); // pin 3 como salida
pinMode(ELECTRODO3, OUTPUT); // pin 4 como salida
pinMode(ELECTRODO4, OUTPUT); // pin 5 como salida
}
void loop(){
if (miBT.available()){ // si hay informacion disponible desde modulo
DATO = miBT.read(); // almacena en DATO el caracter recibido desde modulo
if( DATO == '1' ) // si el caracter recibido es el numero 1
digitalWrite(ELECTRODO1, HIGH); // enciende electrodo1
if( DATO == '2' ) // si el caracter recibido es el numero 2
digitalWrite(ELECTRODO2, LOW); // enciende electrodo2
if( DATO == '3' ) // si el caracter recibido es el numero 3
digitalWrite(ELECTRODO3, HIGH); // enciende electrodo3
if( DATO == '4' ) // si el caracter recibido es el numero 4
digitalWrite(ELECTRODO4, LOW); // enciende electrodo4
}
}
DIAGRAMAS DE FLUJO
≫ Propiedades del tejido para construir mi producto I. (s. f.). SlowFashionNext. https://www.slowfashionnext.com/blog/propiedades-del-tejido-construir-producto-i/
N. Sinchiguano, "DISEÑO Y CONSTRUCCIÓN DE UN ELECTROESTIMULADOR Y ELECTROMIOGRAMA CON COMUNICACIÓN INALÁMBRICA PARA LA DETECCIÓN Y TRATAMIENTO DE ENFERMEDADES NEUROMUSCULARES", Universidad de las Fuerzas Armadas Ecuador, 2015. [En línea]. Disponible: http://repositorio.espe.edu.ec/bitstream/21000/10116/2/T-ESPEL-ENI-0355-P.pdf