Table des matières:
- Étape 1: Le matériel informatique
- Étape 2: Le piano
- Étape 3: Assemblage
- Étape 4: Défis techniques et considérations futures
Vidéo: Piano joueur de synesthésie : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Ce piano mécanique joue de la musique à l'aide d'une roue chromatique et d'une caméra ! Les images sont capturées par la caméra, traitées et interprétées comme des notes de musique. À l'heure actuelle, il est programmé pour jouer des comptines qui peuvent être modifiées en téléchargeant un nouveau sketch arduino qui spécifie quelles notes doivent être jouées (quelles couleurs doivent être affichées à l'appareil photo).
Le PC Linux embarqué démarre un service au démarrage qui prend une photo avec un appareil photo, calcule une fonction des valeurs RVB de l'image et émet un son basé sur la valeur de retour de la fonction. Avant de jouer le son, il envoie un signal indiquant à un Arduino de faire pivoter un servo, présentant la couleur correspondant à la prochaine note à jouer. Puis la boucle recommence, une photo est prise, la roue chromatique est tournée et un son est joué à l'infini.
Ce projet est un moyen amusant d'intégrer la musique, la programmation de systèmes Linux modernes, la programmation de microcontrôleurs, le griffonnage d'inkscape, la découpe au laser et la réutilisation de certaines boîtes en carton indésirables.
Tout le code et les SVG inkscape sont disponibles sur github à l'adresse:
github.com/melvyniandrag/pyMusic
Les matériaux utilisés:
- Étiquettes blanches vierges
- Boîte en carton
- Webcam
- Crayons
- Arduino
- Beagleboard-xM
- Fils
- Câble série
- Connaissances de base en traitement d'images et en musique
Étape 1: Le matériel informatique
À bord, vous aurez besoin d'un petit ordinateur compatible Linux tel qu'un Raspberry Pi. J'ai utilisé un vieux BeagleBoard-xM parce que je l'avais dans le coin et que j'avais déjà un système d'exploitation sur la carte SD. Vous pouvez utiliser n'importe quoi, tant qu'il peut gérer une webcam, peut exécuter OpenCV (la bibliothèque de vision par ordinateur utilisée pour prendre et traiter des images de la roue chromatique) et dispose d'une prise de sortie audio.
J'ai configuré le système d'exploitation pour exécuter le code python qui capture les images au démarrage en suivant un tutoriel systemd. Pour que le script s'exécute, vous devrez sudo apt-get install python-pyaudio python-opencv pour obtenir les bibliothèques indiquées. Vous aurez également besoin de pip install numpy pyserial pour obtenir ces bibliothèques. pyaudio est utilisé pour jouer des sons, opencv est utilisé pour la prise et le traitement d'images, numpy est également utilisé pour le traitement d'images et pyserial est nécessaire pour communiquer avec l'Arduino.
L'Arduino est utilisé pour faire tourner le servomoteur sur lequel la roue chromatique est montée. Si vous aviez un Raspberry Pi, vous pourriez utiliser les broches GPIO et laisser de côté l'Arduino, mais vous devrez modifier le code Python.
Dans les images, vous pouvez voir les entrailles technologiques de l'opération et quelques extraits de code.
Étape 2: Le piano
J'ai fabriqué le piano en carton à partir de vieilles boîtes que j'avais. J'ai la chance d'habiter près d'un makerspace équipé d'un cutter laser. Pendant une année entière, je me suis demandé à quoi bon diable une découpeuse laser, et il s'avère que j'ai finalement trouvé une utilité pour elle.
J'ai mesuré l'ordinateur, l'arduino et le servo pour savoir de combien d'espace j'aurais besoin, j'ai dessiné les parties du piano dans inkscape et les ai découpées sur le cutter laser. (Edit: je n'ai plus de carton pour que le boîtier puisse contenir l'ordinateur et l'arduino et je ne les ai donc pas mis. Ils sont à l'extérieur du boîtier. Peu importe, j'aurais pu obtenir une autre boîte quelque part, mais ça n'a pas été le cas peu importe à la fin.)
Les pièces ont été assemblées avec de l'époxy.
Étape 3: Assemblage
Voici quelques images du piano en cours d'assemblage et de coloration. L'imprimante était à court d'encre, je n'ai donc pas pu imprimer les couleurs sur les étiquettes blanches comme je l'avais prévu. J'ai donc utilisé les crayons de ma fille. Et je n'arrivais pas à trouver un couteau xacto pour couper l'étiquette à la forme du carton, alors j'ai juste utilisé un couteau à steak et mis quelque chose de protecteur sur le plan de travail de la cuisine. Utilisez ce que vous avez !
Étape 4: Défis techniques et considérations futures
Une partie difficile de ce projet consistait à obtenir les valeurs RVB appropriées à lire par la caméra. La webcam que j'ai a des LED incroyablement lumineuses que je ne sais pas comment éteindre sous Linux. Je pense qu'il existe un pilote Windows qui vous permet de les activer et de les désactiver. J'ai essayé de coller les LED avec du ruban électrique et de les laisser allumées. J'ai également testé la robustesse du logiciel en lui montrant non seulement du papier de couleur, mais aussi en écrivant un petit site Web qui montre les couleurs.
Les sons produits par l'ordinateur ont parfois des craquements et des craquements, et cela vient du fait que j'ai très peu d'expérience en programmation audio Linux. La bibliothèque pyaudio crache tout un tas de plaintes concernant le fait que JACK n'est pas installé sur le PC, mais par défaut, JACK ne veut pas fonctionner sans tête (sans ordinateur de bureau et moniteur). C'est une tâche de programmation que je pensais être un raffinement, mais qui n'était pas nécessaire pour exprimer l'essence du piano mécanique que j'avais en tête.
J'avais envisagé d'utiliser une manivelle pour changer les couleurs, et peut-être de les avoir sur un genre de rouleau à pâtisserie, mais cela introduit ses propres complications. Le servo est un peu bruyant, mais fonctionne bien pour l'instant.
Le piano mécanique n'est actuellement programmé que pour jouer 4 notes. C'est parce que le servo ne bouge que de 180 degrés, la plupart des comptines peuvent être jouées avec seulement 3-4 notes, et je ne voulais pas que la roue chromatique soit encombrée de régions de couleur, ce qui pourrait dérouter la caméra. Ainsi, grâce à une combinaison de chance musicale et de contraintes techniques, 4 notes, c'est bien.
Conseillé:
Arduino Piezo Buzzer Piano : 5 étapes
Arduino Piezo Buzzer Piano : Ici, nous allons fabriquer un piano Arduino qui utilise un buzzer piézo comme haut-parleur. Ce projet est facilement évolutif et peut fonctionner avec plus ou moins de notes, selon vous ! Nous allons le construire avec seulement quatre boutons/touches pour plus de simplicité. C'est un projet amusant et facile
Pi-aser un piano laser : 9 étapes
Pi-aser a Laser Piano : Bonjour, je suis étudiant Multimédia & Creative Technology chez Howest Belgium. Vous avez toujours voulu jouer de la musique mais pas comme tout le monde ? Alors cela pourrait être quelque chose pour vous ! J'ai fait un piano avec des lasers. Il suffit de mettre les doigts dessus
Choisissez un joueur : 4 étapes
Pick-a-Player : cette instructable vous guidera sur la façon de faire un décideur Arduino. En appuyant sur un bouton, les LED s'allumeront de manière aléatoire. Après quelques secondes, une seule LED s'allumera. C'est la décision finale prise par l'Arduino
8x16 LED Matrix Pong Game (2 pagaies par version de joueur): 3 étapes
Jeu de Pong à matrice LED 8x16 (2 pagaies par version de joueur): J'ai été inspiré par de nombreuses variantes du jeu Pong classique implémenté sur Arduino en utilisant une matrice LED 8x8. Dans ce instructable, je vais vous montrer comment construire ma version préférée de Pong qui a deux pagaies - attaquant et gardien de but - par joueur
Joueur de piano : 10 étapes (avec photos)
Joueur de piano: El objetivo del proyecto es elaborar un sistema que pueda tocar música preprogramada en las teclas digitales de una aplicación de piano para el iPad 2.Nuestro proyecto consta de un sistema con un grado de libertad de desplazamiento lin