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