Passerelle.infini:toutestson

De Les Fabriques du Ponant
Révision datée du 26 février 2022 à 17:58 par Antonydbzh (discussion | contributions) (Code WAVE)
Aller à : navigation, rechercher

Tout est son 1.jpg Tout est son 2.jpg Tout est son 3.jpg Tout est son 4.jpg Tout est son 5.jpg Tout est son 6.jpg Tout est son 7.jpg Tout est son 8.jpg Tout est son 9.jpg Tout est son 10.jpeg Tout est son 11.JPG Tout est son 12.JPG Tout est son 13.JPG Tout est son 14.JPG Tout est son 15.JPG Tout est son 16.JPG Tout est son 17.JPG Tout est son 18.JPG



LE PROJET

Une quête sensible commence, à portée de mains: deux dispositifs. Ceux-ci sont des oeuvres et média pour créer une oeuvre sensorielle, en l'occurence, sonorisée et ce par le mouvement et la couleur. Ce projet est une création à partir de son(s) et de couleur(s) où chacun peut expérimenter les notions d'intérieur et d'extérieur à soi. L'utilisateur de ces objets est à la fois créateur et spectateur. Pas de passivité avec ces deux dispositifs vous pouvez ainsi voyager dans une autre dimension en écoutant seulement les différents modules sonores qui vous traverseront par le biais de la mouvance de votre propre corps ou par l'attraction d'une couleur sur laquelle vous aurez portez votre regard.

LE PUBLIC VISE

Tout public, avec un regard particulier envers les plus jeunes.

POURQUOI?

L'idée ici est de susciter les sens, la curiosité, la créativité. Créer un mouvement, une chorégraphie. Découvrir des sons qui nous sont étranger. Cohabiter avec l'espace qui nous entoure, en découvrir un autre ici et maintenant.

Le 1ER Dispositif serait une manière de générer du son dans un espace silencieux. Le 2ÈME dispositif serait un moyen de générer du son de manière plus solitaire (casque) dans un espace bruyant.

MONTAGE TECHNIQUE DES OBJETS

CUFF

Un manchon en polyéthylène moussé et cartonnage fermé avec du velcro.

Des matériaux électroniques :

  • un capteur de position,
  • un lecteur MP3 équipé d'une micro carte SD,
  • un D1 mini,
  • une batterie,
  • un haut parleur

