شما به اینترنت متصل نیستید.
کنترل سروو موتور با برد رزبری | درس نهم
نویسنده:
امتیاز دهید

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

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

کنترل برد رزبری پای با کامپیوتر از راه دور | درس هشتم
کنترل برد رزبری پای با کامپیوتر از راه دور | درس هشتم
بردهای رسپبری پای کاربردهای گسترده ای در پروژه ها دارند، لذا نحوه کنترل و اتصال به آنها برای اجرای دستورات اهمیت زیادی دارد. در این درس کنترل برد رسپبری پای با کامپیوتر از راه دور و در یک محیط گرافیکی که توسط VNC فراهم شده است، آموزش داده می شود.
زمان مطالعه: 15 دقیقه

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

قطعات مورد نیاز:

برای این آموزش شما به قطعات زیر احتیاج دارید، می توانید تمامی قطعات را از بخش فروشگاه اتومی تهیه کنید:

برد رسپبری پای
1 عدد
برد GPIO تی شکل + کابل
1 عدد
سیم اتصال برد بورد
1 عدد
برد بورد
1 عدد
سروو موتور
1 عدد
جعبه باتری 4 تایی
1 عدد

سروو موتور:

مکان و محل قرار گیری سروو موتور با توجه به طول پالس تنظیم می شود. سروو موتور باید یک پالس را تقریبا هر 20 میلی ثانیه دریافت کند. در صورتی که این پالس برای مدت 1 میلی ثانیه در وضعیت high قرار داشته باشد، سروو موتور در زاویه صفر قرار خواهد گرفت، در صورتی که این زمان 1.5 میلی ثانیه باشد، در موقعیت میانی خود قرار می گیرد و در صورتی که 2 میلی ثانیه باشد، در زاویه 180 درجه قرار خواهد گرفت.

نقطه پایانی در مدل های مختلف، متفاوت است و در بیشتر مدل ها مقدار آن 170 درجه می باشد. در صورتی که مدل های continuous را خریداری کنید می توانید تا 360 درجه نیز چرخش انجام دهید.

سخت افزارها:

فقط یک پین بر روی برد رسپبری پای قادر به تولید پالس از این راه می باشد(پین 18 پورت GPIO)، که به پین کنترل سروو موتور متصل می شود. توان مورد نیاز برای راه اندازی سروو از طریق باتری های خارجی تامین می شود، چون در صورت به کارگیری برد رسپبری پای برای تامین توان، به دلیل جریان کشی بالای موتور در هنگام شروع کار، امکان آسیب دیدن برد رسپبری پای وجود دارد. سروو موتورها به ولتاژ 4.8-6 ولت برای راه اندازی احتیاج دارند، در صورتی که ولتاژ سیگنال کنترلی (پالس خروجی) می تواند 3.3 ولت باشد، لذا اتصال مستقیم آن به پین های GPIO مشکلی ایجاد نمی کند.

برد cobbler برای اتصال برد رسپبری پای به بردبورد مورد استفاده قرر می گیرد. در صورتی که قبلا از آن استفاده نکرده اید، درس چهارم از این مجموعه آموزش را مطالعه کنید.

سروو موتور ها دارای سه سیم خروجی می باشند که به یک سوکت متصل شده اند. سیم قرمز و قهوه ای مربوط به تامین توان(مثبت به قرمز متصل می شود) و سیم زرد و یا نارنجی مربوط به سیگنال کنترلی است. برای اتصال آن ها به بردبورد از سیم های جامپر نری به نری استفاده کنید.

نرم افزار:

برای کنترل سروو موتور از ابزار قدرتمند wiringPi مربوط به GPIO استفاده می شود. در ابتدا gpio را نصب کنید:

sudo apt-get install -y wiringpi

پین #18 را به عنوان خروجی PWM تنظیم کنید. gpio -g mode 18 pwm

gpio -g mode 18 pwm

با این دستور پین #18 به عنوان خروجی PWM تنظیم می شود، ولی باید فرکانس آن تنظیم گردد. فرکانس مورد نیاز 50Hz می باشد.

نقشه PWM برای برد رسپبری پای به این صورت است:

