در مجموعه آموزش های تحلیل و بررسی کتابخانه ها، این آموزش را به یک کتابخانه کلیدی و کاربردی اختصاص می دهیم. کتابخانه ControlledServo یک کتابخانه کاربردی جهت کنترل سروو موتورهاست. این کتابخانه قادر است تا به سادگی کنترل روی موتور سرو را فراهم نماید. در این آموزش، مطابق رویه معمول، نصب کتابخانه، الزامات فنی، بررسی توابع کلیدی و در نهایت ارایه یک مثال را خواهیم داشت. در ادامه، با مرجع تخصصی رزبری پای و آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
نصب کتابخانه ControlledServo
به منظور استفاده از کتابخانه، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به میشوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.
مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت ControlledServo را تایپ کنید. پس از چند لحظه با تصویر زیر رو به رو می شوید. در این مرحله، کتابخانه را با کلیک بر روی گزینه install، نصب کنید.
الزامات و نکات فنی کتابخانه ControlledServo
پس از نصب کتابخانه، نوبت به بررسی الزامات و نکات فنی آن می رسد. کتابخانه ControlledServo بر روی کلیه بردهای مورد پشتیبانی پلتفرم آردوینو، قابل استفاده است. به عبارت دیگر این کتابخانه می تواند بر روی بردهای مختلف با معماری AVR نظیر آردوینو UNO و یا ESP ها، اجرا شود؛ همچنین توجه داشته باشید که این کتابخانه بر مبنای کتابخانه servo.h توسعه یافته است.
توابع کلیدی و کاربردی کتابخانه
پس از بررسی الزامات و نکات فنی کتابخانه، نوبت به تحلیل توابع کلیدی و کاربردی می رسد. جدول زیر این توابع را تحلیل و بررسی می کند. برای تعیین زاویه شافت سرو موتور بایستی تابع مناسب را در کدها فراخوان کنیم. تمامی این موارد را در جدول زیر میتوانید بررسی کنید.
شرح توابع | ورودی ها | تابع |
این تابع شروع حرکت را مشخص می کند. به صورت پیشفرض با توجه به ورودی ۹۰ درجه، کتابخانه سرو را در حالت ۹۰ قرار می دهد. | ورودی زاویه | void begin(uint8_t angle = 90) |
این تابع موتور را به حرکت در می آورد. ورودی تابع در صورت true بودن، تابع به صورت بلوکه شدن برنامه عمل خواهد کرد. | ورودی از نوع بولین | void move(boolean blocking = false) |
این تابع موتور را بلافاصله به حرکت در می آورد. | بدون ورودی | void moveNow() |
این تابع موتور را به زاویه تعیین شده در ورودی اول می رساند. ورودی دوم اگر true باشد، برنامه در حالت بلاک اجرا نخواهد شد. | ورودی اول زاویه حرکت
ورودی دوم مد کاری |
void moveTo(uint8_t angle, boolean blocking = false) |
این تابع موتور را بلافاصله به زاویه تعیین شده در ورودی، به حرکت در می آورد. | ورودی اول زاویه حرکت
|
void moveToNow(uint8_t angle) { moveTo(angle, true) |
این تابع حرکت موتور را کنترل می کند. در صورتیکه موتور در حال حرکت باشد، خروجی true خواهد شد. | بدون ورودی | boolean moving() |
این تابع حرکت موتور (به صورت غیر همزمان) را متوقف می کند. | بدون ورودی | void stop() |
در حرکت موتور به صورت غیر همزمان، موتور متوقف می شود. | بدون ورودی | bool update() |
این تابع ارتباط برد با موتور را فراهم می سازد. این تابع مشابه تابع begin است. | ورودی شی از نوع کلاس کتابخانه | void setServo(Servo &s) |
این تابع زاویه حرکت موتور را جهت رسیدن به آن، تنظیم می کند. | ورودی جهت تنظیم زاویه | void setAngle(uint8_t angle) |
این تابع زاویه فعلی موتور را در خروجی قرار می دهد. | بدون ورودی | uint8_t getAngle() |
این تابع مقدار کمینه زاویه مجاز برای حرکت موتور را تعیین می کند. | ورودی تنظیم زاویه | void setMin(uint8_t minAngle) |
این تابع مقدار بیشینه زاویه مجاز برای حرکت موتور را تعیین می کند. | ورودی تنظیم زاویه | void setMax(uint8_t maxAngle) |
این تابع میزان آفست(لقی) موتور را تعیین می کند. | ورودی آفست | void setTrim(int8_t trim) |
پس از بررسی توابع کلیدی و کاربردی، نوبت به اجرای یک نمونه برنامه می رسد. از آنجاییکه برنامه نمونه این کتابخانه دارای قسمت های مختلف با ویژگی های متنوع است، پیشنهاد می کنیم در قسمت example کتابخانه، مثال را خود بررسی نمایید.
لوازم مورد نیاز
لینک خرید انواع سرو موتور، کلیک کنید
لینک خرید انواع برد آردوینو، کلیک کنید
جمع بندی
در این آموزش به تحلیل و بررسی کتابخانه ControllServo پرداختیم. این کتابخانه می تواند وضعیت سرو موتور را کنترل نماید. بدین ترتیب شما می توانید به سادگی و بدن درگیر شدن با جزییات، به کمک توابع این کتابخانه به موتور خود فرمان دهید. مطابق رویه معمول آموزش های کتابخانه، ابتدا به نصب، سپس به الزامات فنی، بعد از آن به تحلیل توابع کلیدی پرداخته شد.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.