Workshop mené sur 2 jours avec des élèves de M2 de l’ECV Bordeaux.

Au menu, découverte de l’environnement de programmation, petits rappels de notions d’électronique (led, resistance, condensateurs, branchements en parallèle et en série…), programmation ARDUINO et optimisation de code, soudure et réalisation d’un poster interactif basé sur « Stranger Things » (saison 1).

voici le câblage utilisé

et le code associé:


#include <CapacitiveSensor.h>;

/*
* 2017 Alexandre Sune - WORKSHOP ECV DIGITAL
*
* ARDUINO ECV "STRANGER THINGS"
* Detection capacitive sur poster.
* Declanchement d'une sequence composée de "fade" sur 3 leds
* associé à une production audio "étrange"
*
* mini HP sur GND et pin 6
*
* led Vert sur GND et pin 11
* led Bleu sur GND et pin 10
* led Rouge sur GND et pin 9
*
* resistance de 10M sur les pin 4 et 2
* sur la pin 2 un cable est connecté à une petite plaque de cuivre
*
*
*/

CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2);

int seuilDeDetection = 40;

int ledVerte_E = 11;
int ledBleu_C = 10;
int ledRouge_V =9;

int audioOut = 6;

int brillance = 0;
int fondu = 5;

int etape = 0;

&nbsp;

boolean detectionOk = false;

void setup()
{
Serial.begin(9600);
}

void loop()
{
long start = millis();
long total1 = cs_4_2.capacitiveSensor(30);

Serial.println(total1); // print sensor output 1

if(total1 &gt;= seuilDeDetection){

detectionOk = true;

}else{

//rien 😉

}

sequence();

}

void sequence(){

if(detectionOk){

if(etape==0){

analogWrite(ledVerte_E, brillance);
analogWrite(audioOut, brillance);
analogWrite(ledBleu_C, 0);
analogWrite(ledRouge_V, 0);

}
if(etape==1){

analogWrite(ledVerte_E, 0);
analogWrite(ledBleu_C, brillance);
analogWrite(audioOut, brillance);
analogWrite(ledRouge_V, 0);

}
if(etape==2){

analogWrite(ledVerte_E, 0);
analogWrite(ledBleu_C, 0);
analogWrite(ledRouge_V, brillance);
analogWrite(audioOut, brillance);
}
if(etape==3){
//rien
analogWrite(ledVerte_E, 0);
analogWrite(ledBleu_C, 0);
analogWrite(ledRouge_V, 0);
analogWrite(audioOut, 0);
detectionOk = false;
}
// evolution de la brillance des leds à chaque appel de la fonction:
brillance = brillance + fondu;

//incrementation &amp; decrementation
if (brillance == 0 || brillance == 255) {

//on passe la valeur de "fondu" de 5 à -5 et de -5 à 5

fondu = -fondu ;

if(brillance == 0){
etape++;
if(etape == 4){
etape = 0;
}
}
}

}
delay(10);
}

Les différents codes abordés sont disponibles ici.

2 décembre 2017