Code CUFF

  1  
  2 /////////////////////
  3 //  TOUT EST SON   //
  4 /////////////////////
  5 // TOUT EST SON est une Capteur de mouvement générateur de sons.
  6 // Il a été réalisée dans le cadre du hackathon "Passerelle.infini" les 24 & 25 février 2022
  7 // Le hackathon "Passerelle.infini" est organisé par le Centre d'Art Passerelle, Les petits débrouillards
  8 // Avec la participation de Tyfenn Leluc - designeuse et Thibault Beugin formateur
  9 
 10 // Le programme est inspiré du programme "Basic demo for accelerometer readings" de Adafruit MPU6050
 11 /*
 12 
 13                                      BROCHAGE
 14                                 _________________
 15                                /     D1 mini     \
 16                            -  |[ ]RST        TX[ ]| -
 17                            -  |[ ]A0  -GPIO  RX[ ]| -
 18                               |[ ]D0-16    5-D1[X]| - SCL MPU6050
 19                 RX MP3-TF-16P |[X]D5-14    4-D2[X]| - SDA MPU6050
 20 resistance 1K - TX MP3-TF-16P |[X]D6-12    0-D3[ ]| - 
 21                            -  |[ ]D7-13    2-D4[ ]| LED_BUILTIN
 22                            -  |[ ]D8-15     GND[X]| - GND (MPU6050, MP3-TF-16P)
 23                            -  |[ ]3V3 .      5V[X]| - MPU6050, MP3-TF-16P
 24                               |       +---+       |
 25                               |_______|USB|_______|
 26 
 27 
 28                                +-------\_/--------+
 29                            +5V |[X] MP3-TF-16P [ ]|
 30             resistance 1K - TX |[X]            [ ]|
 31                             RX |[X] __________ [ ]|
 32                                |[ ]|          |[ ]|
 33                                |[ ]|   CARTE  |[ ]|
 34                   Haut-Parleur |[X]|    SD    |[ ]|
 35                            GND |[X]|          |[ ]|
 36                   Haut-Parleur |[X]|          |[ ]|
 37                                |___|__________|___|
 38                                
 39 
 40 
 41                                 _________________
 42                                |     MPU6050   ()|
 43                            +5V |[X]VCC           |
 44                            GND |[X]GND         G |
 45                             D1 |[X]SCL   ___   Y |
 46                             D2 |[X]SDA  |   |  | |
 47                                |[ ]XCA  |___|  5 |
 48                                |[ ]XCL .       2 |
 49                                |[ ]ADO      Y  1 |
 50                                |[ ]INT  ->X |    |
 51                                |_______________()|  
 52                                
 53 
 54 Matériel :
 55 - des fils dupont.
 56 - un Wemos D1 mini
 57 - un lecteur MP3 MP3-TF-16P
 58 - une carte SD microSD
 59 - un shield batterie 18650
 60 - une batterie 18650
 61 - un cable USB
 62 - un capteur gyroscopique GY-521 MPU6050
 63 
 64    ___
 65  / ___ \
 66 |_|   | |
 67      /_/ 
 68      _   ___   _ 
 69     |_| |___|_| |_
 70          ___|_   _|
 71         |___| |_|
 72 Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
 73 Antony Le Goïc-Auffret 25 février 2022
 74 */
 75 
 76 
 77 #include <Adafruit_MPU6050.h>
 78 #include <Adafruit_Sensor.h>
 79 #include <Wire.h>
 80 #include "Arduino.h"
 81 #include "SoftwareSerial.h"
 82 #include "DFRobotDFPlayerMini.h"
 83 
 84 // D6 est le RX du ESP8266, connecte au TX du MP3-TF-16P
 85 // D5 est le TX du ESP8266, connecte au RX du MP3-TF-16P
 86 SoftwareSerial mySoftwareSerial(14, 12); // RX, TX
 87 DFRobotDFPlayerMini myDFPlayer;
 88 
 89 long hasard;            // declaration d'une variable long
 90 int nombreDeSons = 4;   // indiquer le nombre de sons sur la carte SD. Chaque fichier est numeroté 00X.
 91 
 92 
 93 Adafruit_MPU6050 mpu;
 94 
 95 float X;
 96 float Y;
 97 float Z;
 98 
 99 int son = 0;
