Raspberry Pi 3 – Buzzer Pasif Menyanyi? Kamu Pasti Tahu Lagu Ini!!

Tahukah kamu Raspberry Pi bisa menyanyi juga. Dengan bantuan sebuah buzzer pasif, Raspberry Pi 3 atau 4 bisa mengeluarkan nada-nada melodi sederhana yang membentuk sebuah lagu. Buzzer pasif adalah salah satu tipe buzzer yang tidak memiliki osilator internal di dalamnya, jadi kita perlu mengeluarkan frekuensi audio tertentu melalui port IO suatu controller supaya buzzer dapat berbunyi. Beda halnya dengan buzzer aktif. Buzzer tipe ini memiliki osilator internal yang memungkinkan untuk mengeluarkan bunyi tertentu walaupun hanya satu frekuensi nada saja. Tipe buzzer mana yang cocok untuk aplikasi Anda? Tentu disesuaikan dengan kebutuhan. Bagaimana cara menggunakan buzzer pasif menggunakan Raspberry Pi 3/4? Yuk simak tutorial berikut ini.

Cara Menggunakan Raspberry Pi Buzzer Pasif

Untuk mengeluarkan nada tertentu melalui buzzer pasif caranya sangat mudah. Kamu tinggal mengeluarkan tegangan digital dengan frekuensi tertentu melalui salah satu pin GPIO Raspberry Pi. GPIO Raspi dilengkapi dengan kemampuan untuk mengeluarkan tegangan analog (diskrit) dengan teknik PWM (Pulse Width Modulation). Dengan mengatur lebar pulsa tegangan output GPIO, maka kuantisasi tegangan dan frekuensinya dapat diatur. Jika GPIO ini terhubung dengan buzzer pasif, maka efeknya buzzer pasif akan mengeluarkan nada tertentu sesuai frekuensi yang diberikan. Begini kira-kira ilustrasi dari penjelasan di atas

menyanyikan lagu Ibu Kita Kartini dengan Raspberry Pi dan Buzzer pasif

Percobaan Raspberry Pi – Buzzer Pasif

Untuk mulai menggunakan buzzer pasif di Raspberry Pi 3/4 mari kita melakukan percobaan sederhana sebagai berikut, Alat dan bahan yang dibutuhkan:

✅ Raspberry Pi 3 atau 4
✅ buzzer pasif
✅ jumper female-female 2 pcs
✅ power supply 5V/3A

Kemudian hubungkan pin GPIO Raspi ke buzzer pasif seperti pada gambar rangkaian di bawah

Gambar Rangkaian Raspi-Buzzer Pasif

Program Sederhana Raspberry Pi-Buzzer Pasif

Untuk mengeluarkan frekuensi tertentu di Raspberri Pi 3/4 caranya cukup mudah, yakni dengan menggunakan perintah

GPIO.PWM(nomorGPIO, frekuensi_audio)

Perintah di atas adalah salah satu function yang ada di library RPi.GPIO, jadi Anda perlu menginstalnya menggunakan perintah

pip install RPi.GPIO

Catatan:
1. Bahasa pemrograman yang akan kita gunakan adalah Python (bisa versi 2 atau 3)
2. Anda perlu pengetahuan tentang cara memasukkan perintah atau script ke Raspberry Pi, jika belum tahu bisa baca artikel ini terlebih dahulu: persiapan pemrograman Raspi

Kemudian buka Notepad++ Anda, dan ketikkan program sederhana sebagai berikut:

import RPi.GPIO as GPIO
import time

pin_gpio = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin_gpio,GPIO.OUT)

buzzer = GPIO.PWM(pin_gpio, 500) # Set frequensi 500 Hz
buzzer.start(10) # Set dutycycle 10

time.sleep(1)
GPIO.cleanup()

Simpan program Python di atas dengan nama “buzzerpasif.py” (tetap tulis tanda petik dua saat save file di Notepad++)

Buka aplikasi Putty Anda (cara remote login Raspi), kemudian masukkan perintah:

python buzzerpasif.py

