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

تحلیل و بررسی کتابخانه PAJ7620U2

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

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

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

 


سنسور تشخیص حرکت اندام PAJ720U2


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

 

این سنسور دارای سازگاری کامل با بردهای آردوینو و رزبری پای است. به طور کلی ویژگی ها و خصوصیات این سنسور را می توان به صورت زیر در نظر گرفت.

  • دارای ولتاژ کاری ۳٫۳ الی ۵ ولت
  • دارای رابط سریال I2C
  • قابلیت تشخیص حرکت از ۵ سانتی متر الی ۱۵ سانتی متر
  • قابلیت تشخیص حرکت به صورت بالا، پایین، چپ، راست، رو به جلو، رو به عقب، ساعت گرد، پادساعتگرد، لرزش

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

 


نصب کتابخانه PAJ720U2


همانطور که اطلاع دارید، کتابخانه ها یکی از ابزارهای کلیدی و کاربردی در برنامه نویسی به شمار می روند. به کمک این ابزار، می توانیم توابع نوشته شده در فایلهایی به نام کتابخانه ذخیره کرده و سپس در پروژه های متعدد از آن استفاده کنیم.  همانطور که پیشتر گفته شد، برای راه اندازی و کار با ماژول PAJ کتابخانه توسعه داده شده است. برای استفاده از این کتابخانه، ابتدا باید آن را نصب کنیم. برای نصب کتابخانه در محیط آردویینو، ابتدا مطابق تصویر زیر بر روی گزینه Tools و سپس Manage Libraries کلیک کنید.

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

 

پس از کلیک بر روی گزینه Manage Libraries، در صفحه ظاهر شده، در قسمت کادر جستجو، عبارت TM1637 را جستجو نموده و کتابخانه مشخص شده در تصویر زیر را نصب نمایید.

مراحل نصب کتابخانه PAJ7620U2 در آردوینو - دیجی اسپارک

 


الزامات و نکات فنی کتابخانه PAJ7620U2


پس از نصب کتابخانه، نوبت به بررسی الزامات و نکات فنی آن می رسد. کتابخانه سنسور تشخیص حرکت بر روی کلیه بردهای مورد پشتیبانی پلتفرم آردوینو قابلیت فعالیت دارد. به عبارت دیگر این کتابخانه مستقل از معماری پردازنده بوده و بر روی بردهای مبتنی بر تراشه AVR نظیر UNO و بردهای دارای پردازنده XTENSA نظیر ESPP8266 و ESP32 قابل اجراست. توجه داشته باشید که این کتابخانه جهت برقراری ارتباط، از پورت سریال I2C  جهت ارتباط با میکروکنترلر استفاده می کند.

 


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


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

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

توجه: این تابع دارای مقدار پیشفرض است، پس نیازی به تعیین مقدار ورودی نیست.

آدرس اشاره گر پورت I2C DFRobot_PAJ7620U2(TwoWire *pWire=&Wire)
راه اندازی و برقراری ارتباط با سنسور بدون ورودی   int begin(void)
این تابع سرعت تشخیص را تعیین می کند. در صورتیمه ورودی TRUE باشد، سنسور حرکت ها را سریع تشخیص می دهد. در صورتیکه ورودی FALSE شود، سنسور با دقت بیشتری به تشخیص حرکات می پردازد. ورودی از نوع بولین void setGestureHighRate(bool b)
این تابع حرکت تشخیص داده شده را در خروجی قرار می دهد. این خروجی پیشتر تعریف شده است. در جدول بعد این مقادیر را مشاهده خواهیم کرد. بدون ورودی eGesture_t getGesture(void);
این تابع داده ها را در خروجی به صورت رشته نمایش می دهد. ورودی این تابع خروجی تابع بالاست. ورودی از نوع خروجی تابع بالا   String gestureDescription(eGesture_t gesture)

 

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

شرح خروجی
بدون حرکت eGestureNone
                       حرکت به سمت راست eGestureRight
حرکت به سمت چپ eGestureLeft
حرکت به سمت بالا eGestureUp
حرکت به سمت پایین eGestureDown
حرکت رو به جلو eGestureForward
جرکت رو به پایین eGestureBackward
حرکت در جهت عقربه های ساعت eGestureClockwise
حرکت در خلاف جهت عقربه های ساعت eGestureAntiClockwise
حرکت به صورت موج مانند و سریع eGestureWave
حرکت به صورت اتفاقی و آرام eGestureWaveSlowlyDisorder
حرکت آرام به سمت چپ و راست eGestureWaveSlowlyLeftRight
حرکت آرام به سمت بالا و پایین eGestureWaveSlowlyUpDown
حرکت آرام رو به جلو و رو به عقب eGestureWaveSlowlyForwardBackward

 


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


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

#include <DFRobot_PAJ7620U2.h> //اضافه کردن کتابخانه 
DFRobot_PAJ7620U2 paj;  //تعریف شی از کلاس کتابخانه

void setup()
{
  Serial.begin(115200);
  delay(300);
  Serial.println("Gesture recognition system base on PAJ7620U2");
  while(paj.begin() != 0){
  }
  Serial.println("PAJ7620U2 init completed, start to test the gesture recognition function");
  paj.setGestureHighRate(true);  //تنظیم حالت پر سرعت

}

void loop()
{

  DFRobot_PAJ7620U2::eGesture_t gesture = paj.getGesture();  //تعریف شی برای دریافت خورجی از تابع
  if(gesture != paj.eGestureNone ){
    String description  = paj.gestureDescription(gesture);//تبدیل خروجی به رشته
    Serial.println("--------------Gesture Recognition System---------------------------");  //نمایش در سریال مانیتور
    Serial.print("gesture code        = ");Serial.println(gesture);
    Serial.print("gesture description  = ");Serial.println(description);
    Serial.println();
  }
}

 


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


انواع برد آردوینو

انواع برد ESP         

سنسور تشخیص حرکت PAJ7620U2

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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