🍓 رزبری پای پیکو (Raspberry Pi Pico)

رزبری پای پیکو چیست؟ برد میکروکنترلر ارزان با تراشه‌ی RP2040 که با آردوینو C++ یا MicroPython برنامه‌نویسی می‌شود. پایه‌های GP، منطق ۳٫۳ ولت و فرق با آردوینو و رزبری پای معمولی.

Pico
رزبری پای پیکو (Raspberry Pi Pico)

رزبری پای پیکو چیست؟

پیکو یک برد میکروکنترلر کوچک و ارزان از بنیاد رزبری پای است با تراشه‌ی RP2040. با رزبری پای معمولی فرق دارد: پیکو کامپیوتر نیست و سیستم‌عامل ندارد؛ مثل آردوینو یک برنامه را مدام اجرا می‌کند. دو راه برای برنامه‌نویسی‌اش هست: MicroPython یا آردوینو C++.

مشخصهمقدار
تراشهRP2040 — دو هسته‌ی ۱۳۳ مگاهرتز
حافظه۲۶۴ کیلوبایت رم و ۲ مگابایت فلش
پایه‌ها۲۶ پایه‌ی GPIO (GP0 تا GP22 و GP26 تا GP28)
آنالوگ۳ ورودی: A0 تا A2 روی GP26 تا GP28
ولتاژ منطق۳٫۳ ولت
LED داخلیGP25

پایه‌ها را چطور بخوانم؟

روی برد کنار هر پایه نوشته GPn؛ در برنامه همان عدد n را می‌نویسی. مثلاً LED روی GP15 یعنی pinMode(15, OUTPUT). چراغ داخلی برد روی GP25 است که در آردوینو اسمش LED_BUILTIN است.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);   // GP25 on a Pico
  Serial.begin(115200);
}

void loop() {
  int raw = analogRead(A0);       // GP26
  Serial.println(raw);
  digitalWrite(LED_BUILTIN, raw > 512 ? HIGH : LOW);
  delay(100);
}

در شبیه‌ساز

در مود آردوینوی شبیه ساز مدار، «Raspberry Pi Pico» را از بخش Microcontrollers بیاور و به هر دو زبان برنامه بنویس: آردوینو C++ (همان روشی که هسته‌ی arduino-pico روی برد واقعی استفاده می‌کند) یا MicroPython با from machine import Pin. شبیه‌ساز از خود کد می‌فهمد کدام است و برای پایتون، مفسر واقعی MicroPython را در مرورگر اجرا می‌کند (آموزش MicroPython روی پیکو). پایه‌ها ۳٫۳ ولتی‌اند و A0 تا A2 روی GP26 تا GP28 هستند.

در MicroPython این‌ها به مدار وصل‌اند: Pin، ADC، PWM (و سروو با فرکانس ۵۰ هرتز)، Timer، Pin.irq، نمایشگر OLED با ssd1306 و نوار رنگی با neopixel (پروژه‌ی آماده).

تازه‌ها در MicroPython: گفت‌وگو، UART، LCD و DHT

۱) حرف زدن با برنامه با input(): برنامه در Serial Monitor سؤال می‌پرسد، تو در جعبه‌ی پایین جواب را می‌نویسی و «ارسال» را می‌زنی. پروژه‌ی آماده: گفت‌وگو با input().

name = input("What is your name? ")
print("Hello", name)
n = int(input("How many blinks? "))

۲) پیام فرستادن با machine.UART: UART0 همان Serial Monitor است و UART1 به ماژول بلوتوث HC-05 و «گوشی مجازی» وصل است. از گوشی ۱ یا ۰ بفرست تا LED روشن و خاموش شود: UART و بلوتوث با MicroPython.

from machine import Pin, UART
bt = UART(1, baudrate=9600, tx=Pin(4), rx=Pin(5))
bt.write("Hello from the Pico\n")
if bt.any():
    cmd = bt.readline()

۳) LCD با I2C و ۴) دماسنج DHT: با درایور معروف i2c_lcd روی LCD کاراکتری می‌نویسی و با dht.DHT11 دما و رطوبت را از سنسور DHT می‌خوانی. i2c.scan() هم نشان می‌دهد چه قطعه‌هایی روی I2C هستند (LCD روی 0x27، OLED روی 0x3C). پروژه‌ی آماده: LCD و DHT11 با MicroPython.

from machine import Pin, I2C
from i2c_lcd import I2cLcd
import dht

i2c = I2C(0, sda=Pin(4), scl=Pin(5))
lcd = I2cLcd(i2c, 0x27, 2, 16)
sensor = dht.DHT11(Pin(15))
sensor.measure()
lcd.putstr("Temp: %d C" % sensor.temperature())
⚠️ هنوز نه: دیباگر پایتون، شکل دلخواه در LCD (custom_char) و خواندن واقعی سنسورهای I2C دیگر (مثل ساعت RTC که فقط در scan() دیده می‌شود). UART هم به سیم‌کشی نگاه نمی‌کند؛ شماره‌ی ۰ یا ۱ مهم است.

سؤال‌های رایج

آیا برای MicroPython باید برد بخرم؟

نه. مفسر واقعی MicroPython داخل مرورگر اجرا می‌شود و LED، LCD، سنسور و بلوتوث روی صحنه واکنش نشان می‌دهند.

چطور به برنامه‌ی پایتون عدد بدهم؟

با input(): متن را در جعبه‌ی Serial Monitor بنویس و ارسال کن. چون جواب همیشه متن است، برای عدد از int() استفاده کن.

کدام LCD با MicroPython کار می‌کند؟

LCD کاراکتری ۱۶×۲ با ماژول I2C (آدرس 0x27) با درایورهای i2c_lcd و lcd_api، و نمایشگر OLED با ssd1306.

پیکو یا آردوینو یا ESP32؟

رزبری پای پیکو در شبیه‌ساز 🍓

🛒 قبل از خرید، لیست خرید قطعات الکترونیک را ببین و قطعه را اول در شبیه ساز مدار امتحان کن.

پروژه‌هایی که از این قطعه استفاده می‌کنند

🍓

دیمر LED با رزبری پای پیکو

🐍

چشمک‌زن با MicroPython (پیکو)

🐍

دیمر LED با MicroPython (پیکو)

🐍

دکمه و وقفه با MicroPython (پیکو)

🐍

OLED و نئوپیکسل با MicroPython (پیکو)

🐍

گفت‌وگو با input() در MicroPython (پیکو)

یاد بگیر، امتحان کن، بعد بخر

قطعات مرتبط

💡

LED (دیود نورانی)

🟤

مقاومت (Resistor)

🔘

دکمه فشاری (Push Button)

بیشتر بخوان در ووکوی فارسی