Inhoudsopgave:
- Stap 1: Bouw een doos…
- Stap 2: Sluit de knoppen aan
- Stap 3: Optioneel: een bord maken met op- en neerwaartse weerstanden
- Stap 4: De Python-code
- Stap 5: Je Rapsi. instellen
Video: Een jukebox voor de allerjongsten Aka Raspi-Music-Box - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Geïnspireerd door de instructable "Raspberry-Pi-based-RFID-Music-Robot" die een muziekspeler beschrijft die ROALDH voor zijn 3-jarige bouwt, besloot ik een jukebox te bouwen voor mijn nog jongere kinderen. Het is eigenlijk een doos met 16 knoppen en een Raspi 2 erin die liedjes afspeelt via de aangesloten stereo wanneer een van de knoppen wordt ingedrukt.
Wat je nodig hebt:
- Een Raspberry Pi met voeding
- 16 knoppen - het soort dat tijdelijk wordt gesloten wanneer je erop drukt (of hoeveel knoppen je ook wilt - advies: niet meer dan je invoerpinnen hebt …;)) Ik gebruikte deze: knop voor € 0,50)
- wat dunne draad
- één weerstand van 10kOhm en één weerstand van 1kOhm per knop (tenzij je wilt vertrouwen op de interne pull-up/down-weerstanden van de Raspi, dan kun je dit overslaan)
- stripbord
- vrouwelijke kop (2x20 pin)
- wat dun hout om de doos te bouwen (ik gebruikte 2 vellen 5x400x400 mm voor de voor- en achterkant plus een strook van 2000x50x5 mm om de zijkanten uit te snijden)
- 24 schroeven en een beetje lijm om de doos in elkaar te zetten
- wat verf om het kleurrijk te maken
- audiokabel om de Raspi op je stereo of actieve luidsprekers aan te sluiten (jack naar wat je maar nodig hebt aan de andere kant)
- gereedschap: een soldeerbout, draadknipper, idealiter draadstripper, zaag, boor, schroevendraaier, penseel …
- optioneel: USB-geluidskaart als je wilt dat de muziek goed klinkt
- optioneel: wifi-kaart als je verbinding wilt maken met een oude Raspi zonder de doos te openen
Houd er rekening mee dat dit mijn eerste instructable is en dat ik dit project al een tijdje geleden heb gedaan … Ik ben het aan het maken omdat ik steeds wordt gevraagd naar de VLC-manier om de nummers te spelen in het commentaargedeelte van de hierboven genoemde instructable (de mplayer die daar wordt gebruikt wordt voor zover ik weet niet meer ondersteund). Ik weet dat deze instructies niet erg goed zijn, maar ik hoop dat je het kunt volgen… zo niet, kijk dan ook naar de originele instructable en laat hieronder opmerkingen achter om me te vertellen waar je bent vastgelopen… Ik zal dan proberen te verbeteren…
Stap 1: Bouw een doos…
Dus het eerste wat je moet doen is een doos bouwen… Ik heb de mijne behoorlijk groot gemaakt omdat ik wat ruimte onder elke knop liet voor een label… Ik was van plan wat foto's voor elk nummer af te drukken, ze misschien te lamineren en ze blauw te labelen onder de knoppen… geleerde les: tegen de tijd dat je de labels afdrukt, kennen je kinderen alle liedjes door en door en eisen ze dat je er een paar verandert… Dus de volgende keer zou ik een kleinere doos bouwen en de knoppen dichter bij elkaar plaatsen…
Dus, terug naar mijn doos… ik kocht twee platen multiplex 400 x 400 x 5 mm en een strook van 2000 x 50 x 5 mm… toen de eerste, belangrijkste stap: mijn dochter mocht het voorpaneel schilderen in haar keuze van kleuren…:) Terwijl ze aan het schilderen was, sneed ik het lange stuk in 5 stroken - twee 400 mm lang, twee 390 mm lang en de restjes…;) deze plakte ik op de achterkant van het pas geverfde vel… toen boorde ik 12 gaten van de buitenkant en schroefde 12 schroeven in … Ik lijnde toen zorgvuldig het andere blad aan de achterkant uit, boorde nog eens 12 gaten voor nog eens 12 schroeven om de doos te sluiten toen ik klaar was. (Ik weet dat 12 schroeven misschien een beetje overdreven zijn, maar kinderen zijn sterk …:))
Aan de ene kant heb ik een vijl gebruikt (je zou een dremel kunnen gebruiken om dingen te versnellen) om een stukje hout uit te snijden om door de kabels te gaan. Ik heb toen ook de gaten voor de 16 knoppen geboord en geïnstalleerd.
Stap 2: Sluit de knoppen aan
Dus nu heb je een doos met 16 knoppen … vervolgens moet je deze aansluiten … Ik heb een van hun polen op een daisy chain-manier met aarde verbonden. In het ideale geval heb je kleine connectoren om dit te doen … Ik heb ze erop gesoldeerd, wat een grote nachtmerrie was en nog meer problemen zal veroorzaken als ik ooit een van de knoppen moet verwijderen. Daarna bevestigde ik hun andere polen elk aan een rode draad … Deze heb ik vervolgens gesoldeerd aan het connectorbord dat je in het midden kunt zien liggen …
Welke knop op welke pin? Knop 1-16 in deze volgorde: GPIO 18. 27, 17, 04, 23, 24, 22, 05, 16, 12, 06, 13, 21, 20, 19, 26. Controleer ook de "catch button press events" sectie" in de code later.
(Vraag me alsjeblieft niet waar de opgerolde draden voor waren … ik kan het me niet herinneren)
Stap 3: Optioneel: een bord maken met op- en neerwaartse weerstanden
Als je niet zeker weet wat pull-up en pull-down weerstanden zijn, zou je gemakkelijk heel veel informatie online moeten vinden. De raspi heeft een aantal ingebouwde of je kunt externe doen zoals ik hier deed. Deze stap is optioneel omdat ik denk dat je deze niet echt nodig hebt.
Dus waarom deed ik het? Soms begon de muziek te spelen als ik apparaten in de flat in- of uitschakelde. Ik dacht eerst dat het elektromagnetische golven oppikte of zoiets. Dus voegde ik de pull-up/down weerstanden toe… Omdat dit de situatie niet verbeterde, heb ik er nog wat condensatoren aan toegevoegd. Dit hielp nog steeds niet… het volgende wat ik wilde proberen was de binnenkant van de doos af te dekken met aluminiumfolie als afscherming. Omdat het probleem stopte toen we verhuisden, heb ik dit uiteindelijk nooit geprobeerd … Dus wat was het probleem? Ik weet het niet… het kunnen variaties in de hoogspanningsleiding zijn geweest?
Conclusie: Ik zou je aanraden om eerst de knoppen gewoon direct aan te sluiten (je ziet later in de code welke knop op welke pin komt) en deze stap alleen te doen als je wat problemen hebt. Ik hoop dat je op de foto's hierboven kunt zien hoe ik dit heb gedaan. In principe is er een balk om op de header in het midden te plaatsen en vervolgens heb ik aan elke kant de twee weerstanden en de kabels van de knoppen in één rij aangesloten.
Stap 4: De Python-code
Bijgevoegd vind je de code (in python) die de muziekdoos beheert. Ik heb nogal wat opmerkingen toegevoegd, dus hopelijk spreekt het voor zich. Voor het geval hier een korte uitleg. Het is het beste om het gedeelte met variabelen bovenaan te lezen en dan helemaal naar beneden te gaan.
Onderaan vind je een lus, die de hele tijd doorloopt. Het controleert eerst of een bepaalde reeks knoppen is ingedrukt - dit was mijn manier om wat ouderlijk toezicht te gebruiken. Dan zijn er nog de functies die de muziek afspelen.
Boven de hoofdlus vindt u enkele gebeurtenisdetecties - deze worden uitgevoerd als een van de knoppen wordt ingedrukt. Elke knop roept de ButtonPress-functie aan en geeft een ID door.
Dus hoe zorg je ervoor dat het de muziek speelt? Om het simpel te houden, heb ik voor elke knop een map gegenereerd. Welke mp3's je ook in deze mappen plaatst, de functie wordt toegevoegd aan de afspeellijst.
Let op, als je geen fysieke pull-up weerstanden hebt gebruikt, moet je de sectie met de BCM-nummering hierin veranderen:
# setup met BCM-nummeringGPIO.setmode(GPIO. BCM) GPIO.setup(04, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (17, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(27, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(22, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(05, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(06, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(13, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(19, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(26, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (18, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (23, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (24, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (12, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (16, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (20, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(21, GPIO. IN, pull_up_down = GPIO. PUD_UP)
Stap 5: Je Rapsi. instellen
Je moet natuurlijk ook de raspi instellen … Ik heb zojuist de standaard Noop-installatie gebruikt. Ik weet zeker dat je heel veel instructies zult vinden over hoe je dat moet doen …
Om python te gebruiken, moet je "sudo apt-get install python-dev"
Mijn programma gebruikt VLC om de muziek af te spelen:
- Ik heb de Python-verbinding hier vandaan (hoop dat dit nog steeds up-to-date is):
- Toen heb ik het geïnstalleerd met behulp van "sudo python setup.py install"
- Vervolgens VLC "sudo apt-get install vlc" geïnstalleerd
- Plak de bestanden vlc.py en vlc.pyc in dezelfde map als uw programma
- Meer info op
Mijn aantekeningen zeggen dat je ook het volgende moet installeren om toegang te krijgen tot de GPIO-pinnen van python (maar dit kan verouderd zijn):
- wget https://www.airspayce.com/mikem/bcm2835/bcm2835-1…. zxvf bcm2835-1.xx.tar.gz
- cd bcm2835-1.xx
- ./configureren
- maken
- sudo check
- sudo make install
Om uw programma te laten werken, moet u "sudo python uwbestandsnaam.py" aanroepen.
Aanbevolen:
HiFi-luidsprekers - een gids voor een eersteklas build: 8 stappen (met afbeeldingen)
HiFi-luidsprekers - een gids voor een eersteklas constructie: ik besloot dit Instructable te schrijven nadat ik veel te veel tijd had besteed aan het zoeken naar volledige informatie van goede kwaliteit voor het bouwen van HiFi-luidsprekerkasten waarvoor geen uitgebreide ervaring of expertise nodig was. Er zijn al enkele geweldige Instructables
Idee voor doe-het-zelf-activiteit voor weerstations voor 12+ jaar: 4 stappen
Idee voor doe-het-zelf-weerstationactiviteit voor 12-plussers: in deze activiteit zullen deelnemers hun weerstation opzetten, de lucht in sturen en de opnames (licht, temperatuur, vochtigheid) in realtime volgen via de Blynk-app. Bovendien leert u hoe u de geregistreerde waarden publiceert
Een Zalman VF900-Cu-koellichaam installeren op een Radeon X800 XT Mac Edition voor gebruik in een Apple G5 Tower: 5 stappen
Een Zalman VF900-Cu-koellichaam installeren op een Radeon X800 XT Mac Edition voor gebruik in een Apple G5 Tower: de standaard disclaimer - Dit is hoe ik het deed. Het werkte voor mij. Als je je G5, Radeon X800 XT, of je huis, auto, boot, enz. laat ontploffen, ben ik niet aansprakelijk! Ik geef informatie op basis van mijn eigen kennis en ervaring. Ik geloof dat alle st
Overtuig uzelf om gewoon een 12V-naar-AC-lijnomvormer te gebruiken voor LED-lichtsnoeren in plaats van ze opnieuw te bedraden voor 12V: 3 stappen
Overtuig uzelf om gewoon een 12V-naar-AC-lijnomvormer te gebruiken voor LED-lichtsnoeren in plaats van ze opnieuw te bedraden voor 12V.: Mijn plan was eenvoudig. Ik wilde een door de muur aangedreven LED-lichtsnoer in stukken knippen en vervolgens opnieuw bedraden om 12 volt te laten lopen. Het alternatief was om een omvormer te gebruiken, maar we weten allemaal dat ze vreselijk inefficiënt zijn, toch? Rechts? Of zijn ze?
Voeg een pc-synchronisatie-aansluiting toe aan een Nikon Sc-28 Ttl-kabel (gebruik de automatische instellingen voor een aan-cameraflits en trigger-uit-cameraflitsen!!): 4 stappen
Voeg een Pc Sync-aansluiting toe aan een Nikon Sc-28 TTL-kabel (gebruik Auto-instellingen voor een on Camera Flash en Trigger Off Camera Flashes !!): in deze instructable laat ik je zien hoe je een van die vervelende gepatenteerde 3-pins TTL-connectoren op de zijkant van een Nikon SC-28 off-camera TTL-kabel en vervang deze door een standaard pc-synchronisatieconnector. hierdoor kunt u een speciale flitser gebruiken, s