بازرها یکی از ابزارهای فوق العاده کاربردی در طراحی سیستم های دیجیتال به شمار می روند. این بلندگوهای کوچک که می توانند صدای بوق تولید کنند، در دستگاه های بسیاری نظیر ماشین لباسشویی ها، یخچال ها، رادارهای خودروها، اعلام گر خطر و خرابی و…. به کار می روند. راه اندازی و کار با بازرها بسیار ساده است. اما، با توجه به توانایی ایجاد پالس در بردهای آردوینو، می توان بوق هایی با فرکانس دلخواه ایجاد نمود. جهت ایجاد صدای بوق با فرکانس دلخواه، کتابخانه Tone.h بسیار کاربردی است. به کمک این کتابخانه، می توانید بوق هایی با فرکانس های مورد نظر خود تولید نمایید. بدین ترتیب، تمرکز اصلی در طراحی سیستم ها، بر بخش بخش های مهم پروژه قرار می گیرد. این موضوع سبب سرعت روند توسعه یک پروژه خواهد گردید. کتابخانه تولید صدا یا Tone.h دارای امکانات و البته الزاماتی جهت رعایت در اجراست. در این آموزش، به بررسی توابع کلیدی و نحوه استفاده از آن در پروژه ها می پردازیم. در ادامه با مرجع تخصصی آردوینو به زبان فارسی ،دیجی اسپارک همراه باشید.
نصب کتابخانه Tone.h
اولین قدم در استفاده از یک کتابخانه، نصب آن در محیط آردوینو است. برای نصب کتابخانه، دو روش دستی و خودکار وجود دارد. در روش دستی، پس از دانلود فایل های کتابخانه، می بایست آن را در مسیر نصب آردویینو قرار دهید. اما در روش خودکار، تنها با تایپ نام کتابخانه در قسمت مدیریت کتابخانه ها، کتابخانه مورد نظر به صورت خودکار در مخازن آردوینو جستجو شده و پس از یافتن آن، نصب خواهد شد. به همین منظور، ابتدا در نرم افزار آردوینو، بر روی گزینه Tools و سپس Manage Libraries کلید کنید. با کلیک بر روی گزنیه Manage Libraries، می توانید وضعیت کتابخانه های نصب شده و لیستی از کتابخانه های جدید و بروز را مشاهده کنید. این مورد در تصویر زیر، قابل مشاهده است.
مطابق فلش قرمز رنگ تصویر فوق، در کادر جستجو، با تایپ نام کتابخانه، می توان آن را یافته و سپس نصب نمود. در اینجا ما عبارت “Tone.h” را تایپ می کنیم. پس از چند لحظه، تعداد زیادی از کتابخانه های مخصوص ایجاد صدا مطابق تصویر زیر نمایش داده می شود. مطابق کادر قرمز رنگ، کتابخانه Toneکه توسط “Brett Hangman” توسعه یافته است را با کلیک بر روی عبارت install، کتابخانه را نصب نمایید.
پس از اینکه کتابخانه با موفقیت نصب شد، نوبت به استفاده از آن می رسد. به همین منظور، ابتدا به بررسی الزامات فنی، منابع مورد استفاده و بردهای مورد پشتیبانی کتابخانه Tone.h می پردازیم. پس از آن، به معرفی توابع کلیدی و کاربردی پرداخته و در نهایت با ارائه مثالی، به نحوه استفاده از توابع در پروژه های عملی خواهیم پرداخت.
نکات فنی کتابخانه Tone.h
همانطور که پیشتر گفته شد، کتابخانه Tone توانایی ایجاد فرکانس لازم جهت تولید صداهای بوق را دارد. این کتابخانه جهت ایجاد فرکانس مورد نظر، از تایمرهای داخلی برد آردوینو استفاده می نماید. از این رو، دقت نظر لازم را در نظر داشته باشید. همچنین، این کتابخانه با برد آردوینو UNO سازگاری کامل دارد. در این کتابخانه می توانید جهت ایجاد فرکانس صوتی، هر یک از پایه های خروجی را به طور دلخواه انتخاب نمایید. به عبارت دیگر، می توانید بیزر ر را جهت ایجاد صدا با فرکانس دلخواه، به هر کدام از پایه های GPIO متصل نمایید. جهت اتصال بیزر به آردوینو، مدار زیر توسط توسعه دهنده کتابخانه Tone.h پیشنهاد شده است.
در مدار فوق، پایه منفی بیزر به پایه منفی آردوینو و پایه مثبت آن به کمک یک مقاومت یک کیلو اهمی، به پایه تولید کننده فرکانس(GPIO) متصل شده است. در صورتیکه با اتصال مدار فوق، صدای بیزر را ضعیف یافتید، می توانید از مدار جایگزین زیر استفاده نمایید. این مدار فرکانس را از طریق یک ترانزیستور به بیزر منتقل می نماید. بدین ترتیب جریان تقویت شده و صدا با کیفیت پخش خواهد شد.
پس از بررسی نکات فنی، نوبت به تشریح و معرفی توابع کتابخانه می رسد. در قسمت بعدی، به بررسی توابع کلیدی کتابخانه Tone پرداخته و در نهایت با ارائه مثالی، به بحث خاتمه خواهیم داد.
توابع کلیدی کتابخانه Tone.h
در این قسمت به بررسی توابع کلیدی کتابخانه Tone می پردازیم. جدول زیر، شرح کامل توابع را نشان می دهد. در این جدول، ورودی ها از سمت چپ به راست، به ترتیب ورودی اول، ورودی دوم، ورودی سوم …. نام می گیرند.
تابع | ورودی ها | شرح |
void begin(uint8_t tonePin); | تعیین پایه جهت ایجاد فرکانس | به کمک این تابع، روند این کار راه اندازی می شود. |
bool isPlaying(); | بدون ورودی | به کمک این تابع می توان تشخیص داد که آیا صدایی در حال پخش است یا خیر. در صورت پخش، خروجی این تابع true و در غیر اینصورت، false خواهد بود |
void play(uint16_t frequency, uint32_t duration = 0); | ورودی اول فرکانس پخش
ورودی دوم به صورت اختیاری تعیین مدت زمان اجرا |
به کمک این تابع می توانید فرکانس مورد نظر را همراه با مدت زمان اجرا، تنظیم و پخش کنید. توجه کنید که ورودی دوم اختیاری است و می تواند در تابع لحاظ، نگردد. |
void stop(); | بدون ورودی | به کمک این تابع، روال پخش متوقف خواهد شد. |
مطابق جدول فوق، تابع play به منظور پخش صدا به کار می رود. در ورودی اول این تابع فرکانس به صورت هرتز درج می گردد. در نظر داشته باشید که این کتابخانه، دارای فرکانس های از پیش تعیین شده بوده که براحتی می توانید در کد برنامه، استفاده کنید. جدول زیر هر فرکانس را به همراه نام ثایت تعیین شده برای آن، نمایش می دهد. توجه داشته باشید که برای استفاده در تابع، می بایست نام ثابت را در ورودی قرار دهید.
ثابت تعریف شده | فرکانس(Hz) |
---|---|
NOTE_B0 | ۳۱ |
NOTE_C1 | ۳۳ |
NOTE_CS1 | ۳۵ |
NOTE_D1 | ۳۷ |
NOTE_DS1 | ۳۹ |
NOTE_E1 | ۴۱ |
NOTE_F1 | ۴۴ |
NOTE_FS1 | ۴۶ |
NOTE_G1 | ۴۹ |
NOTE_GS1 | ۵۲ |
NOTE_A1 | ۵۵ |
NOTE_AS1 | ۵۸ |
NOTE_B1 | ۶۲ |
NOTE_C2 | ۶۵ |
NOTE_CS2 | ۶۹ |
NOTE_D2 | ۷۳ |
NOTE_DS2 | ۷۸ |
NOTE_E2 | ۸۲ |
NOTE_F2 | ۸۷ |
NOTE_FS2 | ۹۳ |
NOTE_G2 | ۹۸ |
NOTE_GS2 | ۱۰۴ |
NOTE_A2 | ۱۱۰ |
NOTE_AS2 | ۱۱۷ |
NOTE_B2 | ۱۲۳ |
NOTE_C3 | ۱۳۱ |
NOTE_CS3 | ۱۳۹ |
NOTE_D3 | ۱۴۷ |
NOTE_DS3 | ۱۵۶ |
NOTE_E3 | ۱۶۵ |
NOTE_F3 | ۱۷۵ |
NOTE_FS3 | ۱۸۵ |
NOTE_G3 | ۱۹۶ |
NOTE_GS3 | ۲۰۸ |
NOTE_A3 | ۲۲۰ |
NOTE_AS3 | ۲۳۳ |
NOTE_B3 | ۲۴۷ |
NOTE_C4 | ۲۶۲ |
NOTE_CS4 | ۲۷۷ |
NOTE_D4 | ۲۹۴ |
NOTE_DS4 | ۳۱۱ |
NOTE_E4 | ۳۳۰ |
NOTE_F4 | ۳۴۹ |
NOTE_FS4 | ۳۷۰ |
NOTE_G4 | ۳۹۲ |
NOTE_GS4 | ۴۱۵ |
NOTE_A4 | ۴۴۰ |
NOTE_AS4 | ۴۶۶ |
NOTE_B4 | ۴۹۴ |
NOTE_C5 | ۵۲۳ |
NOTE_CS5 | ۵۵۴ |
NOTE_D5 | ۵۸۷ |
NOTE_DS5 | ۶۲۲ |
NOTE_E5 | ۶۵۹ |
NOTE_F5 | ۶۹۸ |
NOTE_FS5 | ۷۴۰ |
NOTE_G5 | ۷۸۴ |
NOTE_GS5 | ۸۳۱ |
NOTE_A5 | ۸۸۰ |
NOTE_AS5 | ۹۳۲ |
NOTE_B5 | ۹۸۸ |
NOTE_C6 | ۱۰۴۷ |
NOTE_CS6 | ۱۱۰۹ |
NOTE_D6 | ۱۱۷۵ |
NOTE_DS6 | ۱۲۴۵ |
NOTE_E6 | ۱۳۱۹ |
NOTE_F6 | ۱۳۹۷ |
NOTE_FS6 | ۱۴۸۰ |
NOTE_G6 | ۱۵۶۸ |
NOTE_GS6 | ۱۶۶۱ |
NOTE_A6 | ۱۷۶۰ |
NOTE_AS6 | ۱۸۶۵ |
NOTE_B6 | ۱۹۷۶ |
NOTE_C7 | ۲۰۹۳ |
NOTE_CS7 | ۲۲۱۷ |
NOTE_D7 | ۲۳۴۹ |
NOTE_DS7 | ۲۴۸۹ |
NOTE_E7 | ۲۶۳۷ |
NOTE_F7 | ۲۷۹۴ |
NOTE_FS7 | ۲۹۶۰ |
NOTE_G7 | ۳۱۳۶ |
NOTE_GS7 | ۳۳۲۲ |
NOTE_A7 | ۳۵۲۰ |
NOTE_AS7 | ۳۷۲۹ |
NOTE_B7 | ۳۹۵۱ |
NOTE_C8 | ۴۱۸۶ |
NOTE_CS8 | ۴۴۳۵ |
NOTE_D8 | ۴۶۹۹ |
NOTE_DS8 | ۴۹۷۸ |
پس از معرفی توابع و نکات کلیدی آن، نوبت به اجرای یک نمونه برنامه می رسد. قسمت بعدی، اجرای یک برنامه نمونه را نمایش می دهد.
اجرای یک نمونه برنامه
در این قسمت به اجرای یک نمونه برنامه از کتابخانه Tone.h می پردازیم. در این برنامه، یک صدا با فرکانس ۴۴۰ هرتز که مطابق جدول صدادها نام ثابت NOTEA4 دارد، پخش می گردد.
#include <Tone.h> //فراخوانی کتابخانه Tone tone1; //ایجاد یک شی از کتابخانه void setup() { tone1.begin(13); // ایجاد فرکانس بر روی پایه ۱۳ tone1.play(NOTE_A4); //پخش صدای NOTE_A4 که فرکانس ۴۴۰ هرتز دارد } void loop() { }
لوازم مورد نیاز
جمع بندی
در این آموزش به تحلیل و بررسی کتابخانه Tone جهت پخش صداهای مختلف پرداختیم. به کمک این کتابخانه و با اتصال یک بازر، می توان به سادگی صداهای از پیش تعریف شده در کتابخانه و یا صداهایی با فرکانس دلخواه کاربر و یا فرکانس DTMF را ایجاد نمود. از آنجاییکه بازرها یکی از ابزارهای کاربردی در تعامل با کاربر در طراحی سیستم ها به شمار می روند، این کتابخانه با وجود نمونه صداهای از پیش تعریف شده، دغدغه خاطر برنامه نویسان را از جهت ایجاد صدای مناسب برای بازر را برطرف می نماید.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.