تحلیل کتابخانه

تحلیل و بررسی کتابخانه functionGenerator.h

functiongenerator-h-arduino-library-digispark
نوشته شده توسط معین صابری

در مجموعه آموزش های تحلیل و بررسی کتابخانه های آردوینو این قسمت را به یک کتابخانه کلیدی و کاربردی جهت ایجاد شکل موج های مختلف، اختصاص می دهیم. به کمک این کتابخانه کاربردی، می توان شکل موج های مختلف سینوسی، دندان اره ای، مربعی و…. را ایجاد نماییم. همانطور که اطلاع دارید، این موج ها از پرکاربردترین سیگنال ها در علم الکترونیک و برق به شمار می روند. در این آموزش به کمک کتابخانه functionGenerator.h می توانیم بدون نیاز به هیچ ماژول و یا قطعه دیگر، این موج ها را ایجاد نماییم. این کتابخانه به طرز ساده و موثری، بدون نیاز به کدها یپیچده و صرفا از طریق فراخوانی توابع می تواند موج های مد نظر کاربر را ایجاد نماید. در این آموزش به تحلیل و بررسی این کتابخانه می پردازیم. نخست به معرفی مختصر امواج مختلف می پردازیم. سپس در ادامه طریق نصب و الزامات فنی کتابخانه را از نظر خواهیم گذراند. پس از این مرحله به تحلیل و بررسی توابع کلیدی و کاربردی کتابخانه خواهیم پرداخت. در نهایت با ارایه مثالی، طریقه استفاده از توابع در برنامه ها را خواهیم دید. در ادامه تحلیل کتابخانه با مرجع تخصصی رزبری پای و آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


بررسی امواج مختلف


پیش از آنکه به ادامه بحث بپردازیم، این قسمت را به طور مختصر به مفهوم موج و بررسی امواج مختلف اختصاص می دهیم. مفهوم موج را می توان بر پایه تکرار یک عمل دانست. تکرار یک عمل را می توان در تراز مفهوم فرکانس قرار داد. به عبارت دیگر، فرکانس میزان تکرار یک عمل را گویند. به عنوان مثال وقتی گفته می شود که داده ها با فرکانس ۱۰ هرتز ارسال می گردند، یعنی داده ها هر ۱۰/۱ ثانیه(۰٫۱ ثانیه یا ۱۰۰ میلی ثانیه) ارسال می شوند. برای روشن تر شدن موضوع، تصویر زیر را مشاهده کنید.

تولید موج با کتابخانه functionGenerator.h - دیجی اسپارک

 

همانطور که در شکل بالا مشخص است، از دل مفهوم فرکانس و زمان، موج پدیدار می گردد. امواج حاصل فرکانس خود هستند. به عبارت دیگر وجود فرکانس سبب ایجاد نموداری به اسم شکل موج می گردد. شکل موج، انواع  مختلفی دارد. از شکل موج های معروف می توان به شکل موج سینوسی، مربعی، دندان اره ای، پله ای و… اشاره نمود. در زیر تصویر این امواج را مشاهده می کنید.

انواع موج در کتابخانه functionGenerator.h - دیجی اسپارک

 

پس از آشنایی مختصر با امواج، نوبت به نصب کتابخانه functionGenerator می رسد. این کتابخانه آنطور که گفته شد، می توان امواج مختلف را بدون نیاز به چیپ اضافه تولید نماید. در ادامه به نصب کتابخانه می پردازیم.

 


نصب کتابخانه functionGenertor.h


اولین قدم در استفاده از یک کتابخانه، نصب آن در نرم افزار آردوینو است. جهت نصب کتابخانه، می بایست به روش دستی این کتابخانه را از صفحه گیت هاب آن دانلود و نصب کنیم. نصب کتابخانه بسیار ساده است. کافیست مراحل گفته شده در زیر را قدم به قدم انجام دهید.

  • با کلیک بر روی این لینک، وارد صفحه کتابخانه در گیت هاب شوید.
  • مطابق تصویر زیر، ابتدا بر روی گزینه code و سپس Download ZIP کلیک نمایید.

نصب کتابخانه functionGenerator.h آردوینو - دیجی اسپارک

 


الزامات و نکات فنی کتابخانه functionGenerator.h


پس نصب کتابخانه، نوبت به بررسی نکات و الزامات فنی آن می رسد. در نکته اول توجه داشته باشید که این کتابخانه روی کلیه بردهای تحت پشتیبانی پلتفرم آردوینو فعال می گردد. به عبارت دیگر این کتابخانه مستقل از معماری پردازنده بر روی بردهای آدروینو مبتنی بر AVR، ARM و بردهای سری ESP قابل اجراست. در کنار این، این کتابخانه دارای محدودیت در ایجاد فرکانس بسته به موج و برد انتخابی است. جدول زیر این محدودیت ها را نمایش می دهد.