100 
101 void initialisation(){
102   Serial.println();
103   Serial.println(F("TOUT EST SON"));
104   Serial.println(F("Initialisation du lecteur mp3 ... (peut prendre 3 a 5 secondes)"));
105 
106   if (!myDFPlayer.begin(mySoftwareSerial)) {  // utilise softwareSerial pour communiquer avec le MP3-TF-16P.
107     Serial.println(F("Incapable de demarrer:"));
108     Serial.println(F("1. Verifiez les connexions!"));
109     Serial.println(F("2. Inserez la carte SD!"));
110     while (true);
111   }
112   Serial.println(F("TOUT EST SON est prêt !"));
113 
114   myDFPlayer.setTimeOut(500); // place la communication serie time out 500ms
115   myDFPlayer.volume(26);      // regle le volume (de 0 a 30).
116   myDFPlayer.play(1);         // joue le premier fichier son.
117 }
118 
119 void setup(void) {
120   mySoftwareSerial.begin(9600);
121   Serial.begin(115200);
122   
123   while (!Serial)
124     delay(10); // will pause Zero, Leonardo, etc until serial console opens
125 
126   Serial.println("Adafruit MPU6050 test!");
127 
128   // Try to initialize!
129   if (!mpu.begin()) {
130     Serial.println("Failed to find MPU6050 chip");
131     while (1) {
132       delay(10);
133     }
134   }
135   Serial.println("MPU6050 Found!");
136 
137   mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
138   Serial.print("Accelerometer range set to: ");
139   switch (mpu.getAccelerometerRange()) {
140   case MPU6050_RANGE_2_G:
141     Serial.println("+-2G");
142     break;
143   case MPU6050_RANGE_4_G:
144     Serial.println("+-4G");
145     break;
146   case MPU6050_RANGE_8_G:
147     Serial.println("+-8G");
148     break;
149   case MPU6050_RANGE_16_G:
150     Serial.println("+-16G");
151     break;
152   }
153   mpu.setGyroRange(MPU6050_RANGE_500_DEG);
154   Serial.print("Gyro range set to: ");
155   switch (mpu.getGyroRange()) {
156   case MPU6050_RANGE_250_DEG:
157     Serial.println("+- 250 deg/s");
158     break;
159   case MPU6050_RANGE_500_DEG:
160     Serial.println("+- 500 deg/s");
161     break;
162   case MPU6050_RANGE_1000_DEG:
163     Serial.println("+- 1000 deg/s");
164     break;
165   case MPU6050_RANGE_2000_DEG:
166     Serial.println("+- 2000 deg/s");
167     break;
168   }
169 
170   mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
171   Serial.print("Filter bandwidth set to: ");
172   switch (mpu.getFilterBandwidth()) {
173   case MPU6050_BAND_260_HZ:
174     Serial.println("260 Hz");
175     break;
176   case MPU6050_BAND_184_HZ:
177     Serial.println("184 Hz");
178     break;
179   case MPU6050_BAND_94_HZ:
180     Serial.println("94 Hz");
181     break;
182   case MPU6050_BAND_44_HZ:
183     Serial.println("44 Hz");
184     break;
185   case MPU6050_BAND_21_HZ:
186     Serial.println("21 Hz");
187     break;
188   case MPU6050_BAND_10_HZ:
189     Serial.println("10 Hz");
190     break;
191   case MPU6050_BAND_5_HZ:
192     Serial.println("5 Hz");
193     break;
194   }
195 
196   Serial.println("");
197   delay(100);
198 
199   initialisation();
200 }
201 
202 void loop() {
203 
204   /* Get new sensor events with the readings */
205   sensors_event_t a, g, temp;
206   mpu.getEvent(&a, &g, &temp);
207 
208   X = a.acceleration.x;
209   Y = a.acceleration.y;
210   Z = a.acceleration.z;
211   
212   /* Print out the values */
213   Serial.print("Acceleration X: ");
214   Serial.print(X);
215   Serial.print(", Y: ");
216   Serial.print(Y);
217   Serial.print(", Z: ");
218   Serial.print(Z);
219   Serial.println(" m/s^2");
220 
221   Serial.println("");
222   delay(500);
223 // déclenchement X
224   if ((abs(X)>8) & (abs(Y)<8) &(abs(Z)<8)) {
225     son = 1;
226     Serial.print("son = ");
227     Serial.println(son);
228     myDFPlayer.play(son);         // joue le fichier son.
229   }
230 // déclenchement Y
231     if ((abs(X)<8) & (abs(Y)>8) &(abs(Z)<8)) {
232     son = 2;
233     Serial.print("son = ");
234     Serial.println(son);
235     myDFPlayer.play(son);         // joue le fichier son.
236   }
237 // déclenchement Z
238     if ((abs(X)<8) & (abs(Y)<8) &(abs(Z)>8)) {
239     son = 3;
240     Serial.print("son = ");
241     Serial.println(son);
242     myDFPlayer.play(son);         // joue le fichier son.
243   }
244 }

WAVE

un détecteur composé de carton alvéolé double cannelure

des matériaux électroniques :

  • un bouton poussoir,
  • un capteur de Couleur GY-31,
  • une batterie,
  • un D1 mini,
  • un lecteur MP3 équipé d'une micro carte SD,
  • un haut parleur