Dengan perintah di atas maka buzzer pasif akan membunyikan suara dengan frekuensi 500 Hz.

Menyanyikan lagu Ibu Kita Kartini dengan Raspberry Pi dan Buzzer Pasif

Setelah kita belajar dengan program sederhana bagaimana mengeluarkan bunyi tertentu pada buzzer pasif dengan Raspberry Pi, kini saatnya kita meningkatkan proses pembelajaran kita. Program berikutnya adalah percobaan menyanyikan lagu nasional ‘Ibu Kita Kartini‘ (masih pada hapal kan? 😊✌️) menggunakan Raspbery Pi dan buzzer pasif sebagai pengembangan dari percobaan pertama yang tadi sudah kita lakukan.

Buka kembali aplikasi Notepad++ Anda, kemudian isikan baris program sebagai berikut:

import RPi.GPIO as GPIO
import time

BuzzerPin = 18

GPIO.setmode(GPIO.BCM)
GPIO.setup(BuzzerPin, GPIO.OUT) 
GPIO.setwarnings(False)

global Buzz 
Buzz = GPIO.PWM(BuzzerPin, 440) 
Buzz.start(50) 

sii=220
do=264
re=297
mi=330
fa=352
sol=396
la=440
si=495
doo=528

melodi = [
  do, re, mi, fa, sol, mi, do,
  la, doo, si, la, sol,
  fa, la, sol, fa, mi, do,
  re, fa, mi, re, do,
  fa, mi, fa, la, sol, la, sol, mi, do,
  mi, re, mi, fa, sol, mi,
  fa, mi, fa, la, sol, la, sol, mi, do,
  mi, re, fa, sii, re, do
]

ritme = [
  16, 4, 4, 4, 12, 4, 12,
  12, 4, 8, 8, 16,
  12, 4, 8, 8, 12,
  8, 4, 8, 8, 12,
  12, 4, 4, 2, 2, 2, 4, 8, 4,
  8, 4, 4, 4, 4, 20,
  12, 4, 4, 4, 2, 2, 4, 8, 4,
  8, 4, 4, 4, 4, 20
]

for i in range(1, len(melodi)): 
	Buzz.ChangeFrequency(melodi[i]) 
	time.sleep(ritme[i]*0.13) 

simpan program Python di atas dengan nama ‘buzzerpasiflagu.py”, kemudian jalankan menggunakan Putty dan dengarkan lagu yang dinyanyikan Raspberry Pi 😊👍

Penjelasan Program

Sama halnya saat kita menyanyikan lagu, kita perlu urutan nada dalam melodi disertai panjang pendeknya nada (ritme). Pada program di atas, kita mendefinisikan frekuensi tangga nada (do re mi fa sol la si do) pada baris program [14-22], sedangkan untuk ritme tiap tangga nada diatur pada baris program [35-44]. Sesuai referensi susunan melodi lagu Ibu Kita Kartini pada link ini, maka disusunlah baris program [24-33]. Dan terakhir semua function dipanggil pada baris program [46-48] untuk mulai menyanyikan lagu.

Disclamer : berhubung saya bukan komposer, mungkin ada nada/ritme yang kurang pas di telinga. Harap maklum ya 😊. Silahkan kalau Anda bisa memperbaiki akan lebih baik, dan tolong kabari saya supaya bisa saya update artikel ini

Script Python dapat diunduh gratis di link github berikut ini : raspberry pi buzzer

Demikian proses belajar Raspberry Pi kita hari ini, pada kesempatan kali ini kita telah belajar bagaimana mengeluarkan nada sederhana sampai dengan menyanyikan lagu menggunakan buzzer pasif pada salah satu GPIO Raspberry Pi. Berhubung yang digunakan adalah aktuator suara sederhana berupa buzzer pasif tentunya nada yang dikeluarkan juga sifatnya sederhana (monoponik). Jika Anda ingin lebih bagus suaranya tentunya Anda bisa menggunakan speaker stereo dengan spesifikasi tertentu. Apa dan bagaimana caranya? Simak dan subscribe blog saptaji.com 😊

3 1 vote
Article Rating

Leave a Reply

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x