Spisu treści:

Szafa grająca dla bardzo młodych Aka Raspi-Music-Box: 5 kroków
Szafa grająca dla bardzo młodych Aka Raspi-Music-Box: 5 kroków

Wideo: Szafa grająca dla bardzo młodych Aka Raspi-Music-Box: 5 kroków

Wideo: Szafa grająca dla bardzo młodych Aka Raspi-Music-Box: 5 kroków
Wideo: Part 3 - Babbitt Audiobook by Sinclair Lewis (Chs 10-15) 2024, Listopad
Anonim
Szafa grająca dla bardzo młodych… Aka Raspi-Music-Box
Szafa grająca dla bardzo młodych… Aka Raspi-Music-Box

Zainspirowany instruktażem „Raspberry-Pi-based-RFID-Music-Robot” opisującym odtwarzacz muzyczny, który ROALDH zbudował dla jego 3-latka, postanowiłem zbudować szafę grającą dla moich jeszcze młodszych dzieci. Jest to w zasadzie pudełko z 16 przyciskami i Raspi 2 w środku, które odtwarza utwory za pomocą dołączonego zestawu stereo po naciśnięciu dowolnego przycisku.

Czego potrzebujesz:

  • Raspberry Pi z zasilaczem
  • 16 przycisków - takich, które chwilowo zamykają się po naciśnięciu (lub ile chcesz przycisków - radzę: nie więcej niż masz pinów wejściowych…;)) Użyłem tego: przycisk za 0,50 €
  • jakiś cienki drut
  • jeden rezystor 10kOhm i jeden 1kOhm na przycisk (chyba że chcesz polegać na wewnętrznych rezystorach pull-up/down Raspi, możesz to pominąć)
  • striptizerka
  • złącze żeńskie (2x20 pin)
  • trochę cienkiego drewna do budowy pudełka (użyłem 2 arkuszy 5x400x400mm na przód i tył plus pasek 2000x50x5mm do wycięcia boków)
  • 24 śruby i odrobina kleju do złożenia pudełka
  • trochę farby, aby było kolorowe
  • kabel audio do podłączenia Raspi do stereo lub aktywnych głośników (z drugiej strony podłącz do czegokolwiek potrzebujesz)
  • narzędzia: lutownica, nożyce do drutu, ściągacz izolacji idealnie, piła, wiertarka, śrubokręt, pędzel…
  • Opcjonalnie: karta dźwiękowa USB, jeśli chcesz, aby muzyka brzmiała dobrze
  • opcjonalnie: karta wifi, jeśli chcesz połączyć się ze starym Raspi bez otwierania pudełka

Zwróć uwagę, że jest to moja pierwsza instrukcja i zrobiłem ten projekt jakiś czas temu… Robię to, ponieważ ciągle jestem pytany o sposób odtwarzania utworów przez VLC w sekcji komentarzy w instrukcji wspomnianej powyżej (używany tam mplayer nie jest już obsługiwany, o ile wiem). Wiem, że te instrukcje nie są zbyt dobre, ale mam nadzieję, że możesz je zastosować… jeśli nie, spójrz również na oryginalną instrukcję i zostaw komentarz poniżej, mówiąc mi, gdzie utknąłeś… Następnie spróbuję poprawić…

Krok 1: Zbuduj pudełko…

Zbuduj pudełko…
Zbuduj pudełko…
Zbuduj pudełko…
Zbuduj pudełko…

Więc pierwszą rzeczą, którą musisz zrobić, to zbudować pudełko… Zrobiłem moje dość duże, ponieważ zostawiłem trochę miejsca pod każdym przyciskiem na etykietę… Planowałem wydrukować kilka zdjęć do każdego utworu, może je zalaminować i oznaczyć na niebiesko pod spodem przyciski… lekcja wyciągnięta: zanim wydrukujesz etykiety, twoje dzieci dobrze znają wszystkie piosenki i domagają się zmiany niektórych… Więc następnym razem zbuduję mniejsze pudełko i złożę przyciski bliżej siebie…

A więc wracając do mojego pudełka… kupiłem dwa arkusze sklejki 400 x 400 x 5 mm i listwę 2000 x 50 x 5 mm… potem pierwszy, najważniejszy krok: moja córka mogła pomalować front w wybranym przez siebie kolory…:) Kiedy malowała, pociąłem długi bit na 5 pasków - dwa 400 mm, dwa 390 mm i lewy wierzch…;) te przykleiłem z tyłu świeżo pomalowanej blachy… potem wywierciłem 12 otworów od zewnątrz i wkręciłem 12 śrub… Następnie ostrożnie wyrównałem drugi arkusz z tyłu, wywierciłem kolejne 12 otworów na kolejne 12 śrub, aby zamknąć pudełko, gdy skończyłem. (Wiem, że 12 śrub może być trochę przesadą, ale dzieci są silne…:))

Z jednej strony użyłem pilnika (można użyć dremela, aby przyspieszyć działanie), aby wyciąć kawałek drewna, aby przejść przez kable. Następnie wywierciłem również otwory na 16 przycisków i zainstalowałem je.

Krok 2: Podłącz przyciski

Podłącz przyciski
Podłącz przyciski

Więc teraz masz pudełko z 16 przyciskami… następnie musisz je połączyć… Podłączyłem jeden z ich biegunów do uziemienia w sposób łańcuchowy. Idealnie byłoby, gdybyś miał małe złącza, aby to zrobić… Przylutowałem je, co było dużym koszmarem i spowoduje jeszcze więcej problemów, jeśli kiedykolwiek będę musiał wyjąć któryś z przycisków. Potem przymocowałem ich inne bieguny do każdego czerwonego przewodu… Te następnie przylutowałem do płytki konektorowej, którą widać leżącą pośrodku…

Który przycisk do którego pinu? Przycisk 1-16 w tej kolejności: GPIO 18. 27, 17, 04, 23, 24, 22, 05, 16, 12, 06, 13, 21, 20, 19, 26. Proszę również sprawdzić zdarzenia naciśnięcia przycisku "catch button" sekcji” w kodzie później.

(Proszę nie pytać, do czego służyły zwinięte przewody… nie pamiętam)

Krok 3: Opcjonalnie: wykonanie płyty z rezystorami podciągającymi i podciągającymi

Opcjonalnie: wykonanie płyty z rezystorami podciągającymi i podciągającymi
Opcjonalnie: wykonanie płyty z rezystorami podciągającymi i podciągającymi
Opcjonalnie: wykonanie płyty z rezystorami podciągającymi i podciągającymi
Opcjonalnie: wykonanie płyty z rezystorami podciągającymi i podciągającymi

Jeśli nie masz pewności, czym są rezystory pull up i pull down, powinieneś łatwo znaleźć mnóstwo informacji w Internecie. Raspi ma kilka wbudowanych lub możesz zrobić zewnętrzne, tak jak ja tutaj. Ten krok jest opcjonalny, ponieważ myślę, że naprawdę go nie potrzebujesz.

Więc dlaczego to zrobiłem? Czasami muzyka zaczynała grać, gdy włączałem/wyłączałem urządzenia w mieszkaniu. Najpierw pomyślałem, że odbiera fale elektromagnetyczne czy coś. Dodałem więc rezystory pull-up/down… Ponieważ nie poprawiło to sytuacji, dodałem dodatkowo kilka kondensatorów. To nadal nie pomogło… Następną rzeczą, którą chciałem spróbować, było pokrycie wnętrza pudełka folią aluminiową jako ekran. Ponieważ problem ustał, gdy przeprowadziliśmy się do domu, nigdy nie spróbowałem tego… Więc na czym polegał problem? Nie wiem… to mogły być zmiany w linii energetycznej?

Wniosek: Radziłbym najpierw po prostu podłączyć przyciski bezpośrednio (później zobaczysz w kodzie, który przycisk znajduje się na którym pin) i wykonaj ten krok tylko wtedy, gdy masz jakieś problemy. Mam nadzieję, że na powyższych zdjęciach widać, jak to zrobiłem. W zasadzie na środku jest listwa do nałożenia na główkę a potem z każdej strony podłączyłem w jednym rzędzie dwa oporniki i kable od przycisków.

Krok 4: Kod Pythona

W załączeniu znajdziesz kod (w Pythonie), który zarządza pozytywką. Dodałem sporo komentarzy, więc mam nadzieję, że jest to oczywiste. Na wszelki wypadek tutaj szybkie wyjaśnienie. Najlepiej rozpocząć czytanie sekcji zmiennych na górze, a następnie przejść do samego dołu.

Na dole znajdziesz pętlę, która cały czas biegnie. Najpierw sprawdza, czy została naciśnięta określona sekwencja przycisków - to był mój sposób na użycie kontroli rodzicielskiej. Następnie są funkcje, które odtwarzają muzykę.

Nad główną pętlą znajdziesz kilka wykrytych zdarzeń - są one wykonywane po naciśnięciu jednego z przycisków. Każdy przycisk wywołuje funkcję ButtonPress przekazując identyfikator.

Więc jak sprawić, by grała muzykę? Aby było to proste, wygenerowałem po prostu jeden folder dla każdego przycisku. Niezależnie od tego, jakie pliki mp3 umieścisz w tych folderach, funkcja zostanie dodana do listy odtwarzania.

Należy pamiętać, że jeśli nie używałeś fizycznych rezystorów podciągających, będziesz musiał zmienić sekcję z numeracją BCM na następującą:

# konfiguracja przy użyciu numeracji BCMGPIO.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)

Krok 5: Konfiguracja Rapsi

Oczywiście będziesz musiał również skonfigurować raspi… Właśnie użyłem standardowej instalacji Noop. Jestem pewien, że znajdziesz mnóstwo instrukcji, jak to zrobić…

Aby korzystać z Pythona, musisz "sudo apt-get install python-dev"

Mój program używa VLC do odtwarzania muzyki:

  • Mam połączenie z Pythonem stąd (mam nadzieję, że jest nadal aktualne):
  • Następnie zainstalowałem go za pomocą "sudo python setup.py install"
  • Następnie zainstalowano VLC „sudo apt-get install vlc”
  • Umieść pliki vlc.py i vlc.pyc w tym samym katalogu co twój program
  • Więcej informacji na

Moje notatki mówią, że musisz również zainstalować następujące elementy, aby uzyskać dostęp do pinów GPIO z Pythona (ale może to być nieaktualne):

  • wget https://www.airspayce.com/mikem/bcm2835/bcm2835-1…. zxvf bcm2835-1.xx.tar.gz
  • cd bcm2835-1.xx
  • ./konfiguruj
  • robić
  • sudo sprawdź
  • sudo dokonać instalacji

Aby uruchomić program, będziesz musiał wywołać "sudo python nazwa_pliku.py".

Zalecana: