Découverte de la Touch Board de Bare Conductive
Présentation
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 Cette carte est notamment adaptée pour une utilisation avec de la peinture conductrice mais fonctionne |
Initialisation
La Touch Board est basée sur l’architecture 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. |
Projet 1 : Dessins sonores
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.
-
Liste des produits :
Starter Kit Touch Board | Patron |
Découpez le patron sur les pointillés. Appliquez la peinture sur toutes les parties noires. Inutile d’appliquer une couche de peinture épaisse. Attendez 5 minutes que la peinture sèche. |
Gestion des fichiers audio :
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. 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. |
Montage
Reliez la Touch Board et l’enceinte avec le câble jack. Reliez l’électrode avec les pinces crocodiles :
Programme :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.
Projet 2 : Contrôleur RVB :
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.
Liste des produits :
Starter Kit Touch Board | Patron | Jeu de connecteurs Arduino |
Jumper M/F | Module LED RGB |
Application de la peinture :
Découpez le patron suivant les pointillés. Appliquez la peinture sur toutes les parties noires. Nous vous conseillons d’utiliser un pinceau et un peu d’eau pour diluer la peinture. Inutile d’appliquer une couche de peinture épaisse. Attendez 5 minutes que la peinture sèche. |
Montage :
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:
- la broche R à la broche 9
- la broche V à la broche 10
- la broche B à la broche 11
- la broche – à un GND
Reliez les électrodes avec les pinces crocodiles:
- E11 au premier quart de cercle (le plus fin)
- E10 au 2ème quart de cercle
- E9 au rond
- E8 au 3ème quart de cercle
- E7 au dernier quart de cercle (le plus épais)
- E5 à la partie BASSE de la lettre R
- E4 à la partie HAUTE de la lettre R
- E3 à la partie BASSE de la lettre V
- E2 à la partie HAUTE de la lettre V
- E1 à la partie BASSE de la lettre B
- E0 à la partie HAUTE de la lettre B
Programme
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 !
Démontration :
Commentaires d'article
Laissez un commentaire