
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03



Cześć wszystkim, W tej instrukcji wyjaśniam, jak zrobiłem rejestrator odtwarzania za pomocą Raspberry Pi. Urządzenie to Raspberry Pi model B+, z 7 przyciskami na górze, głośnikiem podłączonym do jednego z portów USB Pi oraz mikrofonem podłączonym do innego portu USB. Każdy przycisk jest powiązany z dźwiękiem, więc może odtwarzać 7 różnych dźwięków. Dźwięki są odtwarzane po krótkim naciśnięciu przycisku. Aby nagrać nowy dźwięk, po prostu naciśnij przycisk dłużej niż 1 sekundę, nagraj po sygnale i puść przycisk na końcu nagrania. To nie może być prostsze!
Krok 1: Potrzebny materiał


Do tego projektu potrzebowałem:
- Raspberry Pi model B+ i karta micro SD - 29,95 $ + 9,95 $
- Plastikowa obudowa Raspberry Pi - 7,95 $
- Głośniki USB - 12,50 $
- Mikrofon USB - 5,95 $
- Półwymiarowa płyta perma-proto - 4,50 $
- 7 chwilowych przycisków - 2,50 $
Potrzebowałem również:
- Niektóre przewody elektryczne
- Nagłówki żeńskie pod kątem prostym
- Trochę drewna, czarnej farby i kleju do etui na guziki
- Lutownica i lut
Krok 2: Przyciski



Zastosowane przyciski są dość wysokie (6mm), dzięki czemu przechodzą przez grubość obudowy.
Umieściłem moje 7 przycisków na płytce perma-proto, która jest jak płytka stykowa, z wyjątkiem tego, że są na niej przylutowane elementy. Jest to bardziej wytrzymałe niż płytka prototypowa i tańsze niż drukowanie na płytce drukowanej. Każdy przycisk łączy uziemienie z GPIO na Raspberry Pi. Nie mam tutaj rezystorów, ponieważ Pi ma już wewnętrzne rezystory pull-up/down, które zostaną ustawione w programie. W tym przypadku ustawiłem je na podciąganie (patrz program poniżej).
Przyciski są umieszczone co 4 rzędy lub co 0,4 cala.
Krok 3: Sprawa przycisków



Zrobiłem bardzo proste etui na guziki, ze sklejki i drewnianego kwadratowego kołka. Rozmiar kołka musi być wystarczająco duży, aby pomieścić podstawę przycisku i płytkę, ale na tyle mały, aby górna część przycisku wyszła z obudowy. Użyłem kołka 1/4 cala x 1/4 cala.
Po upewnieniu się, że deska pasuje do obudowy, kołki są przyklejane do arkusza bazowego. Następnie w górnej blasze wierci się otwory (płyta może być wykorzystana do wykonania precyzyjnych oznaczeń co 0,4 cala). Wszystkie elementy drewniane są pomalowane, płyta umieszczona w etui, a górna blacha naklejona na nią.
Krok 4: Raspberry Pi



