Alışverişlerinizi Robotistan’dan Yapın

Faydalı içerikler oluşturarak size yardımcı olmak istiyoruz. Aynı zamanda hızlı teslimat ve müşteri memnuniyetini ön planda tutarak malzeme satışı yapıyoruz. Alışverişlerini robotistan.com‘dan yaparak sen de bize yardımcı olabilirsin 🙂

Raspberry Pi 3 İle Sese Duyarlı Alarm Devresi #16

Raspberry Pi Dersleri serimizde kullanacağımız malzemelerin tamamına sizler için hazırladığımız setler ile kolayca sahip olabilirsiniz. Raspberry Pi’ye Uzaktan Bağlantı Yöntemleri (VNC,SSH,TTL) #4 dersimize kadar olan malzemeler için Kombo Kit, Raspberry Pi 3 Röle Kartı İle Alarm Devresi Yapımı #11 dersimize kadar olan malzemeler için Süper Başlangıç Seti, tüm derslerdeki malzemeler için Proje Seti tercih edebilirsiniz.

Merhaba arkadaşlar. Bu dersimizde Raspberry Pi’mizi kullanarak sese duyarlı alarm devresi yapacağız.

Gerekli malzemeler:

Bildiğimiz üzere Raspberry Pi’miz, 3.5mm jak çıkışı ve HDMI üzerinden ses çıkışı sunabilmektedir. Buna karşılık Pi üzerinde herhangi bir ses girişi mevcut değildir. Ses kaydı amaçlı mikrofon bağlamak için özel shield kartları veya USB ses kartları kullanmamız gerekir. Bu derste ise çok daha basit yapıya sahip bir mikrofon sensörü ile ses şiddeti algılayıp, bu şiddetin seviyesine göre sesli bir alam tetiklemeyi öğreneceğiz.

Ses Sensörü Nedir?

Kullanacağımız ses sensörü, bir mikrofon ve basit bir amfi devresinden oluşmaktadır. Mikrofonun çıkışındaki çok düşük seviyedeki (milivoltlar mertebesinde) sinyali, amfi devresi güçlendirerek analog veya dijital olarak çıkış almamızı sağlar. Analog sinyal, bize sesin şiddetini ölçmemizi sağlarken kart üzerinde bulunan vidalı trimpot ile dijital çıkışın hangi seviyede aktif olacağını çok hassas bir şekilde ayarlayabilmemiz mümkündür.

Kartın üzerinde yer alan LED’lerden trimpotun yakınında yer alanı, dijital çıkışın hangi seviyede tetikleneceğini gösterir.

Ses sensör modülü

Raspberry Pi – ses sensörü devre şeması:

Not: Kullandığım çizim programında (Fritzing) ses sensörünün birebir aynısını bulamadığım için temsili olarak bir mikrofon kartı kullandım. Sizler bağlantı yaparken sensörün + pinin 3.3V’a, G pinini GND’ye, DO pinini de GPIO18’e bağlayın.

Ses sensörü Python kodu (alternatif link):

import time 
import RPi.GPIO as GPIO 
GPIO.setmode(GPIO.BCM)

buzzer_pin = 17
sensor_pin = 18 

GPIO.setup(sensor_pin, GPIO.IN)
GPIO.setup(buzzer_pin, GPIO.IN)
GPIO.setup(buzzer_pin, GPIO.OUT) 

