رزبری پای پایتون Python پروژه رزبری پای

بخش دوم برنامه نویسی پایتون Python با Raspberry Pi کنترل سرو Servo

Python-with-raspberry-pi-Servo-Motor-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 

شروع پایتون

در بخش اول برنامه نویسی پایتون Python با رزبری پای به دو روش دسترسی به محیط پایتون در رزبین اشاره شد. برای اینکار از منو Raspbian، وارد ترمینال شده و با دستور sudo idle وارد محیط برنامه نویسی پایتون می‌شویم. در این بخش میخواهیم توسط دستورات کدنویسی پایتون سرو موتور در چند چهت مختلف زاویه بگیرد. در ابتدا کدنویسی در محیط پایتون را تحلیل خواهیم کرد.

اتصالات

سرو موتور از سه پایه pwm، vcc و gnd تشکیل شده است. جهت راه اندازی سرو موتور بایستی از پایه های PWM رزبری پای استفاده نماییم.

برنامه نویسی پایتون در رزبری پای Python in raspberry pi - دیجی اسپارک

 


کدنویسی Servo در محیط Python


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

  • import GPIO

همانطورکه در بخش ۱ گفته شد، جهت فراخوانی کتابخانه و ماژول از import استفاده می‌کنیم. در این آموزش از ماژول GPIO استفاده می‌شود و نحوه ی فراخوانی آن به صورت زیر است:

import RPi.GPIO as GPIO
  • import time

پایتون یک ماژول کاربردی به نام time را معرفی کرده است، که این ماژول امکان کنترل زمان در موقعیت های مختلف را برای ما فراهم می‌کند و به صورت زیر فراخوانی می‌شود:

import time
  • GPIO.setmode

توسط این دستور پین gpio و نوع اتصال آن مشخص شود. در این قسمت از شماره پین های Board استفاده می‌کنیم. نحوه‎‌ی فراخوانی به صورت زیر است:

GPIO.setmode(GPIO.BOARD)
  • GPIO.setmode

توسط این دستور پین مورد نظر را به عنوان خروجی تنظیم می‌کنیم:

GPIO.setup(13, GPIO.OUT)
  • PWM

جهت کنترل سرو موتور توسط رزبری پای به ماژول PWM در RPI.GPIO نیاز خواهیم داشت. در ابتدا یک نمونه PWM مرتبط با پایه GPIO تغریف می‌کنیم. برای اینکار کافیست مقدار PWM را در یک متغیر ذخیره نمایید:

P = GPIO.PWM(13, 50)

برای تعریف ماژول PWM بایستی پایه PWM و فرکانس آن مشخص گردد. فرکانس خروجی سرو موتور برابر با ۵۰ پالس در هر ثانیه و یا همان ۵۰Hz است که در تابع مشخص شده است.

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

 

  • start

در این قسمت از برنامه نویسی پایتون Python می‌توانید دیوتی سایکل Duty Cycle برای PWM تعریف کنید. به عبارت دیگر دیوتی سایکل یک مدت زمان را در یک دوره یا یک بازه منظم توصیف می‌کند. به عنوان مثال اگر یک پالس با طول مشخص بخواهیم میتوانیم از طریق فرمول، آن را محاسبه کنیم. برای اینکار میدانیم سرو مدت زمان سیکل آن ۲۰ میلی ثانیه است. سپس با طول ۰٫۵ ، ۱٫۵ و ۲٫۵ دیوتی سایکل را محاسبه خواهیم کرد. دیوتی سایکل از تقسیم طول بر دوره بدست می‌آید:

p.start(2.5)
  • (p.ChangeDutyCycle(dc

جهت تغییر دیوتی سایکل از دستور change استفاده می‌کنیم:

 p.ChangeDutyCycle(2.5)
  • p.stop

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

p.stop()
  • time.sleep

یکی از توابع ماژول time، دستور time sleep است که بر حسب ثانیه secs می‌باشد:

time.sleep(1)
  • GPIO.cleanup

از این دستور جهت غیر فعال کردن پایه GPIO به کار برده شده در برنامه استفاده می‌شود:

 GPIO.cleanup()

 

دستور Try Except

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

 

دستور while true

توسط این دستور تا زمانیکه دستورات یک شرط صحیح باشد، در این تابع اجرا می‌گردد.

کنترل سرو موتور Servo Motor با برد رزبری پای و پایتون - دیجی اسپارک

 


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


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

  • وارد محیط پایتون شده و ctrl + N را بزنید تا پنجره جدید باز گردد.
  • حال کدها را به ترتیب زیر وارد کنید.
  • از منو FILE برنامه نوشته شده را SAVE کنیدو یا از CTRL + S استفاده کنید.

 

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)

GPIO.setup(13, GPIO.OUT)

p = GPIO.PWM(13, 50)

p.start(2.5)

try:
    while True:
        p.ChangeDutyCycle(2.5)  
        time.sleep(1) 
        p.ChangeDutyCycle(12.5)  
        time.sleep(1)
         
except KeyboardInterrupt:
    p.stop()
    GPIO.cleanup()

 

اجرای پروژه پایتون

  • از منو برنامه را ذخیره کنید و یا از کلید رابط CTRL + S استفاده کنید.
  • RUN را انتخاب و یا CTRL + F5 را بزنید.
  • سرو موتور Servo Motor در زاویه ۰ تا ۱۸۰ حرکت خواهد کرد.

 


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


رزبری پای Raspberrypi

سرو موتور servo motor

 

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

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

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

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

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

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

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

۸ دیدگاه