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

استفاده از ورودی و خروجی برد رزبری پای پیکو Raspberry Pi Pico

raspberry-pi-pico-gpio-digital-input-and-output-digispark
نوشته شده توسط پریسا پوربلورچیان

رزبری پای پیکو بهترین انتخاب برای یادگیری میکروپایتون است. رزبری پای پیکو را به سیستم ( لپتاپ )، برد رزبری پای میتوانید وصل کنید و با نصب Thonny برنامه نویسی را آغاز کنید. رزبری پای پیکو دارای پایه های GPIO است که قابلیت اتصال سخت افزارهای مختلف و سنسورهایی که تا به حال با برد آردوینو کار کرده اید، را دارد. در ادامه اولین پروژه با رزبری پای پیکو تحت عنوان استفاده از ورودی و خروجی برد رزبری پای پیکو را اجرا خواهیم کرد. با تنها مرجع تخصصی رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.

 


نصب نرم افزار Thonny


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

 

برای روش نصب Thonny کلیک کنید.

 


استفاده از پایه های GPIO Pico


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

 


برنامه نویسی خروجی پیکو با پایتون


پایتون Python یکی از زبان ها برنامه نویسی محبوب این روزهاست. زبان برنامه نویسی پایتون به دو بخش Interpreter، Object -oriented تعریف می‌شود. میکروپایتون توسعه یافته از زبان برنامه نویسی پایتون است که منحصرا برای میکروکنترلرها و امبدد سیستم ها طراحی شده است و تفاوت های کمی در برنامه نویسی با پایتون دارد که با ورود به آن درک خواهید کرد. در این پروژه هدف تغییر وضعیت یک ورودی و خروجی است که برای درک عمیق مطلب از یک ال ای دی LED استفاده می‌کنیم.

 

استفاده از ماژول machine

ماژول machine از چندین دستورات خاص برای استفاده ی سخت افزاری از بردها تشکیل شده است. اکثر توابع موجود در این ماژول امکان دستیابی مستقیم و بدون محدودیت به بلوک های سخت افزاری را در سیستم فراهم می کند  CPU ، تایمرها و برای اجرای پروژه هایی که برای تعریف ورودی و خروجی ها به آن نیاز داریم، بسیار کاربردی است. از آبجکت Pin در کدنویسی ماژول برای کنترل پایه های I/O استفاده می‌شود. نحوه ی فراخوانی ماژول برای پایه ها به صورت زیر است:

from machine import Pin

# create an output pin on pin #0
p0 = Pin(0, Pin.OUT)

# set the value low then high
p0.value(0)
p0.value(1)

# create an input pin on pin #2, with a pull up resistor
p2 = Pin(2, Pin.IN, Pin.PULL_UP)

# read and print the pin value
print(p2.value())

# reconfigure pin #0 in input mode with a pull down resistor
p0.init(p0.IN, p0.PULL_DOWN)

# configure an irq callback
p0.irq(lambda p:print(p))

 

در مرحله ی اول برای فراخوانی پایه GPIO به عنوان خروجی طبق دستور قبلی همانند زیر کدنویسی می‌کنیم.

from machine import Pin, Timer
led = Pin(14, Pin.OUT)

برای مشخص شدن خروجی از OUT استفاده می‌کنیم و در یک متغیر با اسم دلخواه led قرار میدهیم. در مرحله ی بعدی نیاز به یک وقفه و یک متغیر برای تابع خروجی داریم. در این پروژه خروجی ال ای دی با یک فرکانس مشخص به صورت چمشک زن روشن و خاموش می‌شود.

 

تعریف تابع

برای تعریف تابع در پایتون از def استفاده می‌کنیم. همیشه در ذهنتون باقی بمونه :))) اسم تابع که در این کد با blink مشخص شده است و پارامترهای ورودی رو به روی کلمه ی def نوشته شده است که در این بخش timer را فرخوانی کردیم.

def blink(timer):
    led.toggle()

timer.init(freq=1, mode=Timer.PERIODIC, callback=blink) 

 

کد نهایی پایتون 

برای اجرای کد پایتون، نرم افزار Thonny python و یا هر نرم افزار دیگری که برای کدنویسی انتخاب کرده اید را باز کنید. سپس کد را انتقال دهید.

 

 

با کامپایل کد در Thonny Python ال ای دی با فرکانس ۱ بر روی پایه ی شماره ۴ چشمک زن می‌شود.

from machine import Pin, Timer
led = Pin(15, Pin.OUT)
timer = Timer()

def blink(timer):
    led.toggle()

timer.init(freq=2.5, mode=Timer.PERIODIC, callback=blink)

 


اتصالات


برای انجام اتصالات از تمامی پایه های GP سبز رنگ میتوانید استفاده کنید.

  • پایه ال ای دی را به پایه GP14 اتصال دهید.
  • پایه کوتاه را به پایه GND اتصال دهید.

 


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


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

 

