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

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

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

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

 


مراحل نصب کتابخانه FastAccelStepper


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

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

 

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

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

 


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


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

آردوینو MEGA

آردوینو UNO

آردوینو لئوناردو

برد ESP32

همانطور که گفته شد، کتابخانه FastAccelStepper می تواند گردش استپر موتور را سریع کند. این کتابخانه برای بردهای AVR 76 کیلو گردش بر ثانیه و برای پردازنده های ESP32، ۲۰۰ کیلو استپ بر ثانیه خواهد بود. توجه داشته باشید که جهت راه اندازی استپر موتورها، حتما به درایور احتیاج خواهید داشت. جهت اتصال استپر موتور به میکروکنترلر، مطابق جدول زیر باید عمل کنید. جدول زیر پایه های سیگنال را نمایش می دهد.

پایه ها میکرو کنترلر
۹و۱۰ UNO
۹,۱۰,۱۱ avr atmega32u4
۶,۷,۸ ATMEGA2560
روی هر کدام از پایه ها esp32
روی هر کدام از گروه پایه های زیر:

۳۴/۶۷/۷۴/۳۵

۱۷/۳۶/۷۲/۳۷/۴۲

۴۰/۶۴/۶۹/۴۱

 

ARDUINO DUE

 

 توجه داشته باشید که جهت گردش موتور، می توانید هر پایه را انتخاب کنید.

 


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


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

شرح ورودی ها تابع
این تابع کتابخانه را راه اندازی می کند. بدون ورودی init()

 

این تابع پین استپ را تعیین و اجرا می  کند. ورودی جهت تعیین پین استپ stepperConnectToPin(stepPinStepper)

 

این تابع پین جهت گردش را تعیین و اجرا می کند. ورودی جهت تعیین پین جهت گردش موتور setDirectionPin(dirPinStepper)

 

این تابع پین فعال سازی را تعیین و اجرا می کند. ورودی جهت تعیین پین فعال سازی استپ setEnablePin(enablePinStepper)

 

این تابع می تواند فعال سازی خودکار را فعال کند. ورودی جهت تعیین پین فعال سازی استپ setAutoEnable(true)

 

این تابع فرکانس گردش را تعیین می کند. این تابع تعداد استپ بر ثانیه را تعیین می کند. ورودی جهت تعیین فرکانس setSpeedInHz(frq)

 

این تابع می تواند شتاب گردش را تعیین کند. عدد ورودی شتاب بر مجذور ثانیه را تعیین می کند. ورودی جهت تعیین شتاب setAcceleration(acc)

 

این تابع تعداد استپ جهت گردش موتور را تعیین می کند. ورودی جهت تعیین تعداد استپ move(steps)

 

 


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


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

#include "FastAccelStepper.h"  //کتابخانه استپر
#include "AVRStepperPins.h" // این کتابخانه پایه ها برای بردهای مبتنی برا AVR را تعیین می کند.
//شماره پایه ها
#define dirPinStepper    5
#define enablePinStepper 6
#define stepPinStepper   9

FastAccelStepperEngine engine = FastAccelStepperEngine();  //ایجاد یک شی از کلاس کتابخانه 
FastAccelStepper *stepper = NULL;  //ایجاد یک شی جهت کنترل استپ های موتور

void setup() {
   engine.init();  //راه اندازی اولیه 
   stepper = engine.stepperConnectToPin(stepPinStepper);  //تعیین پین اتباطی 
   if (stepper) {
      stepper->setDirectionPin(dirPinStepper);  //تعیین جهت گردش
      stepper->setEnablePin(enablePinStepper);  //تعیین پین فعال سازی
      stepper->setAutoEnable(true);

      stepper->setSpeedInHz(500);       // تعیین فرکانس استپ بر ثانیه
      stepper->setAcceleration(100);    // تعیین شتاب در اینجا ۱۰۰ استپ بر مجذور ثانیه است.
      stepper->move(1000);  //تعیین ۱۰۰۰ استپ
   }
}

void loop() {
}

 


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


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

لینک خرید ESP32، کلیک کنید

لینک خرید انواع استپر موتور، کلیک کنید

 


جمع بندی


در مجموعه آموزش های تحلیل و بررسی کتابخانه های آردوینو، این قسمت را به یک کتابخانه بسیاری کاربردی و کلیدی پرداختیم.  کتابخانه FastAccelStepper یک کتابخانه کاربردی جهت کنترل استپر موتور است. به کمک این کتابخانه می توانید استپر موتور را با دور و سرعت دلخواه خود کنترل کنید. همچنین به کمک این کتابخانه شما قادر خواهید بود تا شتاب گردش موتور را نیز کنترل کنید. این کتابخانه تا ۷۶ کیلو استپ بر ثانیه برای بردهای آردوینو و برای بردهای esp32 تا ۲۰۰ کیلو استپ موتور را به گردش درآورید.

 

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

معین صابری

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

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

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