Code WAVE

  1  
  2 /////////////
  3 //  WAVE   //
  4 /////////////
  5 // WAVE est une Capteur de couleur générateur de sons.
  6 // Il a été réalisée dans le cadre du hackathon "Passerelle.infini" les 24 & 25 février 2022
  7 // Le hackathon "Passerelle.infini" est organisé par le Centre d'Art Passerelle, Les petits débrouillards
  8 // Avec la participation de Tyfenn Leluc - designeuse et Thibault Beugin formateur
  9 /*
 10   Ce programme est inspiré du programme "Détection de couleur avec Arduino"  
 11   https://electroniqueamateur.blogspot.com/2020/09/capteur-de-couleurs-tcs3200-gy-31-et.html
 12 
 13 
 14 
 15                                           +-----+
 16              +----[PWR]-------------------| USB |--+
 17              |                            +-----+  |
 18              |         GND/RST2  [ ][ ]            |
 19              |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] | 
 20              |          5V/MISO2 [ ][ ]  A4/SDA[ ] |   
 21              |                             AREF[ ] |
 22              |                              GND[ ] |
 23              | [ ]N/C                    SCK/13[ ] |  
 24              | [ ]IOREF                 MISO/12[ ] |   
 25              | [ ]RST                   MOSI/11[X]~| - RX MP3-TF-16P 
 26              | [ ]3V3    +---+               10[X]~| - resistance 1K - TX MP3-TF-16P
 27         VCC  | [X]5v    -| A |-               9[ ]~|   
 28         GND  | [X]GND   -| R |-               8[ ] |  
 29              | [ ]GND   -| D |-                    |
 30              | [ ]Vin   -| U |-               7[X] | -  LED
 31              |          -| I |-               6[X]~| -  OUT
 32              | [ ]A0    -| N |-               5[X]~| -  S3
 33              | [ ]A1    -| O |-               4[X] | -  S2
 34              | [ ]A2     +---+           INT1/3[X]~| -  S1
 35              | [ ]A3                     INT0/2[X] | -  S0
 36              | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
 37              | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
 38              |            [ ] [ ] [ ]              |
 39              |  UNO_R3    GND MOSI 5V  ____________/
 40               \_______________________/
 41 
 42               
 43                                +-------\_/--------+
 44                            +5V |[X] MP3-TF-16P [ ]|
 45        10 - resistance 1K - TX |[X]            [ ]|
 46                        11 - RX |[X] __________ [ ]|
 47                                |[ ]|          |[ ]|
 48                                |[ ]|   CARTE  |[ ]|
 49                   Haut-Parleur |[X]|    SD    |[ ]|
 50                            GND |[X]|          |[ ]|
 51                   Haut-Parleur |[X]|          |[ ]|
 52                                |___|__________|___|
 53 
 54                                          7  2  3
 55                                __________|__|__|________
 56                               | ()   [ ][X][X][X][ ]   () |
 57                               |     INT LED S0 S1 VCC     |
 58                               |           GY-31           |
 59                               |           _ - _           |
 60                               |     ( ) /       \ ( )     |
 61                               |        /    _    \        |
 62                               |       (    |_|    )       |
 63                               |        \         /        |
 64                               |     ( )  \_ _ _/  ( )     |          
 65                               |                           |
 66                               |     GND OUT S2 S3 VCC     |
 67                               | ()   [X][X][X][X][X]   () |   
 68                               |-------|--|--|--|--|-------|
 69                                     GND  6  4  5  +5V
 70 
 71 Matériel :
 72 - des fils dupont.
 73 - un Arduino Nano
 74 - un capteur de couleur GY-31
 75 - un lecteur MP3 MP3-TF-16P
 76 - une carte SD microSD
 77 - un shield batterie 18650
 78 - une batterie 18650
 79 - un cable USB
 80 
 81 Schéma de l'Arduino en ASCII-ART CC-By http://busyducks.com/ascii-art-arduinos
 82 Sous licence CC-By-Sa (http://creativecommons.org/licenses/by-nc-sa/3.0/)
 83 */
 84 /*
 85    ___
 86  / ___ \
 87 |_|   | |
 88      /_/ 
 89      _   ___   _ 
 90     |_| |___|_| |_
 91          ___|_   _|
 92         |___| |_|
 93 Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
 94 */
 95 
 96 // définitions des broches utilisées sur l'Arduino
 97 #define brocheS0 2
 98 #define brocheS1 3
 99 #define brocheS2 4