Nie chciałem lutować przewodów bezpośrednio do Pi, na wypadek gdybym chciał użyć Pi do czegoś innego w przyszłości. Dlatego przylutowałem przewody do żeńskich nagłówków pod kątem prostym i podłączyłem nagłówki do Pi.
Używane GPIO to 21, 26, 20, 19, 13, 6 i 5. Używany jest również pin uziemiający.
Mikrofon i głośnik są po prostu podłączane do 2 z 4 portów USB.
Pi jest zasilany przez gniazdo micro-usb
Krok 5: Programowanie
Aby zaprogramować Pi, podłączyłem go do Internetu za pomocą kabla Ethernet i sterowałem nim ze zdalnego komputera za pomocą przeglądarki VNC. Nie możesz jednak użyć tej konfiguracji przy pierwszym połączeniu z Pi, ponieważ system operacyjny nie jest jeszcze zainstalowany, a SSH nie jest w stanie. Musisz więc podłączyć ekran, klawiaturę i mysz, przynajmniej za pierwszym razem.
Znalezienie poleceń do nagrywania i odtwarzania dźwięku na odpowiedniej karcie dźwiękowej było dość kłopotliwe. Oto polecenia, które dla mnie zadziałały:
-
aplay -D plughw:CARD=Device_1, DEV=0 0.wav
Odtwarza 0.wav
-
arecord 0.wav -D sysdefault:CARD=1 -f cd -d 20
Nagrywa maksymalnie 20 sekund w pliku 0.wav, z jakością cd
Pliki dźwiękowe znajdują się w domyślnym katalogu (/home/pi). Niezbędny jest również plik dźwiękowy dla sygnału dźwiękowego, umieszczony w domyślnym katalogu i nazwany beep.wav.
Sam kod Pythona wygląda następująco:
kod Pythona dla rejestratora odtwarzania Raspberry Pi
importuj RPi. GPIO jako GPIO |
czas importu |
importuj system |
#zmienne: |
butPressed = [Prawda, Prawda, Prawda, Prawda, Prawda, Prawda, Prawda]#jeśli przycisk i zostanie naciśnięty, wtedy butPressed jest fałszywe |
pin = [26, 19, 13, 6, 5, 21, 20]#piny GPIO każdego przycisku |
recordBool = False#True jeśli rekord jest w toku |
GPIO.setmode(GPIO. BCM) |
dla i w zakresie (0, 7): |
GPIO.setup(pin, GPIO. IN, pull_up_down=GPIO. PUD_UP)#ustawia wewnętrzne rezystory Pi na podciąganie |
podczas gdy prawda: |
dla i w zakresie (0, 7): |
butPressed = GPIO.input(pin)#sprawdza, czy przycisk jest wciśnięty |
if butPressed == False:#jeśli przycisk został naciśnięty |
poprzedniCzas = czas.czas() |
while butPressed == False i recordBool == False: |
aleNaciśnięty = GPIO.input(pin) |
if time.time() - previousTime > 1.0:#jeśli przycisk jest wciśnięty dłużej niż sekundę, wtedy recordBool ma wartość True |
recordBool = Prawda |
if recordBool == True:#jeśli recordBool ma wartość True, odtwarza sygnał dźwiękowy, a następnie nagrywa |
os.system("aplay -D plughw:CARD=Device_1, DEV=0 beep.wav") |
os.system("arecord %d.wav -D sysdefault:CARD=1 -f cd -d 20 &" %i)#records przez maksymalnie 20 sekund w pliku i.wav, z jakością cd |
while aNaciśnięty == Fałsz: |
aleNaciśnięty = GPIO.input(pin) |
os.system("pkill -9 arecord")#zapis zostaje zatrzymany po zwolnieniu przycisku lub po 20 sekundach |
recordBool = Fałsz |
else:#jeśli recordBool jest False, odtwarza dźwięk i.wav |
os.system("aplay -D plughw:CARD=Urządzenie_1, DEV=0 %d.wav" %i) |
czas.sen(0.1) |
zobacz rejestrator rawPlayback hostowany z ❤ przez GitHub
Krok 6: Uruchom skrypt Pythona przy każdym uruchomieniu
Aby uruchomić skrypt Pythona podczas uruchamiania każdego Pi, następujące wiersze są umieszczane w pliku o nazwie playback.desktop w folderze /home/pi/.config/autostart/
uruchamia playback.py przy starcie Raspberry Pi
[Wpis na pulpicie] |
Kodowanie=UTF-8 |
Typ=Aplikacja |
Nazwa=Odtwarzanie |
Comment=To jest aplikacja do odtwarzania |
Exec= python /home/pi/playback.py |
StartupNotify=false |
Terminal=prawda |
Ukryty=fałsz |
zobacz rawplayback.desktop hostowany z ❤ przez GitHub
Krok 7: Notatka końcowa
Proszę powiedz mi, co myślisz o tym projekcie w sekcji komentarzy, daj znać o swoich rekomendacjach i zagłosuj na mnie w konkursie Raspberry Pi, jeśli Ci się spodobał.
Czekamy na czytanie!
Zalecana:
Nastrojowy głośnik - potężny głośnik do odtwarzania nastrojowej muzyki w oparciu o temperaturę otoczenia: 9 kroków

Nastrojowy głośnik - potężny głośnik do odtwarzania nastrojowej muzyki w oparciu o temperaturę otoczenia: witaj! Na potrzeby mojego szkolnego projektu w MCT Howest Kortrijk stworzyłem nastrojowy głośnik, który jest inteligentnym głośnikiem Bluetooth z różnymi czujnikami, wyświetlaczem LCD i WS2812b w zestawie pasek led.Głośnik odtwarza muzykę w tle w zależności od temperatury, ale może
Używanie samochodowego zestawu stereo do odtwarzania plików MP3 na starszym domowym zestawie stereo: 7 kroków

Używanie samochodowego zestawu stereo do odtwarzania plików MP3 na starszym domowym zestawie stereo: Odtwarzanie plików MP3 na domowym zestawie stereo W ciągu ostatnich dwóch dekad pobrałem lub zgrałem około 5000 klasycznych utworów rockowych i potrzebowałem prostego sposobu na odtwarzanie cyfrowych plików muzycznych na starszym domowym zestawie stereo. Mam podłączony komputer kina domowego (HTC)
Albumy z tagami NFC do automatycznego odtwarzania muzyki Spotify na Chromecaście: 5 kroków

Albumy z tagami NFC do automatycznego odtwarzania muzyki Spotify na Chromecaście: Ten projekt rozpoczął się od pomysłu stworzenia kolażu albumów moich najczęściej odtwarzanych artystów na Spotify. Po kilku grach z API Spotify w Pythonie pomyślałem, że byłoby miło połączyć te okładki albumów z ich identyfikatorami URI Spotify i zacząć odtwarzać
Rejestrator GPS Raspberry Pi: 10 kroków (ze zdjęciami)

Rejestrator GPS Raspberry Pi: Ta instrukcja wyjaśnia, jak zbudować kompaktowy rejestrator GPS z raspberry pi zero. Główną zaletą tego systemu jest to, że zawiera baterię, dzięki czemu jest bardzo kompaktowy. Urządzenie przechowuje dane w pliku a.nmea. Następujące dane ok
Przycisk odtwarzania YouTube 100 subskrybentów!: 8 kroków

Przycisk odtwarzania 100 subskrybentów na Youtube!: Jak mówi tytuł, ponieważ mój kanał YouTube przekroczył 100 subskrybentów, nadszedł czas na świętowanie, więc postanowiłem zbudować własny przycisk odtwarzania 100 subskrybentów! Więc bez dalszej zwłoki Zacznijmy