Passerelle.infini:toutestson : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(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>
  
</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 à 18:56

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 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


Code WAVE

1 

Catégories