100 #define brocheS3 5
101 #define brocheLecture 6
102 #define brocheLED 7
103 
104 #include "Arduino.h"
105 #include "SoftwareSerial.h"
106 #include "DFRobotDFPlayerMini.h"
107 
108 // 10 est le TX de l'arduino, connecte au TX du MP3-TF-16P
109 // 11 est le RX  de l'arduino, connecte au RX du MP3-TF-16P
110 SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
111 DFRobotDFPlayerMini myDFPlayer;
112 
113 // valeur mesurée pour chaque couleur
114 int rouge, vert, bleu, total, son;
115 
116 void initialisation(){
117     Serial.println();
118   Serial.println(F("Wave"));
119   Serial.println(F("Initialisation du lecteur mp3 ... (peut prendre 3 a 5 secondes)"));
120 
121   if (!myDFPlayer.begin(mySoftwareSerial)) {  // utilise softwareSerial pour communiquer avec le MP3-TF-16P.
122     Serial.println(F("Incapable de demarrer:"));
123     Serial.println(F("1. Verifiez les connexions!"));
124     Serial.println(F("2. Inserez la carte SD!"));
125     while (true);
126   }
127   Serial.println(F("WAVE est prêt !"));
128 
129   myDFPlayer.setTimeOut(500); // place la communication serie time out 500ms
130   myDFPlayer.volume(26);      // regle le volume (de 0 a 30).
131   myDFPlayer.play(1);         // joue le premier fichier son.
132 }
133 
134 void setup() {
135 
136   pinMode(brocheS0, OUTPUT);
137   pinMode(brocheS1, OUTPUT);
138   pinMode(brocheS2, OUTPUT);
139   pinMode(brocheS3, OUTPUT);
140   pinMode(brocheLED, OUTPUT);
141   pinMode(brocheLecture, INPUT);
142 
143   // éteignons les LEDs pour l'instant
144   digitalWrite(brocheLED, LOW);
145 
146   // Réglage de l'échelle de fréquence à 2% (plus facile à lire avec pulseIn)
147   digitalWrite(brocheS0, LOW);
148   digitalWrite(brocheS1, HIGH);
149 
150   mySoftwareSerial.begin(9600);
151   Serial.begin(115200); // initialise la connexion serie vers le PC a 115200 bauds
152 
153   initialisation();
154 }
155 
156 
157 void loop() {
158 
159   digitalWrite(brocheLED, HIGH);  // on allume les LEDs
160 
161   digitalWrite(brocheS2, LOW); // rouge
162   digitalWrite(brocheS3, LOW);
163   rouge = pulseIn(brocheLecture, LOW);
164 
165   Serial.print("rouge: ");
166   Serial.print(rouge);
167 
168   digitalWrite(brocheS2, HIGH); // vert
169   digitalWrite(brocheS3, HIGH);
170   vert = pulseIn(brocheLecture, LOW);
171 
172   Serial.print("  vert: ");
173   Serial.print(vert);
174 
175   digitalWrite(brocheS2, LOW); // bleu
176   digitalWrite(brocheS3, HIGH);
177   bleu = pulseIn(brocheLecture, LOW);
178 
179   Serial.print(" bleu: ");
180   Serial.println(bleu);
181 
182   digitalWrite(brocheS2, HIGH); // lumière complète, sans filtre
183   digitalWrite(brocheS3, LOW);
184   total = pulseIn(brocheLecture, LOW);
185 /*  
186   Serial.print("  total: ");
187   Serial.println(total);
188 */
189   digitalWrite(brocheLED, LOW);   // on éteint les LEDs
190   delay(1000); // pause avant la prochaine mesure
191 
192 // déclenchement rouge
193   if ((rouge<1200) & (vert>2000) & (bleu>2000)) {
194     son = 1;
195     Serial.print("son = ");
196     Serial.println(son);
197     myDFPlayer.play(son);         // joue le fichier son.
198   }
199 // déclenchement vert
200     if ((rouge>1500) & (vert<2000) & (bleu>2000)) {
201     son = 2;
202     Serial.print("son = ");
203     Serial.println(son);
204     myDFPlayer.play(son);         // joue le fichier son.
205   }
206 // déclenchement bleu
207     if ((rouge>5000) & (vert>3500) & (bleu<2000)) {
208     son = 3;
209     Serial.print("son = ");
210     Serial.println(son);
211     myDFPlayer.play(son);         // joue le fichier son.
212   }
213 // déclenchement jaune
214     if ((rouge<900) & (vert<900) & (bleu>1000)){
215     son = 4;
216     Serial.print("son = ");
217     Serial.println(son);
218     myDFPlayer.play(son);         // joue le fichier son.
219   }
220   
221 
222 }

Catégories