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

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

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

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

 

در این درس یاد خواهید گرفت که چگونه سرعت و جهت چرخش موتور DC را توسط برنامه پایتون و آس سی L293D کنترل و به حرکت در اورید .

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

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

برای انجام این پروژه به لوازم زیر نیاز دارید:

 

برد رسپبری پای ۱ عدد
برد بورد ۱ عدد
سیم اتصال به برد بورد ۱ بسته
برد GPIO تی شکل + کابل ۱ عدد
موتور ۶ ولت DC ۱ عدد
آی سی درایور موتور L293D ۱ عدد
جعبه باتری ۴ تایی ۱ عدد
PWM:

مدولاسیون پهنای پالس یا PWM یک تکنیک برای کنترل توان و قدرت می باشد.

در این درس از PWM برای کنترل میزان توان وارد شده به موتور و میزان سرعت آن استفاده می شود.

دیاگرام پایین سیگنال های PWM تولید شده توسط برد رسپبری پای را نشان می دهد.

 

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

هر ۱/۵۰۰ ثانیه، خروجی PWM یک پالس تولید می کند. طول این پالس میزان انرژی دریافتی موتور را کنترل می کند.

در صورتی که پالسی ارسال نگردد، موتور حرکت نمی کند. در صورتی که پالس کوتاه باشد،

سرعت چرخش پایین است و به همین صورت هرچه طول پالس افزایش یابد، سرعت چرخش موتور نیز افزایش پیدا خواهد کرد.

 

آی سی L293D:

L293D یک آی سی بسیار کارآمد و مفید بوده و توانایی کنترل دو موتور را به طور مجزا را داراست.

در این درس فقط از نیمی از آن برای کنترل موتور DC استفاده می شود،

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

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

 

 

L293D دو پین برای +V دارد(پین ۸ و ۱۶). پین +Vmotor(8) توان مورد نیاز برای موتور و پین

+V(16) توان منطقی برای آی سی را فراهم می کند. در اینجا پین ۱۶ به ۵V و پین ۸ به جعبه باتری متصل خواهد شد.

 

سخت افزار:

دو دلیل برای نیاز به استفاده از تراشه L293D در این مقاله وجود دارد. اولین دلیل این است

که خروجی برد رسپبری پای به هیچ عنوان توانایی لازم برای راه اندازی مستقیم یک موتور را ندارد،

در صورت انجام این کار برد رسپبری پای آسیب خواهد دید (حتی امکان سوختن برد نیز وجود دارد )

مورد دوم، در این درس هدف کنترل جهت چرخش موتور DC در کنار سرعت آن است.

این کار فقط با تغییر دادن جهت جریان عبوری از سیم پیچ های موتور امکان پذیر است،

که آی سی L293D برای این کار طراحی شده و توسط دو پین کنترلی آن را انجام می دهد.

 

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

شما فقط لازم دارید که از نیمی از برد بورد را استفاده کنید.

 

نرم افزار:

علاوه بر اینکه نیاز است پین ها کنترل شوند،( متصل شده به پین های ۴ و ۱۷ از پورت GPIO) همچنین لازم است

تا کتابخانه GPIO نصب گردد.

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

شاید راحت ترین راه اتصال به برد رسپبری پای توسط SSH و باز کردن پنجره ویرایشگر توسط دستور زیر:

nano motor.py

سپس کد زیر را وارد کرده و  در انتها  فایل ها را توسط CTRL-x ذخیره کنید:

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

 

کد را در اینجا مشاهده می کنید:

import RPi.GPIO as io

io.setmode(io.BCM)

 

in1_pin = 4

in2_pin = 17

 

io.setup(in1_pin, io.OUT)

io.setup(in2_pin, io.OUT)

 

def set(property, value):

try:

f = open(“/sys/class/rpi-pwm/pwm0/” + property, ‘w’)

f.write(value)

        f.close()

except:

print(“Error writing to: ” + property + ” value: ” + value)

 

set(“delayed”, “0”)

set(“mode”, “pwm”)

set(“frequency”, “500”)

set(“active”, “1”)

 

def clockwise():

io.output(in1_pin, True)

io.output(in2_pin, False)

 

def counter_clockwise():

io.output(in1_pin, False)

io.output(in2_pin, True)

 

clockwise()

 

while True:

cmd = raw_input(“Command, f/r 0..9, E.g. f5 :”)

direction = cmd[0]

if direction == “f”:

clockwise()

else:

counter_clockwise()

speed = int(cmd[1]) * 11

set(“duty”, str(speed))

 

این برنامه پایتون در ابتدا دو پین GPIO را به عنوان خروجی تنظیم می کند.

سپس از تابع set استفاده می شود،

سپس از آن برای تنظیم پارامترهای PWM استفاده می شود.

در ادامه دو تابع دیگر با نام های clockwise و  counter_clockwise وجود دارد،

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

در صورتی که هر دوپین کنترلی high و یا هردو low باشند، موتور حرکت نخواهد کرد.

ولی در صورتی که IN1 برابر high و پین IN2 برابر با low باشد،

موتور در یک جهت چرخیده و با تغییر دادن وضعیت این دو پین، جهت چرخش تغییر خواهد کرد.

حلقه اصلی برنامه منتظر می ماند تا شما دستوری را به صورت یک حرف f یا r و یک عدد دیجیتال بین ۰ تا ۹ وارد کنید.

حرف وارد شده جهت چرخش موتور و عدد وارد شده برای سرعت آن را را مشخص می کند،

البته با ضرب شدن در عدد ۱۱ که نتیجه آن عددی بین ۰ تا ۹۹ می باشد که توسط کتابخانه PWM شناخته می شود.

تست و نکات نهایی:

برای اجرای برنامه باید آن را در حالت super user اجرا کنید تا به پین های GPIO دسترسی داشته باشید، لذا دستور زیر را تایپ کنید:

 

sudo python motor.py

سپس برنامه از شما درخواست می کند تا دستورات مربوط به سرعت و جهت چرخش را وارد کنید. موارد آورده شده در زیر را آزمایش کنید:

$sudo python motor.py

Command, f/r 0..9, E.g. f5 :f9

Command, f/r 0..9, E.g. f5 :r4

Command, f/r 0..9, E.g. f5 :

 

 

 

 

 

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

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

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

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

 

 

 

ارسال دیدگاه

enemad-logo