notes = {
 'B0' : 31,
 'C1' : 33, 'CS1' : 35,
 'D1' : 37, 'DS1' : 39,
 'EB1' : 39,
 'E1' : 41,
 'F1' : 44, 'FS1' : 46,
 'G1' : 49, 'GS1' : 52,
 'A1' : 55, 'AS1' : 58,
 'BB1' : 58,
 'B1' : 62,
 'C2' : 65, 'CS2' : 69,
 'D2' : 73, 'DS2' : 78,
 'EB2' : 78,
 'E2' : 82,
 'F2' : 87, 'FS2' : 93,
 'G2' : 98, 'GS2' : 104,
 'A2' : 110, 'AS2' : 117,
 'BB2' : 123,
 'B2' : 123,
 'C3' : 131, 'CS3' : 139,
 'D3' : 147, 'DS3' : 156,
 'EB3' : 156,
 'E3' : 165,
 'F3' : 175, 'FS3' : 185,
 'G3' : 196, 'GS3' : 208,
 'A3' : 220, 'AS3' : 233,
 'BB3' : 233,
 'B3' : 247,
 'C4' : 262, 'CS4' : 277,
 'D4' : 294, 'DS4' : 311,
 'EB4' : 311,
 'E4' : 330,
 'F4' : 349, 'FS4' : 370,
 'G4' : 392, 'GS4' : 415,
 'A4' : 440, 'AS4' : 466,
 'BB4' : 466,
 'B4' : 494,
 'C5' : 523, 'CS5' : 554,
 'D5' : 587, 'DS5' : 622,
 'EB5' : 622,
 'E5' : 659,
 'F5' : 698, 'FS5' : 740,
 'G5' : 784, 'GS5' : 831,
 'A5' : 880, 'AS5' : 932,
 'BB5' : 932,
 'B5' : 988,
 'C6' : 1047, 'CS6' : 1109,
 'D6' : 1175, 'DS6' : 1245,
 'EB6' : 1245,
 'E6' : 1319,
 'F6' : 1397, 'FS6' : 1480,
 'G6' : 1568, 'GS6' : 1661,
 'A6' : 1760, 'AS6' : 1865,
 'BB6' : 1865,
 'B6' : 1976,
 'C7' : 2093, 'CS7' : 2217,
 'D7' : 2349, 'DS7' : 2489,
 'EB7' : 2489,
 'E7' : 2637,
 'F7' : 2794, 'FS7' : 2960,
 'G7' : 3136, 'GS7' : 3322,
 'A7' : 3520, 'AS7' : 3729,
 'BB7' : 3729,
 'B7' : 3951,
 'C8' : 4186, 'CS8' : 4435,
 'D8' : 4699, 'DS8' : 4978
}

def buzz(frequency, length):

 if(frequency==0):
 time.sleep(length)
 return
 period = 1.0 / frequency
 delayValue = period / 2
 numCycles = int(length * frequency)
 
 for i in range(numCycles):
 GPIO.output(buzzer_pin, True)
 time.sleep(delayValue)
 GPIO.output(buzzer_pin, False)
 time.sleep(delayValue)

def play():
 buzz(notes['A3'], 0.5)
 buzz(notes['A3'], 0.5)
 buzz(notes['A3'], 0.5)
 buzz(notes['F3'], 0.35)
 buzz(notes['C4'], 0.15)
 buzz(notes['A3'], 0.5)
 buzz(notes['F3'], 0.35)
 buzz(notes['C4'], 0.15)
 buzz(notes['A3'], 1.0)

while True:
 if GPIO.input(sensor_pin):
 print("Ses Alarmi!")
 play()
 time.sleep(0.5)

Alarmın melodisi eminim çoğunuza tanıdık gelecektir 😀

Yorumları Görüntüle

En Son İçerik

Arduino’nun Korkulu Rüyası: ESP8266

Herkese merhabalar! Daha önce hiç kablosuz internet bağlantısı ile proje yaptınız mı? IoT projelerine ilginiz var mı? Sizi bu yazımızda…

4 gün Önce

Arduino ve C# ile LCD Ekrana Yazı Gönderme – 7. Ders

Sonraki Ders > < Önceki Ders Arkadaşlar merhaba, bu dersimizde C# ile hazırlayacağımız form uygulaması üzerinden Arduino'ya bağlı LCD ekranımızı…

3 hafta Önce

3D Printer Yapımı – 553TL’ye Kendi 3D Yazıcını Yap

Herkese merhabalar! Bu yazımızda üç boyutlu yapımı için hangi adımları uygulamak gerekiyor, 3D yazıcı yapımı için gerekli olan malzemelerden ve…

4 hafta Önce

Arduino ile Nabız Ölçer

Herkese merhabalar, bu yazımızda medikal sensörlerden biri olan Pulse nabız sensörünü kullanarak nabız verisini okumayı ve elde ettiğimiz sonucu Nokia…

2 ay Önce

Lipo Pil Nedir? Çeşitleri ile Kapsamlı Lipo Batarya Rehberi

Birçok RC araçta ve robot projelerinde kullanılan Li-Po batarya çeşitlerini, güvenli kullanım ve şarj yöntemlerini bu videomuzu izleyerek öğrenebilirsiniz.

2 ay Önce

Arduino ve C# Haberleşmesi: Bluetooth ile Servo Motor Kontrolü – 6. Ders

Sonraki Ders > < Önceki Ders Arkadaşlar merhaba, bu derste hazırladığımız arayüz üzerinden seri haberleşmeyi kullanarak servo motor kontrolünü göreceğiz.…

2 ay Önce