آموزش رزبری پای رزبری پای پروژه رزبری پای

راه اندازی سرو موتور با رزبری پای پیکو Raspberry Pi PICO

running-servo-motor-with-raspberry-pi-pico--digispark
نوشته شده توسط پریسا پوربلورچیان

راه اندازی سرو موتور با رزبری پای پیکو وابسته به یادگیری مفاهیم الکترونیک یعنی مدولاسیون پهنای باند PWM است. سرو موتور زاویه پذیر است و در کدنویسی میتوانید زاویه مورد نظر را تنظیم کنید. در ادامه با مرجع تخصصی رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.

 


رزبری پای پیکو


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

  • دارای دو UART
  • دارای دو I2C
  • دارای دو SPI
  • دارای کانال PWM
  • دارای یک تایمر با چهار آلارم
  • دارای شمارنده ریل تایم

برد رزبری پای پیکو از کوچکترین قطعات برای پشتیبانی از تراشه RP2040  استفاده کرده است از کریستال گرفته تا منبع تغذیه. اکثر پایه های میکروکنترلر RP2040 از چپ و راست به برد و پایه های IO آورده شده و چهار پایه IO از RP2040 برای عملکردهای داخلی استفاده می‌شود. تکنولوژی ساخت برد رزبری پای پیکو و پایه های GPIO به صورتی است که قابلیت نصب بر روی مکان های دیگر برای اجرا و ساخت پروژه ها را دارد. برای اینکار از ۴۰ ردیف پین هدر استاندارد با فاصله ی ۰٫۱ از یکدیگر قرار گرفته شده است و حتی متناسب با تمامی برد بردهای استاندارد می‌باشد. پیکو از یک BUCK-BOOST SMPS برای تامین ولتاژ ۳٫۳ ولت برای تعذیه RP2040 و مدار داخلی بهره میبرد. به همین دلیل انعطاف پذیری قابل توجهی برای اعمال ولتاژ وجود دارد و  به راحتی میتوانید از تغذیه باتری لیتیومی تک سل و یا باتری ۳ سل AA استفاده کنید. برد رزبری پای پیکو از ۴۰ ردیف پین هدر با استایل ۲۱X51 با ضخامت ۱ میلی متری است. از این ۴۰ پایه ۲۶ پایه منحصرا با ولتاژ ۳٫۳ ولت برای GPIO یعنی پایه های ورودی و خروجی است. از این ۴۰ پایه ۲۳ برای پایه های دیجیتال و ۳ پایه به صورت ADC است. از پایه های دیجیتال برای اتصال سنسورها و ماژول ها با ورودی و خروجی دیجیتال و از پایه های آنالوگ با رابط ADC برای سنسورهای آنالوگ استفاده می‌شود. دقت داشته باشید تمامی پایه های دارای ولتاژ فیکس ۳٫۳ ولت است.

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

 


کدنویسی با THONNY PYTHON


قبل از اقدام به هر کاری بایستی نصب میکروپایتون Thonny در ویندوز را انجام دهیم. قبل از اتصال رزبری پای پیکو به سیستم کلید BOOTSEL را نگه داشته و پس از اتصال کابل MICRO USB و اتصال به سیستم دست خود را از کلید بردارید. با اینکار رزبری پای پیکو شناسایی شده و پنجره ی آن باز می‌شود.

برنامه نویسی با thonny python - دیجی اسپارک

 

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

منوهای thonny python - دیجی اسپارک

 

سپس بر روی Configure Interpreter کلیک کنید. سپس پس از شناسایی رزبری پای پیکو، صفحه ی زیر باز شده و پکیج را نصب کنید. حالا Thonny Python آماده برنامه نویسی برای رزبری پای پیکو است.

thonny پایتون ide رزبری پای - دیجی اسپارک

 


رزبری پای پیکو PWM دارد؟


رزبری پای پیکو قابلیت PWM بر روی تمامی پایه های GPIO را دارد. زمانیکه هر پایه GPIO در نقش PWM تنظیم می‌شود، خروجی هر پایه به صورت موج مریعی با فرکانس و دیوتی سایکل متغیر است. کمترین خروجی فرکانس PWM برابر با ۱۰HZ است. اگر دیوتی سایکل همیشه ۱ باشد، یعنی موج مربی همیشه HIGH است. فرکانس خروجی PWM برابر با ۱/PERIOD است.

raspberry pi pico pinout - digispark

 با توجه به جدول بالا، تمامی پایه های GP برای استفاده از PWM مناسب است.

 

سرو موتور Servo motor

