Arduino & Musique

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


1er projet : La boîte à musique & l’Objet du quotidien

 

matériel :
1 small 8 ohm speaker
1 arduino board
1 breadboard
1 push button
wires
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);

}








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



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

 



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


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