Dans cet article, nous allons vous présenter une carte programmable de la marque Bare Conductive : la Touch Board.
Cette carte Touch Board permet de transformer n’importe quelle surface ou objet conducteur en capteur tactile grâce à 12 électrodes pouvant détecter la plus petite tension, comme celle du corps humain.
Cette carte est notamment adaptée pour une utilisation avec de la peinture conductrice mais fonctionne aussi avec des cordons crocodiles ou tout élément conducteur.
La Touch Board est basée sur l’architecture Arduino. Elle possède un processeur de la même famille que celui de la Uno et convient à la plupart des Shields. Elle se programme avec le logiciel d’Arduino.
Installez le logiciel Arduino si ce n’est déjà fait. Vous débutez en Arduino ? Cliquez ici.
Téléchargez l’extension Touch Bord : Windows, Mac OSX, Linux 32 bits, Linux 64 bits. Lancez l’installation.
Lancez le logiciel Arduino. Dans l’onglet Outils à la ligne Type de carte, sélectionnez Bare Conductive Touch Board.
Raccordez votre carte en USB et mettez le switch sur ON. Dans l’onglet Outils à la ligne Port, sélectionnez le port de la carte.
Nous allons concevoir un programme permettant de jouer un son lorsque l’on touche un dessin. Chaque dessin aura son propre son.
NB : pour ce projet nous utiliserons des pinces crocodiles pour relier la Touch Board à nos connexions de peinture conductrice, mais vous pouvez très bien appliquer la peinture directement sur la carte.
Retirez la carte micro-SD de la Touch Board et connectez-la à votre ordinateur à l’aide du lecteur.
À l’intérieur de la carte, vous trouverez plusieurs fichiers dont 12 audio nommés TRACK000.MP3 jusqu’à TRACK011.MP3. Chaque fichier est en fait associé à l’électrode de même numéro, c’est-à-dire que la piste TRACK003 est jouée lorsque l’électrode 3 est appuyée. Pour changer les pistes audio, il faut impérativement garder ce système de nommage pour assurer le bon fonctionnement. Il n’est pas obligatoire d’avoir 12 fichiers audio : si une électrode n’est associée à aucun fichier, elle n’émettra pas de son si on appuie dessus.
Conseil du constructeur : mettez les fichiers sonores par défaut dans un dossier nommé AUDIO GUIDE avant de mettre vos propres fichiers.
Téléchargez la bibliothèque sonore [Zapsplat ©], faites extraire l’archive et copier-coller les fichiers sur la carte micro-SD.
Insérez la carte dans la Touch Board.
Nous allons faire en sorte que l’électrode :
Reliez la Touch Board à votre ordinateur. Copiez-collez le code suivant :
#include <MPR121.h> #include <Wire.h> #define MPR121_ADDR 0x5C #define MPR121_INT 4 #include <SPI.h> #include <SdFat.h> #include <FreeStack.h> #include <SFEMP3Shield.h> SFEMP3Shield MP3player; byte resultat; int sound = 0; #define firstPin 0 #define lastPin 11 SdFat sd; void setup() { //initialisation constructeur pinMode(LED_BUILTIN, OUTPUT); if (!sd.begin(SD_SEL, SPI_HALF_SPEED)) sd.initErrorHalt(); if (!MPR121.begin(MPR121_ADDR)){} MPR121.setInterruptPin(MPR121_INT); MPR121.setTouchThreshold(40); MPR121.setReleaseThreshold(20); resultat = MP3player.begin(); MP3player.setVolume(50, 50); //echelle de 1 à 100, 1 étant un volume fort et 100 un volume faible } void loop() { touche(); } void touche() { if (MPR121.touchStatusChanged()) { //si une touche a ete touchee MPR121.updateTouchData(); //mise a jour if (MPR121.getNumTouches() <= 1) { //on recupere le numero de l'electrode for (int i = 0; i < 12; i++) { if (MPR121.isNewTouch(i)) { digitalWrite(LED_BUILTIN, HIGH); //on allume la LED de la carte if (i <= lastPin && i >= firstPin) { //si on touche une electrode if (MP3player.isPlaying()) { //si un fichier audio est deja en cours de lecture if (sound == i) { MP3player.stopTrack(); //on l'arrete } else { //sinon on joue le fichier audio de meme numero que l'electrode MP3player.stopTrack(); MP3player.playTrack(i - firstPin); sound = i; } } else { //sinon on continue de jouer le fichier en cours MP3player.playTrack(i - firstPin); sound = i; } } } else { if (MPR121.isNewRelease(i)) { //lorsque l'on arrête de toucher l'electrode, la LED s'eteint digitalWrite(LED_BUILTIN, LOW); } } } } } }
Téléversez le programme.
Appuyez sur le bouton RESET de la carte et patientez 5 à 10 secondes.
Tout est prêt, chaque dessin doit jouer le son qui lui correspond.
Nous allons concevoir un programme permettant de contrôler un module LED RVB. À l’aide de la peinture conductrice on pourra régler les couleurs et la luminosité.
NB : pour ce projet nous utiliserons des pinces crocodiles pour relier la Touch Board à nos connexions de peinture conductrice, mais vous pouvez très bien appliquer la peinture directement sur la carte.
Nous aurons besoin du nécessaire de soudage. Si vous n’avez pas le matériel nécessaire pour souder, nous vous conseillons ce kit.
Vous débutez en soudure ? Suivez le guide :
Soudez les connecteurs à la carte Touch Board.
Reliez du module LED RVB à la Touch Board:
Reliez les électrodes avec les pinces crocodiles:
Nous allons faire en sorte que l’électrode :
Reliez la Touch Board à votre ordinateur. Copiez-collez le code suivant :
#include <MPR121.h> #include <Wire.h> #define MPR121_ADDR 0x5C #define MPR121_INT 4 #define firstPin 0 #define lastPin 11 #define Rouge 9 #define Vert 10 #define Bleu 11 int r, v, b; boolean onoff; void setup() { /*------------initialisation constructeur--------------*/ if (!MPR121.begin(MPR121_ADDR)){} MPR121.setInterruptPin(MPR121_INT); MPR121.setTouchThreshold(40); MPR121.setReleaseThreshold(20); /*-----------------------------------------------------*/ pinMode(Rouge, OUTPUT); pinMode(Vert, OUTPUT); pinMode(Bleu, OUTPUT); onoff=true; r=v=b=255; analogWrite(Rouge, r); analogWrite(Vert, v); analogWrite(Bleu, b); } void loop() { if (MPR121.touchStatusChanged()) { //si une electrode a ete touchee MPR121.updateTouchData(); //mise a jour if (MPR121.getNumTouches() <= 1) { //on recupere le numero de l'electrode for (int i = 0; i < 12; i++) { if (MPR121.isNewTouch(i)) { if(i == 9){ //electrode 9 = on-off if(onoff == true){ r=v=b=0; onoff=false; }else{ r=v=b=255; onoff=true; } } if(i == 11){r=v=b=64;} /electrode 11 = 25% if(i == 10){r=v=b=128;} //electrode 10 = 50% if(i == 8){r=v=b=192;} //electrode 8 = 75% if(i == 7){r=v=b=255;} //electrode 7 = 100% if (i == 5) {r-=15; if(r<0) {r=0;} } //electrode 5 = on diminue le rouge if (i == 4) {r+=15; if(r>255) {r=255;} } //electrode 4 = on augmente le rouge if (i == 3) {v-=15; if(v<0) {v=0;} } //electrode 3 = on diminue le vert if (i == 2) {v+=15; if(v>255) {v=255;} } //electrode 2 = on augmente le vert if (i == 1) {b-=15; if(b<0) {b=0;} } //electrode 1 = on diminue le bleu if (i == 0) {b+=15; if(b>255) {b=255;} } //electrode 0 = on augmente le bleu analogWrite(Rouge, r); //on actualise la couleur rouge analogWrite(Vert, v); //on actualise la couleur verte analogWrite(Bleu, b); //on actualise la couleur bleue delay(30); } else {if (MPR121.isNewRelease(i)) {}} //quand on ne touche plus l'electrode, il ne se passe rien } } } }
Téléversez le programme.
Appuyez sur le bouton RESET de la carte et patientez 5 à 10 secondes.
Votre contrôleur RVB est prêt !
Date de dernière modification 10 novembre 2020 16 h 13 min