تشخیص صدا با رزبری پای (اتصال ماژول میکروفن)

میکروفون های الکترت در تشخیص صدا عالی هستند. میتوانید از میکروفونهای الکترت برای استفاده در پروژههای Raspberry Pi استفاده کنید که میتواند صدا را تشخیص دهد و زمانی که صدا را تشخیص میدهد کاری انجام دهد.
در این آموزش، ما یک میکروفون الکترت را به رزبری پای متصل می کنیم و با رسیدن به یک سطح صدای خاص، یک رله 5 ولت را روشن می کنیم.
میکروفون های برقی چگونه کار می کنند؟
یک میکروفون الکترت از یک دیافراگم، یک جفت الکترود و یک ترانزیستور تشکیل شده است. دیافراگم به تغییرات فشار هوای تولید شده توسط امواج صوتی پاسخ می دهد. این باعث تغییر در ظرفیت خازن بین دیافراگم و صفحه فلزی شارژ شده در داخل محفظه میکروفون می شود. خازن متغیر یک ولتاژ تعدیل کننده تولید می کند که توسط یک ترانزیستور JFET در داخل محفظه تقویت می شود. این یک سیگنال ولتاژ سینوسی کوچک در پین های میکروفون ایجاد می کند که به فشار هوای تولید شده توسط امواج صوتی بستگی دارد.
برای تشخیص سیگنال از یک میکروفون الکترت روی یک میکروکنترلر یا کامپیوتر تک برد، باید از یک مقایسه کننده برای تبدیل سیگنال آنالوگ به سیگنال دیجیتال استفاده کنیم.
میکروفون KY038
خوشبختانه ماژول میکروفون KY038 وجود دارد. این برد دارای مقایسهکننده، پتانسیومتر و یک پیش تقویتکننده داخلی است تا اتصال به Raspberry Pi را آسانتر کند:
خروجی دیجیتال KY038 هر زمان که به آستانه سطح صدای خاصی برسد HIGH میشود. می توانید آستانه را با استفاده از پتانسیومتر روی برد تنظیم کنید. خروجی آنالوگ KY038 دارای سیگنال تقویت نشده از میکروفون الکترت است.
KY038 برای تشخیص بسته شدن درب، کنترل دستگاه ها با استفاده از دست زدن (کف زدن) و نظارت بر سطح نویز عالی است.
استفاده از میکروفون KY038 با رزبری پای
برای نشان دادن نحوه استفاده از KY038 با Raspberry Pi، مداری را ایجاد میکنیم که وقتی یک آستانه صدای مشخص توسط میکروفون KY038 شناسایی میشود، یک رله 5 ولت روشن میشود.
اینها قطعاتی هستند که شما نیاز خواهید داشت:
- رزبری پای
- برد بورد
- سیم های جامپر
- رله 5 ولت SRD-5VDC-SL-C
- میکروفون KY038
دستگاه ها را طبق نمودار سیم کشی زیر وصل کنید.
در مرحله بعد، ویرایشگر کد مورد علاقه خود را در Raspberry Pi باز کنید و کد زیر را کپی کنید.
import RPi.GPIO as GPIO MicPin = 3 RelayPin = 4 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(MicPin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.setup(RelayPin, GPIO.OUT, initial=GPIO.LOW) while True: GPIO.output(LedPin, GPIO.input(MicPin))
کد با وارد کردن کتابخانه Rpi.GPIO شروع می شود. برای سهولت استفاده، نام آن را به GPIO تغییر می دهیم. سپس شماره پین میکروفون و رله را اعلام کرده و به ترتیب در حالت ورودی و خروجی تنظیم می کنیم. باید پین را با یک مقاومت پول دان متصل کنیم تا سیگنال برای دستگاه های ورودی در حالت LOW بماند.
حلقه اصلی به گونهای عمل میکند که هرگاه ورودی سنسور صدا HIGH شود، HIGH روی رله نیز قرار میگیرد و هر دستگاهی را که رله به آن متصل است روشن میکند.