PWM Frequency in Hz = 19,200,000 Hz / pwmClock / pwmRange

در صورتی که pwmClock برابر با 192 و pwmRang برابر با 2000 باشد، در این صورت فرکانس PWM برابر با 50Hz خواهد بود.

این اعداد را در gpio تنظیم کنید:

gpio pwm-ms

gpio pwmc 192

gpio pwmr 2000

حال می توانید وضعیت سروو موتور را تنظیم کنید. برای قرارگیری در سمت چپ(1 میلی ثانیه) دستور زیر را وارد کنید:

gpio -g pwm 18 100

جهت قرارگیری در حالت میانی (1.5 میلی ثانیه):

gpio -g pwm 18 150

و برای قرارگیری در سمت راست(2 میلی ثانیه):

gpio -g pwm 18 200

سروو موتورها معمولا به محدوده بیشتر از 1-2 میلی ثاینه نیز پاسخ می دهند، بنابراین سعی کنید اعداد 50 (0.5 میلی ثانیه) و 250(2.5 میلی ثانیه) را نیز تست کنید.

شما می توانید هر عددی بین 50 تا 250 را استفاده کنید، لذا امکان قرارگیری در 200 موقعیت وجود دارد.

همچنین در نظر داشته باشید که خروجی PWM برد رسپبری پای لزوما پایدار نیست و امکان مقداری خطا در آن وجود دارد.

مثال پایتون:

شما همچنین می توانید از wiringPi در پایتون استفاده کنید! دستور زیر را اجرا کنید:

sudo apt-get install -y python-pip

sudo pip install wiringpi

برنامه پایتون برای تنظیم حرکت رفت و برگشتی به صورت زیر می باشد:

# Servo Control

import time

import wiringpi

 

# use 'GPIO naming'

wiringpi.wiringPiSetupGpio()

 

# set #18 to be a PWM output

wiringpi.pinMode(18, wiringpi.GPIO.PWM_OUTPUT)

 

# set the PWM mode to milliseconds stype

wiringpi.pwmSetMode(wiringpi.GPIO.PWM_MODE_MS)

 

# divide down clock

wiringpi.pwmSetClock(192)

wiringpi.pwmSetRange(2000)

 

delay_period = 0.01

 

while True:

        for pulse in range(50, 250, 1):

                wiringpi.pwmWrite(18, pulse)

                time.sleep(delay_period)

        for pulse in range(250, 50, -1):

                wiringpi.pwmWrite(18, pulse)

                time.sleep(delay_period)

پایه و اساس برنامه همان به کارگیری تابع wiringpi می باشد که در اینجا در پایتون به کار رفته است، لذا به راحتی می توانید از امکانات gpio استفاده کرده دستورات را در پایتون وارد کنید.

متغییر delay_period شامل زمان هایی برحسب ثانیه در بین هر پله از حرکت سروو می باشد.

حلقه while همواره ادامه خواهد داشت مگر اینکه برنامه توسط فشردن کلیدهای CTRL-C متوقف گردد. داخل حلقه while دو حلقه یکسان for وجود دارد. حلقه اول طول پالس ها را از 0.5 تا 2.5 میلی ثانیه افزایش داده و حلقه دوم برعکس عمل کرده و طول پالس ها را از 2.5 تا 0.5 میلی ثانیه کاهش می دهد و موقعیت را به حالت اول باز می گرداند.

برای نصب نرم افزار توسط SSH به برد رسپبری پای متصل شده و دستور زیر را وارد کنید:

$ nano servo.py

کد بالا را در ویرایشگر وارد کرده و سپس با استفاده از CTRL-X و Y فایل را ذخیره کنید.

برای اجرای برنامه کنترل سروو موتور فقط دستور زیر را در پنجره SSH وارد کنید:

$ sudo python servo.py

سروو شروع به حرکت خواهد کرد.

نکات نهایی:

در صورتی که می خواهید سروو موتور سریع تر حرکت کند، زمان delay_period را کوچک تر کنید، به طور مثال 0.001 ثانیه. و در صورتی که می خواهید سرعت آن را کاهش دهید این زمان را به 0.1 افزایش دهید.

