Dans le cadre du 'club Arduino' que j'anime avec Les Bricodeurs, un mardi sur deux à Lyon, il paraissait intéressant de donner un fil conducteur.
On est parti sur 'Des robots musiciens pour la fête de la musique'...
Pour un autre projet avec les Missions Locales de Vaulx, le thème de la musique semble convenir également.
Voici donc une ébauche de ce que l'on peut envisager de faire lors de ces ateliers Arduino/Musique.
Déjà, ça peut être utile pour préciser ce qu'est un objet connecté : http://movilab.org/index.php?title=Médiation_numérique_à_l%27internet_des_objets#
Des pistes pour démarrer https://fablab-clermont.jimdo.com/2017/10/10/tutoriel-arduino-compl%C3%A9ments-kit-d%C3%A9butant/
Projet : Arduino Musique
Comme évoqué, l’objectif est d’apprendre aux participants à
programmer un objet connecté à base d’Arduino, sur le thème de
la musique.
Selon le niveau, et
l’implication des participants, plusieurs pistes sont
envisageables :
- créer un instrument de musique type boite à musique (nombre de tonalités limité, un seul son à la fois)
- détourner un objet du quotidien et le transformer en instrument de musique (extension de la boite à musique)
- modifier cette boite à musique/objet du quotidien pour lui faire lire des fichiers MP3
- créer un objet / robot qui réagit à la musique
- capturer les mouvements d’une caméra pour agir avec un objet musical
- utiliser un smartphone pour se connecter à un objet musical.
Matériel nécessaire :
Je peux me déplacer
avec 5 cartes Arduino Uno ( basique ) et 5 cartes Arduino Yùn (
linux+ wifi) et un kit de base (câbles, boutons, leds, capteurs
ultrason…), ce qui permet dans un premier temps de se familiariser
avec les cartes, de découvrir les premiers programmes pour
comprendre le fonctionnement (allumer une led, bouger un moteur,
générer un son, mesurer une distance…)
Programmes exemples Blink (en)/ Sweep (en),
Programme un peu plus élaboré mais concret : Barrière LEGO Arduino
https://youtu.be/8HF8NKLyokc
Programme un peu plus élaboré mais concret : Barrière LEGO Arduino
https://youtu.be/8HF8NKLyokc
1er projet : La boîte à musique & l’Objet du quotidien
matériel :
1
small 8 ohm speaker
1 arduino board
1 arduino board
1
breadboard
1 push button
1 push button
wires
1 10 k resistor
1 10 k resistor
Lorsque l’on
appuie sur un bouton, on joue une note ou une séquence de notes
En multipliant les
boutons on peut utiliser plusieurs tonalités, plusieurs séquences
de tonalités.
Le projet de boite
musicale est une première approche permettant de découvrir la
génération de sons avec une carte Arduino mais ne permet que de
générer des « tonalités ».
avec le code :
#define NOTE_C 262
#define NOTE_D 294
#define NOTE_E 330
#define NOTE_F 349
#define NOTE_G 392
#define NOTE_A 440
#define NOTE_B 493
#define ACTIVATED LOW
const int PIEZO = 11;
const int LED = 13;
const int BUTTON_C = 10;
const int BUTTON_D = 9;
const int BUTTON_E = 8;
const int BUTTON_F = 7;
const int BUTTON_G = 6;
const int BUTTON_A = 5;
const int BUTTON_B = 4;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(BUTTON_C, INPUT);
digitalWrite(BUTTON_C,HIGH);
pinMode(BUTTON_D, INPUT);
digitalWrite(BUTTON_D,HIGH);
pinMode(BUTTON_E, INPUT);
digitalWrite(BUTTON_E,HIGH);
pinMode(BUTTON_F, INPUT);
digitalWrite(BUTTON_F,HIGH);
pinMode(BUTTON_G, INPUT);
digitalWrite(BUTTON_G,HIGH);
pinMode(BUTTON_A, INPUT);
digitalWrite(BUTTON_A,HIGH);
pinMode(BUTTON_B, INPUT);
digitalWrite(BUTTON_B,HIGH);
digitalWrite(LED,LOW);
}
void loop()
{
while(digitalRead(BUTTON_C) == ACTIVATED)
{
tone(PIEZO,NOTE_C);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_D) == ACTIVATED)
{
tone(PIEZO,NOTE_D);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_E) == ACTIVATED)
{
tone(PIEZO,NOTE_E);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_F) == ACTIVATED)
{
tone(PIEZO,NOTE_F);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_G) == ACTIVATED)
{
tone(PIEZO,NOTE_G);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_A) == ACTIVATED)
{
tone(PIEZO,NOTE_A);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_B) == ACTIVATED)
{
tone(PIEZO,NOTE_B);
digitalWrite(LED,HIGH);
}
noTone(PIEZO);
digitalWrite(LED,LOW);
}
avec le code :
#define NOTE_C 262
#define NOTE_D 294
#define NOTE_E 330
#define NOTE_F 349
#define NOTE_G 392
#define NOTE_A 440
#define NOTE_B 493
#define ACTIVATED LOW
const int PIEZO = 11;
const int LED = 13;
const int BUTTON_C = 10;
const int BUTTON_D = 9;
const int BUTTON_E = 8;
const int BUTTON_F = 7;
const int BUTTON_G = 6;
const int BUTTON_A = 5;
const int BUTTON_B = 4;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(BUTTON_C, INPUT);
digitalWrite(BUTTON_C,HIGH);
pinMode(BUTTON_D, INPUT);
digitalWrite(BUTTON_D,HIGH);
pinMode(BUTTON_E, INPUT);
digitalWrite(BUTTON_E,HIGH);
pinMode(BUTTON_F, INPUT);
digitalWrite(BUTTON_F,HIGH);
pinMode(BUTTON_G, INPUT);
digitalWrite(BUTTON_G,HIGH);
pinMode(BUTTON_A, INPUT);
digitalWrite(BUTTON_A,HIGH);
pinMode(BUTTON_B, INPUT);
digitalWrite(BUTTON_B,HIGH);
digitalWrite(LED,LOW);
}
void loop()
{
while(digitalRead(BUTTON_C) == ACTIVATED)
{
tone(PIEZO,NOTE_C);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_D) == ACTIVATED)
{
tone(PIEZO,NOTE_D);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_E) == ACTIVATED)
{
tone(PIEZO,NOTE_E);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_F) == ACTIVATED)
{
tone(PIEZO,NOTE_F);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_G) == ACTIVATED)
{
tone(PIEZO,NOTE_G);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_A) == ACTIVATED)
{
tone(PIEZO,NOTE_A);
digitalWrite(LED,HIGH);
}
while(digitalRead(BUTTON_B) == ACTIVATED)
{
tone(PIEZO,NOTE_B);
digitalWrite(LED,HIGH);
}
noTone(PIEZO);
digitalWrite(LED,LOW);
}
2nd Projet : Lire des fichiers MP3 sur une carte SD.
Carte Arduino
Lecteur microSD
DFPlayer (5 € )
3 boutons
1 breadboard
Un petit haut
parleur
Fonctions de base :
Play, Stop, chanson précédente, suivante.
Fonctions avancées
lecture d’un fichier MP3 nommé dans un dossier particulier.
→ une multitude de
sons déclenchables par :
- appui sur boutons
comme projet précédent
En français dans ce
projet :
https://www.carnetdumaker.net/articles/utiliser-un-lecteur-serie-de-fichiers-mp3-avec-une-carte-arduino-genuino/
Boîte à musique à
base de MP3
https://www.carnetdumaker.net/articles/faire-une-boite-musique-avec-une-carte-arduino-genuino-et-un-module-mp3-serie/
La boîte à musique
présentée utilise un amplificateur qui peut être compliqué / long à mettre en œuvre.
Comme alternative, il peut paraître judicieux d’utiliser une carte VS1053
https://www.elecrow.com/wiki/index.php?title=VS1053_MP3_Shield
qui se « plug » directement sur une carte Arduino, et qui
permet de plus d’enregistrer les sons via un micro, afin que les participants utilisent leurs propres sons.
https://youtu.be/V2znWwpZuRg
https://youtu.be/V2znWwpZuRg
En cachant ces
boutons dans un objet du quotidien, on peut rendre cet objet
musical : cafetière, imprimante...
(Attention au 220V,
objet HS de préférence)
A ce stade, il est possible d'imaginer un boitier, ou des actionneurs (boutons) imprimé en 3D pour interagir avec cet objet.
Utilisation d’un smartphone pour se connecter à un objet musical.
Dans la continuité
du lecteur MP3, il peut être intéressant de vouloir interagir avec
et de communiquer d’une autre manière avec cet objet, par exemple
avec un smartphone.
En utilisant
l’Arduino Yùn, et ses possibilités (Wifi, Linux, Serveur Web), on
pourra mettre à profit les connaissances de développement Web des
participants .
http://smag0.blogspot.com/2017/08/smagyun-une-arduino-yun-preparee-pour.html
http://smag0.blogspot.com/2017/08/smagyun-une-arduino-yun-preparee-pour.html
capturer les mouvements d’une caméra pour agir avec un objet musical
Une fois l’interface web appréhendée, on pourra utiliser une caméra et la détection de mouvements pour interagir avec cet objet en utilisant P5js, dont le code est très proche de celui de l’Arduino, mais en JavaScript.https://youtu.be/QLHMtE5XsMs
Tout ceci représente plusieurs pistes d'exploration, à adapter en fonction des participants, de leurs envies, de leurs compétences.
Capteur capacitif
https://retroetgeek.com/geek/arduino/arduino-bouton-sans-bouton-capteur-capacitif/
Commentaires
Enregistrer un commentaire