در آموزش قبل به راه اندازیهای اولیه pyboard و معرفی چند دستور اولیه میکروپایتون پرداختیم. در این آموزش قرار است به راه اندازی سروو موتور SG90 بپردازیم. میکروپایتون از جمله زبانهای برنامه نویسی کاربردی برای سخت افزارهای الکترونیکی است. از طرفی تراشههای ARM برای این منظور کاملا مناسب و سرعت عمل مناسبی دارند. علاوه بر قیمت اقتصادی، وضعیت بهرهوری بالاتری هم دارند. در ادامه این آموزش با من همراه باشید در ضمن آموزش کنترل led با میکروپایتون را از دست ندهید.
“سروو موتور”
سروو موتور های سه سیم استاندارد ” ۳wire hobby servo ” دارای پایههای Ground , Vcc , Singnal میباشند که بصورت کلی با استفاده از pwm قابل کنترل هستند. در pyboard برای این منظور میتوان از پایههای X1 تا X4 استفاذه کرد که در واقع پایههای سیگنال ما هستند. برای دسترسی به نام پایهها به آموزش مرجع در این لینک مراجعه کنید.
“مفهوم PWM در سرو موتور”
مدولاسیون پهنای باند یا PWM یک روش برای بدست آوردن ولتاژ خروجی قابل کنترل و قابل تنظیم از ولتاژ ورودی ثابت یا متغیر می باشد. به عبارت دیگر PWM یک اصطلاح برای نوعی از سیگنال دیجیتال می باشد که در مدارهایی برای کنترل استفاده می شود. میکروکنترلر می تواند دو سطح HIGH و LOW را تولید کند که به ترتیب ۵ و ۰ ولت می باشند، حال اگر نیاز به ولتاژ ۱٫۵ ولت و یا ۴ ولت و یا هر ولتاژی بین ۰ و ۵ ولت، از PWM استفاده می کنیم.
“کد مرجع برای کنترل سروو”
در این مثال با استفاده از چند خط کد به راحتی می نوانیم سروو موتور مدنظر را کنترل کنیم. توجه داشته باشید که با استفاده از Timer می توانیم pwm تولید و به کنترل سروو بپردازیم.
import pyb s1 = pyb.Servo(1) # ساخت یک آبجکت با موقعیت X1 s2 = pyb.Servo(2) # ساخت یک آبجکت با موقعیت X2 s1.angle(45) # حرکت دادن سروو ۱ به اندازه ۴۵ درحه s2.angle(0) # حرکت دادن سروو ۲ به اندازه ۰ درحه # حرکت دادن سروو ۱ و ۲ با زاویه مدنظر با در نظر گرفتن زمان ۱۵۰۰ میلی ثانیه s1.angle(-60, 1500) s2.angle(30, 1500)
“تحلیل کد میکروپایتون”
ساخت آبجکت سروو; در بخش id اعداد ۱ تا ۴ قرار داده می شود که مشخص کننده پایه های X1 تا X4 برد pyboard می باشد.
classpyb.Servo(id)
================================================
با این دستور زاویه سروو را مشخص میکنیم، که با تغییر angle، زاویه مدنظر را مشخص و همچنین با برابر کردن time با عدد دلخواه مقدار زمانی که طول می کشد تا سروو به زاویه مدنظر برسد مشخص می شود. در صورت استفاده نکردن از time سروو در اسرع وقت به زاویه تنظیم شده تغییر حالت می دهد. لازم به ذکر است زمان بر اساس میلی ثانیه می باشد.
Servo.angle([angle, time=0])
================================================
در این دستور مقدار عرض پالس pwm مشخص می شود، که مقدار بجای value قرار داده خواهد شد.
Servo.pulse_width([value])
================================================
در دستور زیر مقادیر به شرح زیر قابل تغییر می باشند:
pulse_min
==> حداقل عرض پالس مجاز
pulse_max
==> حداکثر عرض پالس مجاز
pulse_centre
==> عرض پالس مربوط به موقعیت صفر یا مبدا سروو
pulse_angle_90
==> عرض پالس مربوط به زاویه ۹۰ درجه
pulse_speed_100
==>عرض پالس مربوط به سرعت ۱۰۰
Servo.calibration([pulse_min, pulse_max, pulse_centre[, pulse_angle_90, pulse_speed_100]])
================================================
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام وقت بخیر. در میکروپایتون برای اینکه از کتابخونه های مختلف استفاده کنیم، لازم نیست اونها رو فراخوانی کنیم؟ همچنین اگر بخوایم بدونیم کتابخونه های مختلف میکروپایتون کجاس که ببینیم و از توابعشون استفاده کنیم باید چکار کنیم؟ لیست کل کتابخانه هایی که داره. از goto نمیشه استفاده کرد و به تابع رسید؟
سلام، برای فراخوانی کتابخانه ها از import استفاده میکنیم.
هر کتابخانه بعد از منتشر شدن یک سری منبع و داکیومنت براش معرفی میشه که با سرچ کردن اسم کتابخونه می تونید به این منابع دسترسی داشته باشد در ضمن برای نصب کتابخانه های مختلف در pyboard، بزودی آموزشی منتشر خواهد شد.
. میکروپایتون از جمله زبانهای برنامه نویسی کاربردی برای سخت افزارهای الکترونیکی است
میکروپایتون زبان برنامه نویسی نیست یک پیاده سازی زبان برنامه نویسی پایتون هست!
اصلاح شود 🙂
تعبیر شما کاملا درست هست اما این جمله توسط خود توسعه دهنده ها هم استفاده میشه و از طرف عده ای دیگر هم رد میشه. پس زیاد درگیر جزئیات نباشید. یادبگیرید، استفاده کنید، خلاق باشید 🙂