İçindekiler:
- Adım 1: Gerekli Malzeme
- 2. Adım: Düğmeler
- 3. Adım: Düğmeler Kılıfı
- 4. Adım: Ahududu Pi
- Adım 5: Programlama
- Adım 6: Python Komut Dosyasını Her Başlangıçta Çalıştırın
- 7. Adım: Notu Bitir
Video: Raspberry Pi ile Oynatma Kaydedici: 7 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
Herkese selam, Bu talimatta, Raspberry Pi kullanarak bir oynatma kaydediciyi nasıl yaptığımı açıklıyorum. Cihaz, üstte 7 basma düğmesi, Pi'nin usb bağlantı noktalarından birine bağlı bir hoparlör ve başka bir usb bağlantı noktasına bağlı bir mikrofon bulunan bir Raspberry Pi model B+'dır. Her düğme bir sesle ilişkilendirilir, böylece 7 farklı ses çalabilir. Sesler, düğmeye kısa bir basıştan sonra çalınır. Yeni bir ses kaydetmek için düğmeye 1 saniyeden fazla basmanız, bip sesinden sonra kaydetmeniz ve kaydın sonunda düğmeyi bırakmanız yeterlidir. Bundan daha basit olamaz!
Adım 1: Gerekli Malzeme
Bu proje için ihtiyacım vardı:
- Raspberry Pi model B+ ve mikro SD kart - 29.95 $ + 9.95 $
- Raspberry Pi plastik kasa - 7,95 $
- USB hoparlörler - 12.50 $
- USB mikrofon - 5,95 $
- Yarım boyutlu bir perma-proto board - 4,50 $
- 7 anlık buton - 2,50 $
Ayrıca ihtiyacım vardı:
- Biraz elektrik teli
- Sağ açılı dişi başlıklar
- Düğme kasası için biraz ahşap, siyah boya ve yapıştırıcı
- Bir havya ve lehim
2. Adım: Düğmeler
Kullanılan butonlar oldukça uzun (6mm) yani kasa kalınlığından geçebiliyorlar.
7 düğmemi, bileşenlerin lehimlenmesi dışında, devre tahtası gibi bir kalıcı protokol kartına yerleştirdim. Bu, bir devre tahtasından daha sağlamdır ve bir pcb yazdırmaktan daha ucuzdur. Her düğme, Raspberry Pi'deki bir GPIO'ya toprak bağlantısı sağlar. Pi'nin zaten programda ayarlanacak dahili yukarı/aşağı dirençleri olduğu için burada dirençlerim yok. Bu durumda onları yukarı çekmeye ayarladım (aşağıdaki programa bakın).
Düğmeler her 4 sırada bir veya her 0,4 inçte bir yerleştirilir.
3. Adım: Düğmeler Kılıfı
Düğmeler için kontrplak levhalar ve ahşap kare dübel ile çok basit bir kılıf yaptım. Dübel boyutu, düğme tabanını ve kartı içerecek kadar büyük, ancak düğmenin kasanın dışına çıkmasına izin verecek kadar küçük olmalıdır. 1/4 inç x 1/4 inç dübel kullandım.
Levhanın kasaya oturduğundan emin olduktan sonra dübeller taban sacına yapıştırılır. Delikler daha sonra üst tabakada delinir (tahta her 0,4 inçte bir tam olarak işaretler yapmak için kullanılabilir). Tüm ahşap parçalar boyanır, tahta kasaya yerleştirilir ve üstüne üst tabaka yapıştırılır.
4. Adım: Ahududu Pi
Gelecekte Pi'yi başka bir şey için kullanmak istersem, kabloları doğrudan Pi'ye lehimlemek istemedim. Bu nedenle kabloları dik açılı dişi başlıklara lehimledim ve başlıkları Pi'ye taktım.
Kullanılan GPIO'lar 21, 26, 20, 19, 13, 6 ve 5'tir. Topraklama pimi de kullanılır.
Mikrofon ve hoparlör, 4 usb bağlantı noktasından 2'sine basitçe takılır.
Pi, mikro-usb çıkışından güç alır
Adım 5: Programlama
Pi'yi programlamak için ethernet kablosu kullanarak internete bağladım ve VNC görüntüleyici kullanarak uzak bir bilgisayardan kontrol ettim. Ancak, bu kurulumu Pi'ye ilk bağlandığınızda kullanamazsınız, çünkü işletim sistemi henüz kurulmamıştır ve SSH etkin değildir. Yani en azından ilk seferde bir ekran, klavye ve fare bağlamanız gerekecek.
Doğru ses kartına ses kaydetme ve çalma komutlarını bulmak oldukça zordu. Bunlar benim için çalışan komutlar:
-
aplay -D plughw:CARD=Aygıt_1, DEV=0 0.wav
0.wav oynatır
-
arecord 0.wav -D sysdefault:CARD=1 -f cd -d 20
0.wav dosyasına cd kalitesinde maksimum 20 saniye kayıt yapar
Ses dosyaları varsayılan dizinde (/home/pi) bulunur. Bip sesi için varsayılan dizine yerleştirilmiş ve beep.wav olarak adlandırılan bir ses dosyası da gereklidir.
Python kodunun kendisi şudur:
Raspberry Pi oynatma kaydedici için piton kodu
RPi. GPIO'yu GPIO olarak içe aktar |
ithalat zamanı |
işletim sistemini içe aktar |
#değişkenler: |
butPressed = [True, True, True, True, True, True, True]#if düğmesine basılırsa, butPressed False olur |
pin = [26, 19, 13, 6, 5, 21, 20]#GPIO her bir düğmenin pinleri |
recordBool = False#True bir kayıt devam ediyorsa |
GPIO.setmode(GPIO. BCM) |
i aralığında (0, 7): |
GPIO.setup(pin, GPIO. IN, pull_up_down=GPIO. PUD_UP)#P'nin dahili dirençlerini yukarı çekmek için ayarlar |
Doğru iken: |
i aralığında (0, 7): |
butPressed = GPIO.input(pin)#bir düğmeye basılıp basılmadığını kontrol eder |
if butPressed == False:#eğer bir düğmeye basılırsa |
öncekiZaman = zaman.zaman() |
while butPressed == False ve recordBool == False: |
butPressed = GPIO.input(pin) |
if time.time() - öncekiTime > 1.0:#düğmeye bir saniyeden fazla basılırsa, recordBool True olur |
recordBool = Doğru |
eğer recordBool == True:#if recordBool True ise, bir bip sesi çalar ve ardından kayıt yapar |
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 i.wav dosyasında maksimum 20 saniye, cd kalitesinde |
while butPressed == Yanlış: |
butPressed = GPIO.input(pin) |
os.system("pkill -9 arecord")#düğme bırakıldığında veya 20 saniye sonra kayıt durdurulur |
recordBool = Yanlış |
else:#recordBool False ise, sesi çalar i.wav |
os.system("aplay -D plughw:CARD=Device_1, DEV=0 %d.wav" %i) |
zaman.uyku(0.1) |
GitHub tarafından ❤ ile barındırılan rawPlayback kaydediciyi görüntüle
Adım 6: Python Komut Dosyasını Her Başlangıçta Çalıştırın
Her Pi'nin başlangıcında python betiğini çalıştırmak için, aşağıdaki satırlar /home/pi/.config/autostart/ klasöründeki play.desktop adlı bir dosyaya konur.
Raspberry Pi'nin başlangıcında play.py'yi çalıştırır
[Masaüstü Girişi] |
Kodlama=UTF-8 |
Tip=Uygulama |
Ad=Oynatma |
Yorum=Bu bir oynatma uygulamasıdır |
Yürütme= python /home/pi/playback.py |
StartupNotify=yanlış |
uç=doğru |
Gizli=yanlış |
GitHub tarafından ❤ ile barındırılan rawplayback.desktop'u görüntüle
7. Adım: Notu Bitir
Lütfen yorum bölümünde bu proje hakkında ne düşündüğünüzü söyleyin, önerilerinizi bildirin ve beğendiyseniz Raspberry Pi yarışmasında bana oy verin.
Seni okumak için sabırsızlanıyorum!
Önerilen:
Arduino UNO ve SD-Kart ile Nem ve Sıcaklık Gerçek Zamanlı Veri Kaydedici Nasıl Yapılır - Proteus'ta DHT11 Veri Kaydedici Simülasyonu: 5 Adım
Arduino UNO ve SD-Kart ile Nem ve Sıcaklık Gerçek Zamanlı Veri Kaydedici Nasıl Yapılır | Proteus'ta DHT11 Veri Kaydedici Simülasyonu: Giriş: merhaba, ben Liono Maker, işte YouTube bağlantısı. Arduino ile yaratıcı projeler yapıyoruz ve gömülü sistemler üzerinde çalışıyoruz
Makey Makey ile Kaydedici Uygulaması: 7 Adım (Resimlerle)
Makey Makey ile Kaydedici Uygulaması: Müzik öğrencilerimiz, Kara Kuşak statüsüne ulaşana kadar kemer (renkli iplik parçaları) kazanmak için kayıt cihazında şarkıları tamamlamak zorundadır. Bazen parmak yerleştirme ve "işitme" ile ilgili sorunlar yaşarlar. şarkı canlanıyor
Arduino'dan SD Kart Modülü ile Bluetooth Üzerinden Android Telefona Sıcaklık ve Nem Veri Kaydedici: 5 Adım
Arduino'dan Bluetooth üzerinden SD Kart Modülü ile Android Telefona Sıcaklık ve Nem Veri Kaydedici: Herkese Merhaba, Bu benim ilk Eğitilebilirliğim, Umarım bundan faydalandığım için yapımcı topluluğuna yardımcı olurum. Projelerimizde genellikle sensörler kullanıyoruz, ancak verileri toplamanın, saklamanın ve hemen aktarmanın bir yolunu buluyoruz Telefonlar veya diğer cihazlar
WiFi Sıcaklık Kaydedici (ESP8266 ile): 11 Adım (Resimlerle)
WiFi Sıcaklık Kaydedici (ESP8266 ile): Merhaba, sizi burada gördüğüme sevindim. Umarım bu talimatta bazı yararlı bilgiler bulacaksınız. Bana önerilerinizi, sorularınızı göndermekten çekinmeyin… İşte bazı temel veriler ve projeye hızlı bir genel bakış. Mobil kullanıcılar için: Video.Bana haber ver
Raspberry Pi ve TE Bağlantısı Kullanan Sıcaklık, Bağıl Nem, Atmosferik Basınç Kaydedici MS8607-02BA01: 22 Adım (Resimlerle)
Sıcaklık, Bağıl Nem, Raspberry Pi ve TE Bağlantısı Kullanan Atmosferik Basınç Kaydedici MS8607-02BA01: Giriş: Bu projede, sıcaklık, nem ve atmosferik basınç için bir kayıt sisteminin adım adım nasıl oluşturulacağını göstereceğim. Bu proje Raspberry Pi 3 Model B ve TE Connectivity çevresel sensör çipi MS8607-02BA'ya dayanmaktadır