پردازنده کلاک پردازنده شکل موج بیشترین فرکانس قابل اعمال
Arduino UNO ۱۶ MHz sawtooth ۶۰ Hz
Arduino UNO ۱۶ MHz triangle ۵۰ Hz
Arduino UNO ۱۶ MHz square ۱۰۰۰ Hz
Arduino UNO ۱۶ MHz sinus ۲۵ Hz
Arduino UNO ۱۶ MHz stair ۵۰ Hz
Arduino UNO ۱۶ MHz random ۱۰۰۰ Hz
ESP32 ۲۴۰ MHz sawtooth ۱۰۰۰ Hz
ESP32 ۲۴۰ MHz triangle ۱۰۰۰ Hz
ESP32 ۲۴۰ MHz square ۱۰۰۰ Hz
ESP32 ۲۴۰ MHz sinus ۲۵۰ Hz
ESP32 ۲۴۰ MHz stair ۸۰۰ Hz
ESP32 ۲۴۰ MHz random ۱۰۰۰ Hz

 

پس از آشنایی با الزامات فنی، نوبت به تحلیل و بررسی توابع کلیدی و کاربردی می رسد. قسمت بعد مربوط به این موضوع است.

 


توابع کلیدی و کاربردی کتابخانه functionGenerator.h


پس از آشنایی با شکل موج های مختلف، نوبت به تحلیل و بررسی توابع کلیدی کتابخانه می رسد. جدول زیر لیست این توابع را نمایش می دهد.

شرح تابع
تابع سازنده کلاس کتابخانه

 

ورودی اول(از چپ) زمان(فرکانس) با مقدار پیشفرض ۱

 

ورودی دوم دامنه با مقدار پیشفرض ۱

ورودی سوم فاز با مقدار پیشفرض ۰

ورودی چهارم اختلاف فاز در محور Y با مقدار پیشفرض ۰

funcgen(float period = 1.0, float amplitude = 1.0, float phase = 0.0, float yShift = 0.0)
تنظیم بازه زمانی موج با مقدار پیشفرض ۱ void  setPeriod(float period = 1.0)
خواندن بازه زمانی موج float getPeriod()
تنظیم فرکانس با مقدار پیشفرض ۱ void  setFrequency(float freq = 1.0)
خواندن مقدار فرکانس تنظیم شده float getFrequency()
تنظیم دامنه موج با مقدار پیشفرض ۱ void  setAmplitude(float ampl = 1.0)
دریافت دامنه موج float getAmplitude()
تنظیم فاز موج با مقدار پیشفرض ۰ void  setPhase(float phase = 0.0)
دریافت فاز موج float getPhase()
تنظیم اختلاف فاز موج با مقدار پیشفرض ۰ void  setYShift(float yShift = 0.0)
دریافت مقدار اختلاف فاز تعیین شده float getYShift()
ایجاد موج دندان اره ای با مقدار زمان در ورودی float sawtooth(float t)
ایجاد موج مثلثی با مقدار زمان در ورودی float triangle(float t)
ایجاد مربعی با مقدار زمان در ورودی float square(float t)
ایجاد موج سینوسی با مقدار زمان در ورودی   float sinus(float t)
ایجاد موج پله ای با مقدار زمان در ورودی float stair(float t)
ایجاد موج تصادفی یا به عبارت دیگر نویز   float random()

 

پس از آشنایی با توابع کلیدی و کاربردی کتابخانه، نوبت به اجرای یک نمونه برنامه می رسد. قسمت بعد مربوط به این موضوع است.

 


اجرای یک نمونه برنامه


پس از آشنایی با توابع نوبت به اجرای یک نمونه برنامه می رسد. این برنامه امواج مختلف را با توجه به زمان تعیین شده در ورودی ایجاد می کند. در صورتیکه روی این لینک کلیک کنید، می توانید سورس برنامه را دانلود نمایید.

 


لوازم مورد نیاز


لینک خرید انواع برد آردوینو، کلیک کنید

لینک انواع برد ESP، کلیک کنید

 


جمع بندی


در مجموعه آموزش های تحلیل و بررسی کتابخانه های آردوینو، این قسمت را به یکی از کتابخانه های پرکاربرد آردوینو اختصاص دادیم. کتابخانه functionGenerator یک کتابخانه فوق العاده کاربردی جهت ایجاد موج های مختلف بر روی آردوینو است. این کتابخانه بدون نیاز به هیچ ماژول اضافه می توان اقدام به ایجاد موج های مربعی، سینوسی و دندان اره و….. نمود. این کتابخانه که بر روی کلیه بردهای آردوینو قابل اجراست، می تواند مستقل از معماری پردازنده روی بردهای آردوینو یا ESP32 اجرا گردد. در این آموزش ابتدا به بررسی مفهوم موج و توضیحات پایه امواج پرداختیم. سپس در ادامه نحوه نصب و الزامات فنی مورد تحلیل قرار گرفت. در نهایت پس از بررسی توابع کلیدی و کاربردی کتابخانه، به اجرای یک نمونه برنامه پرداختیم.

 

چنانچه مطالب ابن آموزش را گنگ یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. تاکنون بیش از هزاران نظر و پاسخ در دیجی اسپارک درج شده است؛ پس نظرات شما ارزشمند بوده و سوالات بی پاسخ نمی مانند.

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه