Inhoudsopgave:
- Stap 1: De computerdingen
- Stap 2: De piano
- Stap 3: Montage
- Stap 4: Technische uitdagingen en toekomstige overwegingen
Video: Synesthesia Player Piano - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Deze speler piano speelt muziek met behulp van een kleurenwiel en een camera! Beelden worden door de camera vastgelegd, verwerkt en geïnterpreteerd als muzieknoten. Op dit moment is het geprogrammeerd om kinderliedjes te spelen die kunnen worden gewijzigd door een nieuwe Arduino-schets te uploaden die aangeeft welke noten moeten worden gespeeld (welke kleuren aan de camera moeten worden getoond).
De ingebouwde Linux-pc start een service bij het opstarten die een foto maakt met een camera, een functie berekent van de RGB-waarden in de afbeelding en een geluid uitvoert op basis van de retourwaarde van de functie. Voordat het geluid wordt afgespeeld, stuurt het een signaal naar een Arduino om een servo te draaien, waarbij de kleur wordt weergegeven die overeenkomt met de volgende te spelen noot. Dan begint de lus opnieuw, wordt er een foto gemaakt, wordt het kleurenwiel gedraaid en wordt een geluid tot in het oneindige afgespeeld.
Dit project is een leuke manier om muziek, het programmeren van moderne Linux-systemen, het programmeren van microcontrollers, inkscape-doodling, lasersnijden en het hergebruiken van een aantal rommelkartonnen dozen te integreren.
Alle code en inkscape-SVG's zijn beschikbaar op github op:
github.com/melvyniandrag/pyMusic
Gebruikte materialen:
- Blanco witte etiketten
- Kartonnen doos
- webcam
- kleurpotloden
- Arduino
- Beagleboard-xM
- Draden
- Seriële kabel
- Basiskennis van beeldverwerking en muziek
Stap 1: De computerdingen
Aan boord heb je een kleine Linux-compatibele computer nodig, zoals een Raspberry Pi. Ik gebruikte een oude BeagleBoard-xM omdat ik die toevallig had liggen en ik al een besturingssysteem op de SD-kaart had. Je kunt alles gebruiken, zolang het maar een webcam aankan, OpenCV kan draaien (de computer vision-bibliotheek die wordt gebruikt om afbeeldingen van het kleurenwiel te maken en te verwerken) en een audio-uitgang heeft.
Ik heb het besturingssysteem ingesteld om de python-code uit te voeren die afbeeldingen vastlegt bij het opstarten na een systemd-zelfstudie. Om het script uit te voeren, moet u sudo apt-get install python-pyaudio python-opencv gebruiken om de aangegeven bibliotheken te krijgen. Je moet ook pip install numpy pyserial installeren om die bibliotheken te krijgen. pyaudio wordt gebruikt om geluiden af te spelen, opencv wordt gebruikt voor het maken en verwerken van afbeeldingen, numpy wordt ook gebruikt voor beeldverwerking en pyserial is nodig voor communicatie met de Arduino.
De Arduino wordt gebruikt voor het draaien van de servomotor waarop het kleurenwiel is gemonteerd. Als je een Raspberry Pi had, zou je de GPIO-pinnen daar kunnen gebruiken en de Arduino weglaten, maar je zou de Python-code moeten aanpassen.
Op de afbeeldingen zie je het technologische lef van de operatie en een paar codefragmenten.
Stap 2: De piano
Ik maakte de piano van karton uit een paar oude dozen die ik had. Ik heb het geluk in de buurt van een makerspace te wonen met een lasersnijder. Een heel jaar lang heb ik me afgevraagd waar je in godsnaam een lasersnijder voor zou willen hebben, en het blijkt dat ik er eindelijk een gebruik voor heb gevonden.
Ik heb de computer, arduino en servo gemeten, zodat ik wist hoeveel ruimte ik nodig zou hebben, de onderdelen van de piano in inkscape getekend en ze op de lasersnijder uitgesneden. (Bewerken: ik had geen karton meer om de behuizing de computer en arduino te laten vasthouden en dus heb ik ze er niet in gedaan. Ze zitten aan de buitenkant van de behuizing. Maakt niet uit, had ergens een andere doos kunnen krijgen, maar dat deed het niet maakt uiteindelijk niet uit.)
De stukken zijn in elkaar gezet met epoxy.
Stap 3: Montage
Hier zijn enkele afbeeldingen van de piano die in elkaar wordt gezet en ingekleurd. De printer had geen inkt meer, dus ik kon de kleuren niet op de witte labels afdrukken zoals ik had gepland. Dus ik gebruikte de kleurpotloden van mijn dochter. En ik kon geen xacto-mes vinden om het etiket in de vorm van het karton te snijden, dus ik gebruikte gewoon een steakmes en legde iets beschermends op het aanrecht. Gebruik wat je hebt!
Stap 4: Technische uitdagingen en toekomstige overwegingen
Een uitdagend onderdeel van dit project was het verkrijgen van de juiste RGB-waarden om door de camera te worden gelezen. De webcam die ik heb heeft een aantal ongelooflijk heldere LED's waarvan ik niet weet hoe ik ze uit moet zetten in Linux. Ik denk dat er een Windows-stuurprogramma is waarmee je ze kunt in- en uitschakelen. Ik heb geëxperimenteerd met het afplakken van de LED's met elektrische tape en ze aan te laten. Ik heb de software ook getest op robuustheid door het niet alleen gekleurd papier te laten zien, maar ook door een kleine website te schrijven die kleuren laat zien.
De geluiden die door de computer worden geproduceerd, bevatten soms ploffen en knetteren, en dit komt door het feit dat ik heel weinig ervaring heb met Linux-audioprogrammering. De pyaudio-bibliotheek spuugt een hele reeks klachten uit dat JACK niet op de pc is geïnstalleerd, maar standaard wil JACK niet headless draaien (zonder een gui-desktop en een monitor). Dit is een programmeertaak waarvan ik dacht dat het een verfijning was, maar die niet nodig was om de essentie uit te drukken van de pianola die ik in gedachten had.
Ik had overwogen om een handslinger te gebruiken om de kleuren te veranderen, en misschien om ze op een soort deegroller te hebben, maar dat brengt zijn eigen complicaties met zich mee. De servo is een beetje luidruchtig, maar werkt prima voor nu.
De player piano is momenteel slechts geprogrammeerd om 4 noten te spelen. Dit komt omdat de servo maar 180 graden beweegt, de meeste kinderliedjes kunnen worden gespeeld met slechts 3-4 noten, en ik wilde niet dat het kleurenwiel vol zou worden met kleurgebieden, waardoor de camera mogelijk in de war zou raken. Dus door een combinatie van muzikaal geluk en technische beperkingen, is 4 noten prima.
Aanbevolen:
De Arduino-piano: 3 stappen
De Arduino-piano: deze "piano" kan een octaaf van een echte piano spelen. Het indrukken van knoppen staat voor het indrukken van een toets op de piano. Het geluid wordt doorgegeven via een piëzo-luidspreker
Hoe maak je een draadloze Air Piano-handschoen: 9 stappen
Hoe maak je een draadloze luchtpianohandschoen: Doelen en functies: Ons draagbare technologieproject is om een draadloze luchtpianohandschoen te maken met gesynchroniseerde lichten met behulp van basiselektronica, een microcontroller zoals een HexWear en een laptop met Arduino en Max 8-software . Het gebruik van ons proj
Toetsenbord Piano: 3 stappen
Keypad Piano: Deze tutorial laat zien hoe je een basispiano met 8 noten maakt met een 4x4-toetsenbord en een passieve zoemer. In dit project spelen de toetsen 1 tot en met 8 noten op de piano en spelen de A-D-knoppen vooraf ingestelde melodieën
Geautomatiseerde piano: 5 stappen
Geautomatiseerde piano: ik wilde een piano maken die automatisch kan spelen door onmiddellijk naar mijn muziek te luisteren. Dus probeerde ik het met arduino uno die ik had liggen. Het zou veel beter kunnen zijn met arduino nul met behulp van een eenvoudige frequentiemeterbibliotheek. heb het niet bij
MakeyMakey - Eenvoudige zelfstudie en hoe het werkt! Een piano maken!: 6 stappen
MakeyMakey - Eenvoudige zelfstudie en hoe het werkt! Een piano maken!: *Waarschuwing vooraf* Ik nam de foto's met mijn telefoon en nam vervolgens foto's van mijn telefoon met mijn computer, bij voorbaat excuses voor de vreselijke fotokwaliteit: P Een introductieproject voor de MakeyMakey, samen met hoe een deel ervan werkt . Een piano maken van