دستور شرطی if

در دستور شرطی if در صورت برقرار بودن شرط دستورات اجرا می‌شود. اگر شرط نوشته شده برقرار است، دستورات اجرا می‌شود.

if conditions:
block of statement(S)

سپس در دستور if پس از نوشته شدن شرط علامت : را مینویسیم.

if button.value():
       led.toggle()
       time.sleep(0.5)

 در این کد اگر کلید فشرده شود در زمان ۰٫۵ ال ای دی فعال می‌شود.

 

کد نهایی پایتون

 

from machine import Pin
import time

led = Pin(14, Pin.OUT)
button = Pin(13, Pin.IN, Pin.PULL_DOWN)

while True:
    if button.value():
       led.toggle()
       time.sleep(0.5)

 


اتصالات


برای انجام اتصالات از تمامی پایه های GP سبز رنگ میتوانید استفاده کنید.

  • پایه ال ای دی را به پایه GP14 اتصال دهید.
  • پایه کوتاه را به پایه GND اتصال دهید.
  • پایه کلید را به پایه ی GP13 اتصال دهید.

 


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


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

ال ای دی

میکروسوییج

 

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

 

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

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

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

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

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

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

۱۷ دیدگاه

    • با سلام
      در thonny ide فقط یک گزینه برای اجرا وجود دارد. بر روی Run Current Script و یا F5 کلیک کنید.

    • با سلام
      در thonny ide فقط یک گزینه برای اجرا وجود دارد. بر روی Run Current Script و یا F5 کلیک کنید.

  • سلام لیدی امیدوارم خوب باشید
    در نرم افزار Thonny برای برنامه نویسی Raspberry pico آیا مثل آردینو نیاز به لایبری داره؟ اگر دارد از کجا باید دانلود کرد آیا لایبری ها بصورت پیش فرض داخل برنامه هستن؟
    راهنمایی بفرمایید ماژول machineبه جای لایبری ها هستن؟ وفقط اسمش عوض شده؟
    سپاس از لطفتون

    • با سلام
      بسیاری از ماژول ها به صورت پیشفرض در ide ها قرار گرفته شده است. اما میتوانید به صورت جداگانه از منو نرم افزار پکیج های مورد نیاز را نصب کنید.

    • سلام
      برای اینکار فایل uf2 را دانلود کنید. سپس با درگ اند دراپ به پوشه رزبری پای پیکو انتقال دهید. قبل از هرکاری کلید bootsel را نگه دارید.

        • برای فلش شدن حافظه رزبری پای پیکو که در سایت رزبری پای این مورد آموزش منتشر شده است. برای فلش رزبری پای همانند زیر اقدام کنید.

          قبل از اتصال کابل کلید bootsel را نگه دارید.
          سپس کابل usb را وصل کنید.
          فایل flash_nuke.uf2 را دنلود کنید.
          پس از اتصال کابل usb به سیستم و باز شدن پنجره RPI-RP2 پوشه دانلود شده را با روش درگ اند دراپ به RPI-RP2 انتقال دهید.
          سپس رزبری پای فلش خواهد شد.

          • لیدی تو خیلی خوب و پر انرژی هستی و آرزو میکنم همیشه باشید ،ممنونم بابت اینکه برای سوالم این همه وقت برای نوشتن گذاشتید توضیحتون کامل و عالی بود
            باز هم سپاس از لطفتون

  • لایبری ها برای رزبری پیکو در Thonny از کجا دانلود کنیم ؟ آیا اسم لایبری برای رزبری پای پیکو در Thonny صحیح است؟ یا ماژول ؟
    سوال دیگرم این بود که چگونه میتوان حافظه رزبری پیکو در آردینو پاک کرد ؟

    • با سلام
      در ide های پایتون میتوانید پکیج های مورد نیاز را نصب کنید. در mu ide و thonny ide این امکان فراهم است.
      در خصوص حذف کافیست کلید bootsel را نگه داشته و سپس توسط uf2 اینکار را انجام دهید.
      برای فلش شدن حافظه رزبری پای پیکو که در سایت رزبری پای این مورد آموزش منتشر شده است. برای فلش رزبری پای همانند زیر اقدام کنید.

      قبل از اتصال کابل کلید bootsel را نگه دارید.
      سپس کابل usb را وصل کنید.
      فایل flash_nuke.uf2 را دنلود کنید.
      پس از اتصال کابل usb به سیستم و باز شدن پنجره RPI-RP2 پوشه دانلود شده را با روش درگ اند دراپ به RPI-RP2 انتقال دهید.
      سپس رزبری پای فلش خواهد شد.

    • با سلام
      توسط def یک تابع در برنامه مینویسیم که دارای یک اسم است و در تابع میتواند یک سری از دستورات را انجام دهد.