برد میکروبیت قابلیت اتصال سنسور و دیوایس های مختلف از جمله موتور و سرو موتور را دارد. در این آموزش روش تست و راه اندازی سرو موتور با برد میکروبیت را دو زبان برنامه نویسی پایتون و MALECODE را یاد خواهیم گرفت. در ادامه آموزش سرو موتور با میکروبیت با مرجع تخصصی برد میکروبیت micro:bit به زبان فارسی، دیجی اسپارک همراه باشید.
سرو موتور Servo motor
توسط شافت سرو موتور میتوانید وسیله های مختلفی را در زاویه مورد نظر قرار دهید. انتخاب نوع سرو موتور بسته به ایده ای که دارید، کاملا متفاوت خواهد بود. سرو موتورها در نوع ظاهر، ابعاد، زاویه چرخش و ولتاژ کاری و جریان مورد نیاز بسیار متفاوت هستند. سرو موتورهای ۱۸۰ درجه زاویه پذیر هستند و امکان تعیین زاویه مشخص بین ۰ تا ۱۸۰ برای سرو موتور فراهم است. سرو موتورها همگی دارای ۳ پایه هستند. سیم نارنجی، سیم قرمز و در نهایت سیم قهوه ای:
- سیم نارنجی: پایه سیگنال PWM است که به پایه های PWM برد های آردوینو و ESP8266 متصل میشود.
- سیم قرمز: پایه VCC پایه تغذیه است و به ۵ ولت متصل میشود. بسته به نوع انتخاب سرو موتور ولتاژ کاری متفاوت است.
- سیم قهوه ای: پایه GND است و به پایه GND برد آردوینو و ESP8266 متصل میشود.
با اعمال ولتاژ ۵ ولت و GND به سرو موتور، میتوان سرو موتور را با سیگنال PWM کنترل کرد. زاویه سرو موتور توسط سیگنال PWM مشخص میشود.
- (Period of PWM (PERIOD = مدت دوره PWM
- (Minimum width of PWM (WIDTH_MAX = حد بالای PWM
- (Maximum width of PWM (WIDTH_MIN = حد پایین PWM
سرو موتور با میکروبیت
برای اتصال سرو موتور به میکروبیت از پایه PWM که در PINOUT پایه های میکروبیت مشخص شده است، استفاده میکنیم. برای این منظور از دستور ANALOG استفاده میکنیم که بدین صورت در کد برنامه تعریف میشود. به عنوان مثال در دیوتی سایکل ۵۰% و فرکانس ۱Hz، ال ای دی به مدت نیم ثانیه در بالاترین حد HIGH و به مدت نیم ثانیه دیگر در پایین تر حد LOW تغییر وضعیت میدهد. اگر فرکانس را تا ۵۰Hz افزایش دهیم، ال ای دی ها با نور بیشتری روشن خواهند شد. در برد میکروبیت با فراخوانی write_analog(511) مقدار دیوتی سایکل ۵۰ درصد است که به معنی نصف خاموش و نصف روشن است. به این معنی که توان در این نقطه برای ولتاژ ۳٫۳ ولت برابر با ۱٫۶۵ ولت خواهد بود. سیگنال دوم ۲۵ درصد است و با دستور write_analog(255) فراخوانی میشود و ولتاژ ۰٫۸۲۵V در خروجی تولید میکند. سیگنال سوم دیوتی سایکل ۷۵ درصد است که توسط دستور write_analog(767) فراخوانی میشود. ولتاژ در این دیوتی سایکل ۲٫۴۷۵V خواهد بود.
- سیم نارنجی سرو موتور را به پایه شماره ۰ میکروبیت اتصال دهید.
- سیم قرمز رنگ سرو موتور را به پایه شماره ۳٫۳ ولت میکروبیت اتصال دهید. پیشنهاد میشود از یک تغذیه جداگانه برای سرو موتور استفاده کنید. سپس از GND تغذیه به GND میکروبیت اتصال دهید.
- سیم قهوه ای سرو موتور را به پایه GND میکروبیت اتصال دهید.
راه اندازی سرو موتور با میکروپایتون
برای کدنویسی آموزش سرو موتور با میکروبیت در میکروپایتون از دو طریق میتوانید اقدام کنید. روش اول استفاده از THONNY PYTHON IDE و روش دیگر استفاده از سایت آنلاین میکروبیت برای کدنویسی پایتون است. کد کامل میکروپایتون برای فرمان به سرو موتور به صورت زیر است.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
تحلیل کدنویسی پایتون سرو موتور
در ابتدا برای شروع کار راه اندازی سرو موتور با میکروبیت نیاز به فراخوانی ماژول میکروبیت داریم. در صورت استفاده از Thonny Python پس از اتصال میکروبیت به سیستم توسط IDE برد میکروبیت شناسایی شده و میتوانید برای کدنویسی اقدام کنید. ماژول میکروبیت به صورت زیر فراخوانی میشود.
from microbit import *
در قدم بعدی استفاده از تابع MAP است که وظیفه ی نگاشت توابع را در کدنویسی به زیان ریاضی بر عهده دارد. توسط تابع map یک مقدار دلخواه از یک بازه به بازه دیگر نگاشت میشود. از این تابع برای اعمال زاویه به سرو موتور استفاده شده است. فرمول تایع map به صورت زیر است.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
راه اندازی سرو موتور با Makecode
برای اجرای برنامه سرو موتور با میکروبیت در Makecode از آدرس زیر وارد صفحه برنامه نویسی شوید. https://makecode.microbit.org/ یک New Project ایحاد کنید. سپس یک نام دلخواه برای آن انتخاب کنید. برای شروع به حلقه ی forever نیاز داریم.
از منو Pins را انتخاب کنید. سپس از بلوک Servo را وارد صفحه کنید.
بلوک Servo write pin را در بلوک forever قرار دهید.
با کلیک بر روی pin در بلوک Servo write میتوانید شماره پایه مورد استفاده را انتخاب کنید. در این آموزش پایه دیتا سرو موتور به پایه شماره ۰ متصل شده است.
برای تغییر زاویه سرو موتور به ترتیب از دو بلوک Servo write pin برای هر بار تکرار میتوانید استفاده کنید. برای اجرای این برنامه برای ایجاد تاخیر در برنامه از تابع pouse بر حسب میلی ثانیه استفاده میکنیم. روش اجرا بدین صورت است. یک بار سرو که به پایه شماره Pin0 متصل است از زاویه ۰ به ۱۸۰ درجه تغییر کرده و سپس با تاخیر یک ثانیه توسط pouse مجدد با فراخوانی بلوک Servo write Pin از زاویه ۱۸۰ درجه به زاویه ۰ درجه تغییر میکند.
نتیجه نهایی به صورت زیر است.
جمع بندی لیدی پای
برای برنامه نویسی سرو موتور و فرمان به شافت سرو موتور در این آموزش از دو روش کدنویسی یعنی میکروپایتون و Makecode استفاده شده است. دستورات و توابع مورد نیاز برای اجرای دستورات پایتون کامل آموزش داده شده است. با توجه به اینکه برای راه اندازی سرو موتور نیاز به PWM داریم، توابع و کلاس های مورد نیاز برای فراخوانی ANALOGWRITE در آموزش یاد داده شده است. اما در حال حاضر آردوینو از سرو موتور در میکروبیت پشتیبانی نمیکند و به همین دلیل از آن استفاده نشده است اما ممکن است در آینده به لیست میکروبیت اضافه شود.
وسایل مورد نیاز
چنانچه در مراحل راه اندازی برد میکروبیت و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
با سلام
آیا امکان اجرای این پروژه با میکروپایتون هم فراهم است؟
با سلام
بله میتوانید با میکروپایتون هم اجرا کنید.