میکروپایتون”سروو موتور”


در آموزش قبل به راه اندازی‌های اولیه pyboard و معرفی چند دستور اولیه میکروپایتون پرداختیم. در این آموزش قرار است به راه اندازی سروو موتور SG90 بپردازیم. میکروپایتون از جمله زبان‌های برنامه نویسی کاربردی برای سخت افزارهای الکترونیکی است. از طرفی تراشه‌های ARM برای این منظور کاملا مناسب و سرعت عمل مناسبی دارند. علاوه بر قیمت اقتصادی، وضعیت بهره‌وری بالاتری هم دارند.

میکروپایتون


“سروو موتور”


سروو موتور های سه سیم استاندارد ” 3wire hobby servo ” دارای پایه‌های Ground , Vcc , Singnal می‌باشند که بصورت کلی با استفاده از pwm قابل کنترل هستند. در pyboard برای این منظور می‌توان از پایه‌های X1 تا X4 استفاذه کرد که در واقع پایه‌های سیگنال ما هستند.

میکروپایتون


“مفهوم PWM در سرو موتور”


مدولاسیون پهنای باند یا PWM یک روش برای بدست آوردن ولتاژ خروجی قابل کنترل و قابل تنظیم از ولتاژ ورودی ثابت یا متغیر می باشد. به عبارت دیگر PWM يک اصطلاح برای نوعی از سيگنال ديجيتال می باشد كه در مدارهایی برای كنترل استفاده می شود. ميكروكنترلر می تواند دو سطح  HIGH و LOW را توليد كند که به ترتیب 5 و 0 ولت می باشند، حال اگر نیاز به ولتاژ 1.5 ولت و يا 4 ولت و يا هر ولتاژی بين 0 و 5 ولت، از PWM استفاده می كنيم.


“کد مرجع برای کنترل سروو”


در این مثال با استفاده از چند خط کد به راحتی می نوانیم سروو موتور مدنظر را کنترل کنیم. توجه داشته باشید که با استفاده از Timer می توانیم pwm تولید و به کنترل سروو بپردازیم.


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


ساخت آبجکت سروو; در بخش id اعداد 1 تا 4 قرار داده می شود که مشخص کننده پایه های X1 تا X4 برد pyboard می باشد.


با این دستور زاویه سروو را مشخص میکنیم، که با تغییر angle، زاویه مدنظر را مشخص و همچنین با برابر کردن time با عدد دلخواه مقدار زمانی که طول می کشد تا سروو به زاویه مدنظر برسد مشخص می شود. در صورت استفاده نکردن از time سروو در اسرع وقت به زاویه تنظیم شده تغییر حالت می دهد. لازم به ذکر است زمان بر اساس میلی ثانیه می باشد.


در این دستور مقدار عرض پالس pwm مشخص می شود، که مقدار بجای value قرار داده خواهد شد.


در دستور زیر مقادیر به شرح زیر قابل تغییر می باشند:

pulse_min ==> حداقل عرض پالس مجاز

pulse_max ==> حداکثر عرض پالس مجاز

pulse_centre ==>  عرض پالس مربوط به موقعیت صفر یا مبدا سروو

pulse_angle_90 ==> عرض پالس مربوط به زاویه 90 درجه

pulse_speed_100 ==>عرض پالس مربوط به سرعت 100


میکروپایتون