همچنین امکان کنترل چند سروو موتور توسط برد رسپبری پای وجود دارد که نیاز به استفاده از چند تجهیزات جانبی است. به زودی آموزش مربوط در سایت قرار خواهد گرفت.

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

برای بهتر شدن محتوای مطالب لطف کنید نظرات، انتقادات و پیشنهادات خود را با ما در میان بگذارید...

ترجمه شده و تکمیل توسط تیم الکترونیک اتومی | منبع: سایت adafriut

مطالب مرتبط

معرفی و راه‌اندازی پتانسیومتر، انکودر و سروو موتور با آردوینو آردوینو

معرفی و راه‌اندازی پتانسیومتر، انکودر و سروو موتور با آردوینو

در این آموزش به معرفی پتانسیومتر، انکودر و سروو موتور پرداخته و نحوه راه‌اندازی آنها به کمک آردوینو را بررسی خواهیم کرد.
2 سال قبل
آموزش آردوینو: درس چهاردهم (سروو موتور) آردوینو

آموزش آردوینو: درس چهاردهم (سروو موتور)

سری آموزش آردوینو: درس چهاردهم در این درس یادخواهید گرفت که چگونه یک سروو موتور را توسط آردوینو کنترل کنید. آموزش آردوینو: درس سیزدهم(موتورDC-یخش اول)...
2 سال قبل
کنترل چند سروو موتور با آردوینو آردوینو

کنترل چند سروو موتور با آردوینو

در این آموزش، چگونگی راه‌اندازی و کنترل چند سروو موتور با بردهای آردوینو را فرا خواهیم گرفت. درواقع، در این آموزش چهار سروو موتور را با خروجی PWM آردو...
2 سال قبل
معرفی و راه‌اندازی ماژول کی‌پد فلت و جوی‌استیک با آردوینو آردوینو

معرفی و راه‌اندازی ماژول کی‌پد فلت و جوی‌استیک با آردوینو

در این آموزش قصد داریم به نحوه کار و راه اندازی دو ماژول کی پد فلت و جوی استیک را به کمک آردوینو بپردازیم.
2 سال قبل
معرفی و راه‌اندازی انواع IMU با آردوینو آردوینو

معرفی و راه‌اندازی انواع IMU با آردوینو

در این آموزش یک ابزار مهم برای موقعیت یابی به نام IMU را معرفی و نحوه راه اندازی آن با آردوینو را بررسی می‌کنیم.
2 سال قبل
معرفی و راه‌اندازی انواع ماژول وایرلس با آردوینو آردوینو

معرفی و راه‌اندازی انواع ماژول وایرلس با آردوینو

این مطلب قسمت چهاردهم از آموزش جامع آردوینو (مبتدی و پیشرفته) است. در این قسمت قصد داریم به معرفی ماژول‌های بی‌سیم یا وایرلس بپردازیم. با اضافه کردن ی...
2 سال قبل
آموزش جامع آردوینو (مبتدی و پیشرفته) آردوینو

آموزش جامع آردوینو (مبتدی و پیشرفته)

جمعیت افراد علاقه‌مند به ساختن (Makers) در سال‌های اخیر رشد قابل توجهی داشته است. این موضوع تا حد زیادی مربوط به توسعه نرم‌افزارها و سخت‌افزارهای منبع
2 سال قبل
کنترل استپر موتور با برد رزبری پای | درس یازدهم رزبری پای

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

استپر موتورها در واقع چیزی میان موتورهای DC و سروو موتورها می باشند و این مزیت را دارند که می توان به راحتی آنها را موقعیت یابی کرد. یادگیری کنترل استپر موتور توسط برد رسپبری پای می تواند به شما در پروژه ها کمک کند.
2 سال قبل
نوشتن کتابخانه برای آردوینو آردوینو

نوشتن کتابخانه برای آردوینو

در این آموزش نحوه نوشتن و استفاده از قسمت های مختلف کتابخانه برای آردوینو را بررسی خواهم کرد و به صورت گام به گام یک کتابخانه را می نویسیم.
2 سال قبل
فهرستی از محبوب‌ترین شیلدهای آردوینو آردوینو

فهرستی از محبوب‌ترین شیلدهای آردوینو

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