Tecnologia vestible

Per començar Elements d'entrada Programació CircuitPython   Recursos CITCEA
Elements no electrònics Elements de sortida Programació Arduino    
Projectes Elements de control Dades pràctiques   Inici

Entrades tàctils

La forma d'emprar les entrades tàctils és diferent segons la placa que fem servir.

Placa Circuit Playground Express

Les entrades tàctils de la placa Circuit Playground Express es poden llegir fent servir la biblioteca Adafruit_CircuitPlayground.h. La funció readCap llegeix el valor corresponent a la lectura capacitiva de la pota, només caldrà comparar aquesta lectura amb un llindar per saber si està activada o no. Atès que les lectures depenen del que tenim connectat a les entrades, convé ajustar aquest llindar per a cada projecte concret.

En el següent programa llegim les entrades tàctils A1, A2 i A7 i les fem servir per activar les tres components de color dels NeoPixels de la placa.

Important: Si hem de fer servir NeoPixels, cal que la càrrega de la biblioteca CircuitPlayground.h es faci després de carregar la biblioteca Adafruit_NeoPixel.h. Igualment, la crida a la funció CircuitPlayground.begin s'ha de fer sempre abans que qualsevol altra instrucció d'inicialització, per exemple la cadena.begin.

#include <Adafruit_NeoPixel.h>
#include <Adafruit_CircuitPlayground.h>
#define LLINDAR 500
#define NumLED 10
#define LEDpin 8   // NeoPixels de la placa
Adafruit_NeoPixel cadena = Adafruit_NeoPixel(NumLED, LEDpin, NEO_GRB + NEO_KHZ800);
// Funció per llegir les entrades tàctils
boolean tactil(uint8_t pad) {
  Serial.println(CircuitPlayground.readCap(pad));
  if (CircuitPlayground.readCap(pad) > LLINDAR) {
    return true;
  } else {
    return false;
  }
}
void setup() {
  CircuitPlayground.begin(); // Inicialitza la placa Circuit Playground
  Serial.begin(9600);
  cadena.begin();  // Inicialitza els NeoPixels
  cadena.show();
}
void loop() {
  int R = 0;
  int G = 0;
  int B = 0;  // Per defecte, els tres colors apagats
  if (tactil(A7)){
    R = 255;  // En tocar A7 s'encén el vermell
  }
  if (tactil(A1)){
    G = 255;  // En tocar en A1 s'encén el verd
  }
  if (tactil(A2)){
    B = 255;  // En tocar en A2 s'encén el blau
  }
  for (int j = 0; j < NumLED; j++){
    cadena.setPixelColor(j, R, G, B);  // Ho enviem als LED
  }
  cadena.show();  // Mostra el color 
}

Placa Flora

Les entrades tàctils de la placa Flora es poden llegir fent servir la biblioteca CapPin.h que podem descarregar aquí. La funció readPin llegeix el valor corresponent a la lectura capacitiva de la pota, només caldrà comparar aquesta lectura amb un llindar per saber si està activada o no. Atès que les lectures depenen del que tenim connectat a les entrades, convé ajustar aquest llindar per a cada projecte concret. El valor que es posa com a paràmetre indica el nombre de mostres que cal prendre i, per tant, el podem variar si el programa no fa el que esperem.

En el següent programa llegim les entrades tàctils 0, 2 i 3 i les fem servir per activar les tres components de color del NeoPixel de la placa.

#include <Adafruit_NeoPixel.h>
#include <CapPin.h>
#define LLINDAR 500
#define ITER 1000
#define NumLED 1
#define LEDpin 8   // NeoPixel de la placa
Adafruit_NeoPixel cadena = Adafruit_NeoPixel(NumLED, LEDpin, NEO_GRB + NEO_KHZ800);
CapPin Pin0  = CapPin(0);     // llegeix pota 0
CapPin Pin2  = CapPin(2);     // llegeix pota 2
CapPin Pin3  = CapPin(3);     // llegeix pota 3
void setup() {
  Serial.begin(9600);
  cadena.begin();  // Inicialitza els NeoPixels
  cadena.show();
}
void loop() {
  int R = 0;
  int G = 0;
  int B = 0;  // Per defecte, els tres colors apagats
  if (Pin0.readPin(ITER) > LLINDAR){
    R = 255;  // En tocar 0 s'encén el vermell
  }
  if (Pin2.readPin(ITER) > LLINDAR){
    G = 255;  // En tocar en 2 s'encén el verd
  }
  if (Pin3.readPin(ITER) > LLINDAR){
    B = 255;  // En tocar en 3 s'encén el blau
  }
  cadena.setPixelColor(0, R, G, B);  // Ho enviem als LED
  cadena.show();  // Mostra el color 
}

 

 

 

En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

 

 

 

 

 

 

 

 

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.