Bu seansta Raspberry Pi ve PYGAME fonksiyonlarını bir ses kartı yapmak için kullanacağız. Basit bir ifadeyle, Raspberry Pi GPIO pinlerine birkaç düğme bağlayacağız ve bu düğmelere basıldığında Raspberry Pi hafızasında depolanan ses dosyalarını çalar. Bu ses dosyaları tek tek çalınabilir veya hepsi birlikte çalınabilir. Yani bir veya birden fazla tuşa aynı anda basabilirsiniz, Raspberry Pi aynı anda bir veya birden fazla ses dosyasını buna göre çalacaktır. Bu makalenin sonundaki Demo Videosu'na bakın. Raspberry Pi Eğitim Serimize ve bazı iyi IoT Projelerine de göz atın.
Raspberry Pi'de 26 adet programlanabilen GPIO pinimiz var, bunlardan bazıları bazı özel fonksiyonları yerine getirmek için kullanılıyor ve geriye 17 GPIO kalıyor. Her GPIO pini maksimum 15mA verebilir veya çekebilir. Ve tüm GPIO'lardan gelen akımların toplamı 50mA'yı geçemez. Yani bu GPIO pinlerinin her birinden ortalama olarak maksimum 3mA çekebiliriz. Akım akışını sınırlamak için dirençler kullanacağız. GPIO Pinleri ve Raspberry Pi ile arabirim düğmesi hakkında buradan daha fazla bilgi edinin.
Gerekli Bileşenler:
Burada Raspbian Jessie OS ile Raspberry Pi 2 Model B kullanıyoruz. Tüm temel Donanım ve Yazılım gereksinimleri daha önce tartışılmıştır, ihtiyaç duyduğumuz dışında, Raspberry Pi Tanıtımı ve Raspberry PI LED Yanıp Sönüyor bölümlerine bakabilirsiniz:
- Önceden yüklenmiş işletim sistemine sahip Raspberry Pi
- Güç kaynağı
- Hoparlör
- 1KΩ direnç (6 adet)
- Butonlar (6 adet)
- 1000uF kapasitör
Çalışma Açıklaması:
Burada olan Ses Ahududu Pi ile Düğmeleri kullanarak oynamak. 6 ses dosyasını oynatmak için 6 basmalı düğme kullandık. Bu düğmelere basarak daha güzel desenler oluşturmak için bu panoyu genişletmek için daha fazla düğme ve ses dosyası ekleyebiliriz. Daha fazla açıklamadan önce aşağıdaki adımları tamamlayın.
1. Öncelikle aşağıda verilen bağlantıdan 6 Ses dosyasını indirin veya ses dosyalarınızı kullanabilirsiniz, ancak daha sonra Kod'daki dosya adlarını değiştirmeniz gerekir.
Ses dosyalarını buradan indirin
2. Raspberry Pi masaüstü ekranında yeni bir klasör oluşturun ve "PI SES KARTI" olarak adlandırın.
3. İndirdiğiniz ses dosyalarını önceki adımda MASAÜSTÜNDE oluşturduğumuz klasöre açın.
4. Raspberry Pi'de terminal penceresini açın ve aşağıdaki komutu girin:
sudo amixer cset numid = 3 1
Bu komut, PI'ya kart üzerindeki 3,5 mm ses jakı üzerinden ses çıkışı sağlamasını söyler.
HDMI Bağlantı Noktasından ses çıkışı istiyorsanız, aşağıdaki komutu kullanabilirsiniz:
$ sudo amixer cset numid = 3 2
5. Hoparlörleri Raspberry Pi kartındaki 3,5 mm ses çıkış jakına bağlayın.
6. Bir PYTHON dosyası (*.py uzantısı) oluşturun ve aynı klasöre kaydedin. Raspberry Pi'de Python Programını oluşturmak ve çalıştırmak için bu öğreticiye bakın.
7. Pygame mikseri işletim sisteminde varsayılan olarak kurulacaktır. Program çalıştırıldıktan sonra PYMIXER'ı geri çağırmazsa, terminal penceresine aşağıdaki komutu girerek Raspberry Pi işletim sistemini güncelleyin. Pi'nin internete bağlı olduğundan emin olun.
sudo apt-get güncellemesi
İşletim sisteminin güncellenmesi için birkaç dakika bekleyin.
Şimdi her bileşeni aşağıda verilen devre şemasına göre bağlayın, PYHTON programını masaüstünde oluşturulan PYHTON dosyasına kopyalayın ve son olarak düğmeler aracılığıyla ses dosyalarını oynatmak için çalıştır'a basın. Python Programı Demo Videosu ile birlikte verilmektedir.
Devre şeması:
Programlama Açıklaması:
Burada, Ses Dosyalarını düğmeye basmaya göre oynatmak için Python Programı oluşturduk. Burada programda kullandığımız birkaç komutu anlamamız gerekiyor.
RPi.GPIO'yu IO olarak içe aktar
Kütüphaneden GPIO dosyasını içe aktaracağız, yukarıdaki komut, PI'nin GPIO pinlerini programlamamızı sağlar. Ayrıca "GPIO" yu "IO" olarak yeniden adlandırıyoruz, bu nedenle programda GPIO pinlerine başvurmak istediğimizde "IO" kelimesini kullanacağız.
IO.setwarnings (False)
Bazen, kullanmaya çalıştığımız GPIO pinleri başka işlevler yapıyor olabilir. Ardından, bir programı her çalıştırdığınızda uyarılar alacaksınız. Bu komut Raspberry Pi'ye uyarıları görmezden gelmesini ve programa devam etmesini söyler.
IO.setmode (IO.BCM)
Burada PI'nın i / o pinlerini işlev adlarıyla göstereceğiz. Bu yüzden, GPIO'yu BCM pin numaralarına göre programlıyoruz, bu da PIN'leri GPIO pin no. Programda PIN39'u GPIO19 olarak arayabileceğimiz gibi.
pygame.mixer'ı içe aktar
Ses dosyalarını oynatmak için pygame mikserini çağırıyoruz.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Masaüstü klasöründe depolanan 'buzzer.wav' ses dosyasını arıyoruz. Başka bir dosya çalmak istiyorsanız, yukarıda verilen işlevde ses dosyası adını değiştirmeniz yeterlidir. Masaüstü klasöründe bulunan herhangi bir dosyayı adlandırabilirsiniz.
channel1 = pygame.mixer.Channel (1)
Burada, tüm ses dosyalarını aynı anda çalabilmemiz için her düğme için bir kanal oluşturuyoruz.
eğer (IO.input (21) == 0): channel1.play (audio1)
İf ifadesindeki koşul doğruysa, altındaki ifade bir kez çalıştırılacaktır. Dolayısıyla, GPIO pini 21 düşük veya topraklanırsa, ses1 değişkenine atanan ses dosyasını çalacaktır . Devre Şemasına göre GPIO pin 21'in ilk düğmeye bastığımızda düştüğünü görebiliriz. Dolayısıyla, ilgili düğmeye basarak herhangi bir ses dosyasını çalabiliriz.
1: sonsuz döngü olarak kullanılırken, bu komutla bu döngü içindeki ifadeler sürekli olarak yürütülecektir.
Raspberry Pi ile en tatmin edici Ses Kartını yapmak için python programında değişiklik yapabilirsiniz. İşleri daha ilginç hale getirmek ve daha fazla ses dosyası çalmak için daha fazla düğme bile ekleyebilirsiniz.