سرو موتور Servo motor، ماژولی با ابعاد کوچک و کم وزن با توان خروجی بالایی است. شافت خروجی سرو موتور Servo motor SG90 توانایی چرخش با زاویه ۱۸۰ درجه در هر مسیر ۹۰ درجه را دارند.خروجی سرو موتور ها به صورت پالس بوده و در حالت “۰”  با پالس ۱٫۵ میلی ثانیه در حالت وسط ، در “۹۰” با پالس ۲ میلی ثانیه تنها در جهت راست، در “۹۰-” با پالس ۱ میلی ثانیه تنها در حالت چپ خواهد چرخید. ولتاژ کاری سرو موتور Servo motor SG90 بین ۴٫۸ تا ۵ ولت DC است. سرو موتور  دارای سه پایه به ترتیب GND , VCC , Signal می‌باشد. سیم قهوه ای پایه GND ، سیم قرمز پایه VCC و سیم نارنجی پایه سیگنال (S) می‌باشد. سروو موتور دارای سه سیم تغذیه ، زمین ، و سیگنال می باشد.سیم تغذیه معمولا قرمز رنگ می باشد و به ۵+ متصل می‌شود .سیم زمین نیز معمولا قهوه ای یا مشکی رنگ می باشد و به زمین مدار متصل می‌شود‌‌ و در اخر سیم سیگنال که معمولا زد ، نارنجی یا سفید می باشد که به یک پین دیجیتال آردوینو متصل می‌شود. توجه داشته باشید در صورتی که قصد راه اندازی بیش از یک سروو موتور را دارید به هیچ عنوان از تغذیه آردوینو Arduino استفاده نکنید و  از یک تغذیه خارجی استفاده کنید.

 


اتصال سرو موتور به رزبری پای پیکو


برای اتصال سرو موتور به رزبری پای پیکو از تمامی پایه های gpio به دلخواه می‌توانیم استفاده کنیم.

  •  پایه قهوه ای که همان GND است که پایه GND رزبری پای پیکو وصل کنید.
  • پایه قرمز که همان VCC است و به پایه شماره ۳۶ وصل کنید.
  • پایه نارنجی که خروجی سیگنال است به پایه GP15 وصل کنید.

مطابق تصویر زیر اتصالات را انجام دهید.

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

 


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


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

from machine import Pin, PWM

سپس از کتابخانه utime برای زمانبندی استفاده می‌کنیم.

import utime

 

به دلخواه سه حالت مختلف برای سرو موتور در نظر میگیریم و با یک متغیر ثابت در برنامه تعریف می‌کنیم.

MID = 1500000
MIN = 1000000
MAX = 2000000

در قدم بعدی پایه های PWM و یک ال ای دی را در خروجی تعریف می‌کنیم.

led = Pin(25,Pin.OUT)
pwm = PWM(Pin(15))

 سپس فرکانس PWM را مشخص می‌کنیم.

pwm.freq(50)

سپس دیوتی سایکل را بر روی حالت MID یعنی کمترین حالت تعریف می‌کنیم.

pwm.duty_ns(MID)

 

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

    pwm.duty_ns(MIN)
    utime.sleep(1)
    pwm.duty_ns(MID)
    utime.sleep(1)
    pwm.duty_ns(MAX)
    utime.sleep(1)

 

کد کامل را کپی و به نرم افزار THONNY PYHTHON انتقال دهید.

from machine import Pin, PWM
import utime

MID = 1500000
MIN = 1000000
MAX = 2000000

led = Pin(25,Pin.OUT)
pwm = PWM(Pin(15))
pwm.freq(50)
pwm.duty_ns(MID)

while True:
    pwm.duty_ns(MIN)
    utime.sleep(1)
    pwm.duty_ns(MID)
    utime.sleep(1)
    pwm.duty_ns(MAX)
    utime.sleep(1)
    
    

 

 


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


رزبری پای پیکو

سرو موتور SERVO MOTOR

برد بورد

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

 

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

 

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

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

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

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

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

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

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

۱۲ دیدگاه

    • با سلام
      بله در بسیاری از آموزش های منتشر شده از def برای انجام یک تسک در برنامه استفاده شده است. بررسی کنید.

  • کار کردن با زبان میکروپایتون خیلی جذابه و اصلا سرعت خوانش و حتی نوشتنش زمین تا آسمون با سی متفاوته

    • با سلام
      بله قطعا وقتی زبانی جدید معرفی می‌شود روش کدنویسی ساده و جذاب تر خواهد شد.

  • با سلام و خسته نباشید
    کد میکروپایتون جذابه و دشواره اما قلم شما و شیوایی در کلام یادگیری رو دوبرابر میکنه

  • سلام
    آیا سنسور سیگنال عصب وعضله EMG رو میشه با رزبری پای پیکو راه اندازی کرده با میکروپایتون ؟

  • سلام
    بنده می‌خوام ۶ عدد سروو ۱۸۰ درجه رو با رزبری پای پیکو راه اندازی کنم، برای این کار نیاز به درایور یا ماژول خاصی هستش؟!
    یک سوال دیگه هم دارم که با توجه به اینکه رزبری ۱۶ پایه PWM داره پس به همین تعداد می‌تونم سروو متصل کنم؟

    ممنونم

    • با سلام
      بله به تعداد پایه های PWM میتوانید از سرو موتور استفاده کنید. به صورت کلی تامین تغذیه کافی برای سرو موتور ضروری است. ولتاژ نهایی را محاسبه کرده و فقط تغدیه سرو موتور را تامین کنید.

  • سلام وقت بخیر
    بنده تمام مراحل را انجام داده‌آم ولی برنامه عمل نمی‌کند و همچین خطایی به بنده می‌دهد:
    Traceback (most recent call last):
    File “”, line 17, in
    KeyboardInterrupt:

    لطفا راهنمایی بفرمایید
    ممنونم