Saltar al contenido

Mouse táctil

Mouse Táctil Inclusivo

En este tutorial voy a explicar como realizar un mouse táctil basado en Arduino ProMicro. Está pensado para que lo utilicen personas con problemas motrices. Ya sea en PC (MS-Windows, GNU/Linux o MacOS) o en dispositivos Android.

Suscribite al Canal!!!

Todo dispositivo de integración para personas con problemas motrices o con alguna discapacidad, son de precio elevado, muy elevado y no solo difíciles de conseguir, sino que también, no todos pueden acceder a él.

Este es un proyecto muy interesante. Es simple de hacer, fácil de programar y también un gran proyecto para todos los «MAKERS» como yo y para ayudar, como dije antes, a una persona con problemas motrices. Así que a no perder el tiempo y a hacer este proyecto.

Lista de materiales:

  • Arduino ProMicro o Leonardo (recomendado ProMicro por cuestión de tamaño).
  • 5 resistencia de 1Mohm.
  • 1 protoboard o placa de prototipos (opcional ya que podemos soldar las resistencias directamente al arduino, pero es recomendable para el prototipo final la placa perforada de prototipos).
  • Cables de conexión.
  • Rollo de papel aluminio de cocina.
  • Cartón, isopor/tergopol o un recorte de fibrofácil de tamaño A4 aprox (medida ideal, puede ser redondo cuadrado o rectangular, esto es a gusto o necesidad)

Diagrama de cableado / diagrama de circuito:

Diagrama de conexión Mouse táctil
Diagrama de conexión Mouse táctil

Conexión de los pines

Conectar las resistencias de 1MΩ a los siguientes pines: (4, 2) (5, 3) (8, 6) (9, 7) (15, 16) Como se muestra en la imagen de arriba.

Conectar todos los sensores capacitivos a los siguientes pines:

  1. Superior al pin 2.
  2. Derecho al pin 3.
  3. Izquierdo al pin 6.
  4. Inferior al pin 7.
  5. Selección a Pin 16.

Cabe aclarar que el sensor puede ser el propio cable, o lo que se conecte a él, ya sea papel de aluminio, papel de cobre, una moneda, chapitas, etc.

Necesitaremos las librerías:

  • CapacitiveSensor.h
  • Mouse.h

Cargar el código:

Código totalmente modificable y adaptable a nuevas necesidades futuras.

#include 
#include 

long time = 0;

CapacitiveSensor   csTOP = CapacitiveSensor(4,2);      //Pin 2 será el táctil.
CapacitiveSensor   csRIGHT = CapacitiveSensor(5,3);    //Pin 3 será el táctil.
CapacitiveSensor   csLEFT = CapacitiveSensor(8,6);     //Pin 6 será el táctil.
CapacitiveSensor   csBOTTOM = CapacitiveSensor(9,7);   //Pin 7 será el táctil.
CapacitiveSensor   csSELECT = CapacitiveSensor(15,16); //Pin 16 será el táctil.

void setup()
{
   Mouse.begin();
   Serial.begin(9600);
   csTOP.set_CS_AutocaL_Millis(0xFFFFFFFF);     //Calibra el sensor arriba.
   csRIGHT.set_CS_AutocaL_Millis(0xFFFFFFFF);   //Calibra el sensor derecha.
   csLEFT.set_CS_AutocaL_Millis(0xFFFFFFFF);    //Calibra el sensor izquierda.
   csBOTTOM.set_CS_AutocaL_Millis(0xFFFFFFFF);  //Calibra el sensor abajo.
   csSELECT.set_CS_AutocaL_Millis(0xFFFFFFFF);  //Calibra el sensor selector.
}

void loop()                    
{
    int X = 0, Y = 0;   //variables temporales para ejes X e Y.
    
    long sensorTop =  csTOP.capacitiveSensor(30);
    long sensorRight =  csRIGHT.capacitiveSensor(30);
    long sensorLeft =  csLEFT.capacitiveSensor(30);
    long sensorBottom =  csBOTTOM.capacitiveSensor(30);
    long sensorSelect =  csSELECT.capacitiveSensor(30);

    
    if(sensorTop >= 60){
      Y = -2;
    }
    //si el valor del sensor capacitivo "arriba" es mayor o igual a 60, establezca el valor de Y en -2.
    
    if(sensorBottom >= 60){
      Y = 2;
    }
    //si el valor del sensor capacitivo "abajo" es mayor o igual a 60, establezca el valor de Y en 2.


    if(sensorRight >= 60){
      X = 2;
    }
    //si el valor del sensor capacitivo "derecha" es mayor o igual a 60, establezca el valor de X en 2.
    
    if(sensorLeft >= 60){
      X = -2;
    }
    //si el valor del sensor capacitivo "izquierda" es mayor o igual a 60, establezca el valor de X en -2.
    

    if(sensorSelect >= 60){
      Mouse.press(MOUSE_LEFT);
    }
    //si el valor del sensor capacitivo "selector" es mayor o igual a 60, entonces presiona botón izquierdo del mouse.
    else{
      Mouse.release(MOUSE_LEFT);
    }
    //sino, si el valor del sensor capacitivo del botón Selector es inferior a 60, suelte el botón izquierdo del mouse.

    Serial.println(millis()-time);
    
    Mouse.move(X , Y , 0);    //Mover el mouse a la posición X e Y.
    
    Serial.println("Mouse Position: X , Y = ");
    Serial.print(X);     //Imprimir el valor de X en el monitor serial.
    Serial.print("\t");    
    Serial.print(Y);     //Imprimir el valor de y en el monitor serial.

}
No te olvides de compartir en...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *