🍓 اولین برنامهی میکروپایتون روی رزبری پای پیکو: چشمکزن با machine.Pin
هر کسی که برنامهنویسی سختافزار را شروع میکند، اولین کارش روشن و خاموش کردن یک LED است؛ همان «سلام دنیا»ی الکترونیک. در این مقاله همین کار را با میکروپایتون (MicroPython) روی رزبری پای پیکو انجام میدهیم. اگر اسم «ووکوی» یا wokwi را شنیدهای و دنبال یک شبیهساز فارسی هستی که بدون خرید برد بتوانی کد پایتون را روی پیکو امتحان کنی، تا آخر این آموزش با ما باش.
چه چیزی میسازیم؟
یک برنامهی پنجخطی که LED روی خود برد پیکو را هر نیم ثانیه یک بار روشن و خاموش میکند. بعد یک LED بیرونی هم به پایهی GP15 وصل میکنیم تا ببینی وصل کردن قطعه به پیکو چقدر ساده است.
قطعههای لازم
- یک برد رزبری پای پیکو
- یک LED قرمز (برای بخش دوم)
- یک مقاومت ۲۲۰ اهم
- چند سیم جامپر و یک بردبورد
اتصالها
| قطعه | پایهی پیکو |
|---|---|
| LED داخلی | GP25 (روی خود برد، سیمکشی لازم ندارد) |
| پایهی بلند LED بیرونی (آند) | از راه مقاومت ۲۲۰ اهم به GP15 |
| پایهی کوتاه LED (کاتد) | GND |
کد کامل میکروپایتون
from machine import Pin
import time
led = Pin(25, Pin.OUT) # LED داخلی پیکوی معمولی
# led = Pin("LED", Pin.OUT) # روی Pico W این خط را به کار ببر
outside = Pin(15, Pin.OUT) # LED بیرونی روی GP15
while True:
led.toggle()
outside.value(not led.value())
time.sleep(0.5)
توضیح خط به خط
from machine import Pin: ماژولmachineدروازهی میکروپایتون به سختافزار است. کلاسPinیعنی «یک پایهی برد».Pin(25, Pin.OUT): پایهی ۲۵ را خروجی میکنیم. روی رزبری پای پیکوی اصلی (بدون وایفای) LED داخلی دقیقاً به GP25 وصل است.Pin("LED"): روی Pico W چراغ داخلی به چیپ وایفای وصل است، نه به GP25، پس باید با اسم"LED"صدایش کنی. نسخههای جدید فرمور میکروپایتون این اسم را روی پیکوی معمولی هم میشناسند، پس اگر شک داری،Pin("LED")امنتر است.led.toggle(): وضعیت LED را برعکس میکند؛ روشن را خاموش، خاموش را روشن.outside.value(not led.value()): LED بیرونی همیشه برعکس LED داخلی است، پس دو چراغ یکیدرمیان چشمک میزنند.time.sleep(0.5): نیم ثانیه صبر. در میکروپایتون عدد بر حسب ثانیه است، نه میلیثانیه مثلdelay()آردوینو.
while True؟ برنامهی میکروکنترلر نباید تمام شود. این حلقه همان کاری را میکند که تابع loop() در آردوینو انجام میدهد.اجرا در شبیهساز، بدون خرید برد
در تینکرکد فارسی یک پروژهی آماده با همین کد هست. صفحهی چشمکزن با MicroPython روی پیکو را باز کن، کد را بخوان و تغییرش بده. شبیهساز فارسی است، در مرورگر و حتی روی گوشی کار میکند و روی اینترنت ملی هم بدون فیلترشکن باز میشود. برد پیکو و میکروپایتون جزو امکانات اشتراک «پلاس» است؛ یعنی مثال آماده رایگان برای خواندن باز میشود و برای اجرا کردنش به پلاس نیاز داری.
اگر قبلاً با wokwi.com کار کردهای، اینجا همان حس را داری ولی با رابط فارسی، درس و مأموریت. برای آشنایی کلیتر با این برد صفحهی شبیهساز رزبری پای پیکو و برای خود زبان صفحهی میکروپایتون را ببین.
چالش کوچک
عدد 0.5 را به 0.1 تغییر بده تا چراغ تند بزند. بعد سعی کن کد مورس SOS بسازی: سه چشمک کوتاه، سه بلند، سه کوتاه.
اشکالهای رایج
- LED داخلی روشن نمیشود: احتمالاً برد تو Pico W است و
Pin(25)را نوشتهای. بهPin("LED", Pin.OUT)تغییرش بده. - خطای IndentationError: پایتون به فاصلهی اول خط حساس است. همهی خطهای داخل
whileباید دقیقاً با یک اندازه (معمولاً چهار فاصله) جلو رفته باشند. - LED بیرونی روشن نمیشود: جهت LED را چک کن؛ پایهی بلند باید سمت GP15 باشد. یادت باشد شمارهی GP با شمارهی فیزیکی پایه فرق دارد: GP15 پایهی فیزیکی ۲۰ است.
- NameError: name 'time' isn't defined: خط
import timeرا جا انداختهای. - بدون مقاومت: در دنیای واقعی LED بدون مقاومت ممکن است بسوزد یا به پایهی پیکو فشار بیاورد. همیشه ۲۲۰ تا ۳۳۰ اهم بگذار.
قدم بعدی؟ یک دکمه اضافه کن و یاد بگیر با وقفه به آن گوش بدهی: دکمه و وقفه با میکروپایتون روی پیکو.
چشمکزن پیکو را در شبیهساز باز کن 🍓مقالههای مرتبط
دکمه و وقفه (IRQ) با میکروپایتون روی رزبری پای پیکو
نمایشگر OLED و نئوپیکسل با میکروپایتون روی رزبری پای پیکو
آموزش میکروپایتون از صفر: متغیر، شرط، حلقه، تابع، لیست و کار با پایههای برد
راهاندازی نمایشگر OLED SSD1306 با آردوینو و کتابخانهی Adafruit
همهی آموزشهای رزبری پای پیکو و میکروپایتون ← · همهی مقالهها