Innholdsfortegnelse:
- Trinn 1: Bygg en boks …
- Trinn 2: Tråd opp knappene
- Trinn 3: Valgfritt: Lag et brett med trekk opp og ned motstand
- Trinn 4: Python -koden
- Trinn 5: Konfigurere Rapsi
Video: A Juke Box for the Very Young Aka Raspi-Music-Box: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Inspirert av den instruerbare "Raspberry-Pi-based-RFID-Music-Robot" som beskriver en musikkspiller ROALDH-bygningen for 3-åringen, bestemte jeg meg for å bygge en jukeboks for mine enda yngre barn. Det er i utgangspunktet en boks med 16 knapper og en Raspi 2 inni som spiller sanger via det vedlagte stereoanlegget når du trykker på noen av knappene.
Hva trenger du:
- En bringebær Pi med strømforsyning
- 16 knapper - den typen som midlertidig lukkes når du trykker på den (eller hvor mange knapper du måtte ønske - råd: ikke mer enn du har inngangspinner …;)) Jeg brukte denne: knappen for € 0,50)
- litt tynn tråd
- en 10kOhm og en 1kOhm resister per knapp (med mindre du vil stole på de interne pull-up/down-motstandene til Raspi, så kan du hoppe over dette)
- stripboard
- kvinnelig topptekst (2x20 pin)
- litt tynt tre for å bygge boksen (jeg brukte 2 ark 5x400x400mm på forsiden og baksiden pluss en 2000x50x5mm stripe å kutte sidene fra)
- 24 skruer og litt lim for å sette esken sammen
- litt maling for å gjøre det fargerikt
- lydkabel for å koble Raspi til stereoanlegget eller aktive høyttalere (kontakt til det du trenger i den andre enden)
- verktøy: et loddejern, trådklippere, wire stripper ideelt sett, sag, bor, skrutrekker, pensel …
- valgfritt: USB -lydkort hvis du vil at musikken skal høres bra ut
- valgfritt: wifi -kort hvis du vil koble til en gammel Raspi uten å åpne boksen
Vær oppmerksom på at dette er min første instruks og jeg gjorde dette prosjektet for en stund siden … støttes ikke lenger så vidt jeg vet). Jeg vet at disse instruksjonene ikke er veldig gode, men håper det er mulig for deg å følge … hvis ikke, kan du også se på den originale instruksjonsboken og legge igjen kommentarer nedenfor som forteller meg hvor du ble sittende fast … Jeg vil da prøve å forbedre meg …
Trinn 1: Bygg en boks …
Så det første du trenger å gjøre er å bygge en eske … Jeg gjorde min ganske stor fordi jeg la litt plass under hver knapp for en etikett … Jeg planla å skrive ut noen bilder for hver sang, laminere dem kanskje og blå merke dem under knapper … leksjon: Når du skriver ut etikettene, kan barna dine alle sangene hardt og krever at du endrer noen … Så neste gang ville jeg bygge en mindre eske og sette knappene nærmere hverandre …
Så, tilbake til esken min … Jeg kjøpte to ark med kryssfiner 400 x 400 x 5 mm og en stripe på 2000 x 50 x 5 mm … så det første, viktigste trinnet: datteren min fikk male frontpanelet etter eget valg farger …:) Mens hun malte, skar jeg den lange biten i 5 strimler - to 400 mm lange, to 390 mm lange og de venstre overs… …) disse limte jeg på baksiden av det nymalte arket … så boret jeg 12 hull fra utsiden og skrudd inn 12 skruer … Jeg justerte deretter forsiktig det andre arket på baksiden, boret ytterligere 12 hull for ytterligere 12 skruer for å lukke esken når jeg var ferdig. (Jeg vet at 12 skruer kan være litt overkill, men barna er sterke …:))
På den ene siden brukte jeg en fil (du kan bruke en dremel for å få fart på ting) for å kutte ut litt av treverket for å passere gjennom kablene. Jeg har da også boret hullene til de 16 knappene og installert dem.
Trinn 2: Tråd opp knappene
Så nå har du en eske med 16 knapper … neste må du koble disse opp … Jeg koblet en av polene til jord på en tusenfryd kjede. Ideelt sett vil du ha små kontakter for å gjøre det … Jeg loddet dem på, som var et stort mareritt og vil forårsake enda flere problemer hvis jeg noen gang må ta ut noen av knappene. Så festet jeg de andre polene til en rød ledning hver … Disse loddet jeg deretter til kontaktplaten du kan se ligge i midten …
Hvilken knapp til hvilken pin? Knapp 1-16 i denne rekkefølgen: GPIO 18. 27, 17, 04, 23, 24, 22, 05, 16, 12, 06, 13, 21, 20, 19, 26. Vennligst sjekk også "fangstknappens trykkhendelser" seksjon "i koden senere.
(Ikke spør meg hva de sammenrullede ledningene var til … jeg kan ikke huske)
Trinn 3: Valgfritt: Lag et brett med trekk opp og ned motstand
Hvis du er usikker på hva motstander er for å trekke opp og ned, bør du enkelt finne masse informasjon på nettet. Raspi har noen innebygde, eller du kan gjøre eksterne som jeg gjorde her. Dette trinnet er valgfritt, da jeg ikke tror du virkelig trenger det.
Så hvorfor gjorde jeg det? Noen ganger begynte musikken å spille når jeg slo av/på apparater i leiligheten. Jeg trodde først det var å plukke opp elektromagnetiske bølger eller noe. Så jeg la til pull-up/down-motstandene … Siden dette ikke forbedret situasjonen, la jeg til noen kondensatorer i tillegg. Dette hjalp fortsatt ikke … det neste jeg ville prøve var å dekke innsiden av esken med aluminiumsfolie som skjerming. Da problemet stoppet da vi flyttet hus, endte jeg aldri med å prøve dette … Så hva var problemet? Jeg vet ikke … det kan ha vært variasjoner i kraftledningen?
Konklusjon: Jeg vil råde deg til å bare koble knappene direkte (du vil se i koden senere hvilken knapp som går på hvilken pin) og bare gjøre dette trinnet hvis du har noen problemer. Jeg håper du kan se på bildene ovenfor hvordan jeg gjorde dette. I utgangspunktet er det en stolpe som skal legges på toppteksten i midten, og deretter koblet jeg på hver side de to motstandene og kablene fra knappene i en rad.
Trinn 4: Python -koden
Vedlagt her finner du koden (i python) som administrerer musikkboksen. Jeg la til ganske mange kommentarer, så forhåpentligvis er det selvforklarende. Bare i tilfelle her en rask forklaring. Det er best å begynne å lese variabeldelen øverst og deretter hoppe helt til bunnen.
Nederst finner du en løkke, som går hele tiden. Den sjekker først om en viss sekvens av knapper ble trykket - dette var min måte å bruke litt foreldrekontroll på. Så er det funksjonene som spiller musikken.
Over hovedløkken finner du noen hendelsesdetekter - disse blir utført hvis du trykker på en av knappene. Hver knapp kaller ButtonPress -funksjonen og sender en identifikator.
Så hvordan få den til å spille musikk? For å gjøre det enkelt, genererte jeg bare en mappe for hver knapp. Uansett hvilken mp3 du legger i disse mappene, legges funksjonen til i spillelisten.
Vær oppmerksom på at hvis du ikke brukte fysiske trekkmotstander, må du endre seksjonen med BCM -nummereringen til dette:
# oppsett ved hjelp av BCM -nummereringGPIO.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)
Trinn 5: Konfigurere Rapsi
Du må selvfølgelig også sette opp raspi … Jeg brukte nettopp standard Noop -installasjon. Jeg er sikker på at du vil finne mange instruksjoner om hvordan du gjør det …
For å bruke python må du "sudo apt-get install python-dev"
Programmet mitt bruker VLC for å spille musikken:
- Jeg fikk Python-tilkoblingen herfra (håper dette fortsatt er oppdatert):
- Da installerte jeg den ved å bruke "sudo python setup.py install"
- Deretter installerte VLC "sudo apt-get install vlc"
- Fest filene vlc.py og vlc.pyc i den samme katalogen som programmet ditt
- Mer informasjon på
Mine notater sier at du også må installere følgende for å få tilgang til GPIO -pinnene fra python (men dette kan være utdatert):
- wget https://www.airspayce.com/mikem/bcm2835/bcm2835-1…. zxvf bcm2835-1.xx.tar.gz
- cd bcm2835-1.xx
- ./konfigurasjon
- gjøre
- sudo sjekk
- sudo gjør install
For å få programmet til å kjøre, må du ringe "sudo python yourfilename.py".
Anbefalt:
Easy Very Low Power BLE i Arduino del 2 - Temperatur/fuktighetsmonitor - Rev 3: 7 trinn
Easy Very Low Power BLE i Arduino del 2 - Temperatur/fuktighetsmonitor - Rev 3: Oppdatering: 23. november 2020 - Første utskifting av 2 x AAA -batterier siden 15. januar 2019, dvs. 22 måneder for 2xAAA Alkaline Oppdatering: 7. april 2019 - Rev 3 av lp_BLE_TempHumidity, legger til dato/klokkeslett, ved hjelp av pfodApp V3.0.362+, og automatisk struping når
Mega RasPi - en Raspberry Pi i en Sega Mega Drive / Genesis: 13 trinn (med bilder)
Mega RasPi - en Raspberry Pi i en Sega Mega Drive / Genesis: Denne guiden tar deg gjennom konverteringen av en gammel Sega Mega Drive til en retro spillkonsoll, ved hjelp av en Raspberry Pi. Jeg har brukt utallige timer i barndommen på å spille videospill på min Sega Mega Drive. De fleste av vennene mine hadde en også, så vi ville
Easy Very Low Power BLE in Arduino Part 3 - Nano V2 Replacement - Rev 3: 7 Steps (med bilder)
Easy Very Low Power BLE in Arduino Part 3 - Nano V2 Replacement - Rev 3: Update: 7. April 2019 - Rev 3 of lp_BLE_TempHumidity, legger til dato/klokkeslett, ved hjelp av pfodApp V3.0.362+, og automatisk struping når du sender dataUpdate: 24. mars 2019 - Rev 2 av lp_BLE_TempHumidity, legger til flere plottalternativer og i2c_ClearBus, legger til GT832E
UDuino: Very Low Cost Arduino Compatible Development Board: 7 trinn (med bilder)
UDuino: Very Low Cost Arduino Compatible Development Board: Arduino -plater er flotte for prototyping. De blir imidlertid ganske dyre når du har flere samtidige prosjekter eller trenger mange kontrollerkort for et større prosjekt. Det er noen gode, billigere alternativer (Boarduino, Freeduino), men
The Very Basics of a Div-based Website: 7 Steps
The Very Basics of a Div-based Website: Denne instruksjonsfilen vil vise deg det grunnleggende om hvordan du bygger et nettsted med divs. Fordi tabeller som brukes for layout er onde!: PFor å forstå dette instruerbare må du kjenne grunnleggende html og css. Hvis du ikke forstår noe, kan du