میکروبیت micro:bit میکروپایتون Micropython

آموزش برد میکروبیت BBC micro:bit بخش پانزدهم: راه اندازی سرو موتور

getting-started-with-bbc-microbit-step-fifteen-running-servo-motor-digispark
نوشته شده توسط پریسا پوربلورچیان

برد میکروبیت قابلیت اتصال سنسور و دیوایس های مختلف از جمله موتور و سرو موتور را دارد. در این آموزش روش تست و راه اندازی سرو موتور با برد میکروبیت را دو زبان برنامه نویسی پایتون و 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 برد آردوینو - دیجی اسپارک

 

راه اندازی سرو موتور با میکروبیت micro:bit - دیجی اسپارک

 


سرو موتور با میکروبیت


برای اتصال سرو موتور به میکروبیت از پایه PWM که در PINOUT پایه های میکروبیت مشخص شده است، استفاده می‌کنیم.  برای این منظور از دستور ANALOG استفاده می‌کنیم که بدین صورت در کد برنامه تعریف می‌شود.  به عنوان مثال در دیوتی سایکل ۵۰% و فرکانس ۱Hz، ال ای دی به مدت نیم ثانیه در بالاترین حد HIGH و به مدت نیم ثانیه دیگر در پایین تر حد LOW تغییر وضعیت میدهد. اگر فرکانس را تا ۵۰Hz افزایش دهیم، ال ای دی ها با نور بیشتری روشن خواهند شد.  در برد میکروبیت با فراخوانی write_analog(511) مقدار دیوتی سایکل ۵۰ درصد است که به معنی نصف خاموش و نصف روشن است. به این معنی که توان در این نقطه برای ولتاژ ۳٫۳ ولت برابر با ۱٫۶۵ ولت خواهد بود. سیگنال دوم ۲۵ درصد است و با دستور write_analog(255) فراخوانی می‌شود و ولتاژ ۰٫۸۲۵V در خروجی تولید می‌کند. سیگنال سوم دیوتی سایکل ۷۵ درصد است که توسط دستور write_analog(767) فراخوانی می‌شود. ولتاژ در این دیوتی سایکل ۲٫۴۷۵V خواهد بود.

موج مربعی PWM برد میکروبیت - دیجی اسپارک

 

  • سیم نارنجی سرو موتور را به پایه شماره ۰ میکروبیت اتصال دهید.
  • سیم قرمز رنگ سرو موتور را به پایه شماره ۳٫۳ ولت میکروبیت اتصال دهید. پیشنهاد می‌شود از یک تغذیه جداگانه برای سرو موتور استفاده کنید. سپس از GND تغذیه به GND میکروبیت اتصال دهید.
  • سیم قهوه ای سرو موتور را به پایه GND میکروبیت اتصال دهید.

کنترل زاویه سرو موتور با برد میکروبیت micro:bit - دیجی اسپارک

 


راه اندازی سرو موتور با میکروپایتون


برای کدنویسی آموزش سرو موتور با میکروبیت در میکروپایتون از دو طریق میتوانید اقدام کنید. روش اول استفاده از THONNY PYTHON IDE و روش دیگر استفاده از سایت آنلاین میکروبیت برای کدنویسی پایتون است. کد کامل میکروپایتون برای فرمان به سرو موتور به صورت زیر است.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

تحلیل کدنویسی پایتون سرو موتور

در ابتدا برای شروع کار راه اندازی سرو موتور با میکروبیت نیاز به فراخوانی ماژول میکروبیت داریم. در صورت استفاده از Thonny Python پس از اتصال میکروبیت به سیستم توسط IDE برد میکروبیت شناسایی شده و میتوانید برای کدنویسی اقدام کنید. ماژول میکروبیت به صورت زیر فراخوانی می‌شود.

 

در قدم بعدی استفاده از تابع MAP است که وظیفه ی نگاشت توابع را در کدنویسی به زیان ریاضی بر عهده دارد. توسط تابع map یک مقدار دلخواه از یک بازه به بازه دیگر نگاشت می‌شود. از این تابع برای اعمال زاویه به سرو موتور استفاده شده است. فرمول تایع map به صورت زیر است.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

کد نویسی سرو موتور با میکروپایتون در micro:bit - دیجی اسپارک

 


راه اندازی سرو موتور با Makecode


برای اجرای برنامه سرو موتور با میکروبیت در Makecode از آدرس زیر وارد صفحه برنامه نویسی شوید. https://makecode.microbit.org/ یک New Project ایحاد کنید. سپس یک نام دلخواه برای آن انتخاب کنید. برای شروع به حلقه ی forever نیاز داریم.

راه اندازی سرو موتور با Makecode در میکروبیت - دیجی اسپارک

 

از منو Pins را انتخاب کنید. سپس از بلوک Servo را وارد صفحه کنید.

بلوک سرو موتور در makecode - دیجی اسپارک

 

بلوک Servo write pin را در بلوک forever قرار دهید.

پروژه سرو موتور با میکروبیت در makecode - دیجی اسپارک

 

با کلیک بر روی pin در بلوک Servo write میتوانید شماره پایه مورد استفاده را انتخاب کنید. در این آموزش پایه دیتا سرو موتور به پایه شماره ۰ متصل شده است.

انتخاب پایه سرو موتور در برنامه makecode - دیجی اسپارک

 

برای تغییر زاویه سرو موتور به ترتیب از دو بلوک Servo write pin برای هر بار تکرار میتوانید استفاده کنید. برای اجرای این برنامه برای ایجاد تاخیر در برنامه از تابع pouse بر حسب میلی ثانیه استفاده می‌کنیم. روش اجرا بدین صورت است. یک بار سرو که به پایه شماره Pin0 متصل است از زاویه ۰ به ۱۸۰ درجه تغییر کرده و سپس با تاخیر یک ثانیه توسط pouse مجدد با فراخوانی بلوک Servo write Pin از زاویه ۱۸۰ درجه به زاویه ۰ درجه تغییر میکند.

برنامه makecode و راه اندازی سرو موتور میکروبیت - دیجی اسپارک

 

نتیجه نهایی به صورت زیر است.

اتصال سرو موتور Servo sg90 به برد میکروبیت makecode - دیجی اسپارک

 


جمع بندی لیدی پای


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

 


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


سرو موتور SERVO MOTOR

میکروبیت MICROBIT

کابل فلت

شیلد GPIO MICROBIT

 

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

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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