همان طور که قبلاً هم در سیسوگ بررسی کردیم، پس از اینکه رزبری پای پیکو (pico) با میکروکنترلر اختصاصی RP2040 منتشر شد، افراد زیادی مطابق سلیقه و کاربرد خود، بردهای دیگری را از روی آن طراحی و معرفی کردند. همچنین بردهای آموزشی نیز برای سادهتر شدن کار با آن طراحی شده است. در این مقاله، میخواهیم یکی از این بردهای کمک آموزشی به نام Cytron Maker Pi Pico را معرفی کرده و سپس به کمک CircuitPython برای آن برنامه تست بنویسیم.
مشخصات سخت افزاری Maker Pi Pico
Maker Pi Pico توسط یک شرکت ایتالیایی به نام Crytron و بر پایه رزبری پای پیکو (pico) طراحی شده است.
شاید برای شما مفید باشد: آموزش رزبری پای از 0 تا 100
در این برد آموزشی، خود رزبری پای پیکو در مرکز برد قرار گرفته و سایر قطعات و مدارهای لازم برای تست و آموزش آن، برای سادگی شما بر روی برد قرار گرفتهاند.
همهی پینهای GPIO به LED مجهز شدهاند. بنابراین، برای تست برنامههای سادهای مثل چشمک زن، نیازی به بستن مدار بر روی برد بورد نخواهید داشت. تمام پین هدرها نیز بهصورت مادگی طراحی شدهاند.
برخی ویژگی های برد آموزشی Maker Pi Pico
- 6 کانکتور Grove برای I2C, digital, analog و UART
- 3 دکمه فشاری
- یک RGB LED (NeoPixel) برای تولید انواع رنگها، متصل به GP28
- سوکت اتصال ماژول ESP-01 جهت اتصال وای فای
- کارت حافظه – اسلات میکرو SD کارت متصل به GP10-15
- صدا
- بازر پیزو الکتریک متصل به GP18 به همراه سوئیچ خاموش و روشن
- جک 3.5 میلیمتری استریو برای خروجی صدا متصل به GP18-19
- تغذیه – درگاه اتصال میکرو USB موجود بر روی رزبری پای پیکو
- دکمه ریست
شرکت Crytron کدهای نمونهای برای تست این محصول ارائه کرده است که در ادامه آنها را بررسی خواهیم کرد.
آنباکسینگ Maker Pi Pico
همان طور که در تصویر زیر میبینید، برد Maker Pi Pico به همراه یک Pinout درون یک جعبه قرار دارد. رزبری پای پیکو نیز از قبل بر روی برد آموزشی لحیم شده است.
همه چیز بر روی برد به خوبی علامت گذاری شده است و شما به راحتی میتوانید متوجه شوید که کدام پین به کدام پایه رزبری پای پیکو متصل شده است. همچنین LED هایی که برای هر پین قرار داده شده، برای اشکال زدایی در روند برنامه به شما کمک بسیار زیادی خواهد کرد. همچنین هر کدام از کانکتور های Grove 1 که به I2C, digital, analog و UART متصل هستند، بر روی برد به خوبی مشخص شدهاند.
از آنجایی که این برد جهت استفاده در کلاسهای آموزشی ساخته شده، قسمت سفید رنگی در پشت آن وجود دارد که میتوانید نام خود را با ماژیک بر روی آن بنویسید.
بنابراین اگر در کلاس، برد آموزشی شما با دوستتان جابجا شد، میتوانید آنها را از هم تشخیص بدهید!
اجرای اولین برنامه (چشمک زن) با میکروپایتون!
خوب! بگذارید اول رزبری پای پیکو Pico را به کمک کابل میکرو USB به کامپیوتر متصل کنیم. بزن بریم!
همان طور که میبینید، بار اولی که برد آموزشی Maker Pi Pico را روشن میکنید، برخی از LED ها روشن هستند و موزیک کوتاهی نیز از طریق بازر پخش میشود. این اتفاقات به خاطر فریموری پیش فرضی است که توسط تولید کننده بر روی برد ریخته شده است. برای نصب MicroPython میتوانید از راهنمای شروع Raspberry Pi Pico استفاده کنید. برای عوض کردن فریمور، مجبور نیستید کابل میکرو USB را جدا کنید. تنها کافی است دکمههای Bootsel و RUN (Reset) را بر روی Maker Pi Pico فشار دهید تا وارد حالت بوت لودر شوید. این بدان معناست که هر بار که میخواهید یک فایل UF2 را فلش کنید نیازی به قطع کابل نیست.
ما در اینجا پرونده rp2-pico-20210205-unstable-v1.14-8-g1f800cac3.uf2 را در درایو RPI-RP2 کپی کردیم و برنامه نمونه چشمک زنی را که به زبان MicroPython نوشته شده را بر روی برد بارگذاری کردیم. این برنامه LED قرمز رنگ متصل به GP14 را بهصورت چشمک زن در میآورد. اما دیگر نیازی به سیم کشی ندارید، زیرا تمام GPIO ها بر روی برد به LED متناظر خودشان متصل هستند.
برنامه های نمونه Maker Pi Pico با زبان CIrcuitPython
قطعاً برای بردی مثل Maker Pi Pico با این همه امکانات، به یک برنامه چشمک زن اکتفا نخواهید کرد. برای ویژگیهای جذابی مثل میکرو SD کارت، خروجی صدا و بازر نیز باید برنامههای کاربردی نوشته شود.
شرکت Cytron آموزشهایی را برای توسعه دندگان این برد نوشته است. برای مثال، یاد داده است که چگونه با کمک CIrcuitPython فایلها را از روی میکرو SD کارت بخوانیم و بنویسم. اما ما ابتدا باید مطابق آموزش وب سایت Adafruit، بتوانیم CIrcuitPython را بر روی این برد نصب کنیم. قبلاً در سیسوگ ابزار جدید CircuitPython را برای برنامه نویسی بر روی سیستمهای امبدد معرفی کرده بودیم. نصب CIrcuitPython روندی مشابه نصب MicroPytho دارد. برای این کار ابتدا باید وارد حالت بوت لودر رزبری پای میکرو شد، سپس فریمور مربوط به CIrcuitPython را بر روی برد بریزیم. نام فایل فریموری که وبسایت آدافروت آموزش داده است، adafruit-circuitpython-raspberry_pi_pico-en_US-6.2.0-beta.2.uf2 میباشد.
همچنین در مقاله قبلی، آموزش دادیم که چگونه سیستم عامل یونیکسی FUZIX را برای رزبری پای Pico و میکروکنترلر RP2040 اجرا کنیم.
اگر به سیستمهای امبدد علاقهمند هستید، این مقاله جذاب را نیز از دست ندهید!
برای استفاده از برنامههای نمونه شرکت Cytron، ابتدا باید برنامه Thonny را باز کنید. این برنامه معمولاً بر روی سیستم عامل رزبین وجود دارد. سپس تنظیمات Interpreter را بر روی CircuitPython (generic) قرار دهید و پورت “Pico -CircuitPython CDC control (/dev/ttyACM0)“ را انتخاب کنید.
کد زیر یک فایل بر روی SD کارت ایجاد کرده و متنی را در داخل آن ذخیره میکند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | from board import * from time import * import busio import sdcardio import storage sleep(1) spi = busio.SPI(GP10, MOSI=GP11, MISO=GP12) cs = GP15 sd = sdcardio.SDCard(spi, cs) vfs = storage.VfsFat(sd) storage.mount(vfs, '/sd') with open("/sd/pico.txt", "w") as file: file.write("1. Hello, world!\r\n") with open("/sd/pico.txt", "a") as file: file.write("2. This is another line!\r\n") with open("/sd/pico.txt", "a") as file: file.write("3. Last but not least!") with open("/sd/pico.txt", "r") as file: print("Printing lines in file:") for line in file: print(line, end='') |
زبان CircuitPython یک زبان سطح بالا بوده و بسیاری از پیچیدگیهای مربوط به برنامه نویسی امبدد را از دید شما مخفی میکند. به همین خاطر یک زبان ساده برای یادگیری میباشد. با کدی مشابه، میتوان همین عملیات ساخت فایل را بر روی کامپیوتر نیز انجام داد. (زبان CircuitPython برای کسانی که میخواهند پروژهشان را سریع و ساده انجام دهند، مناسب میباشد. اما یاد گیری آن به عنوان زبان اصلی، برای کسانی که به الکترونیک و نحوه عملکرد سیستمهای امبدد علاقهمند هستند، از آنجایی که با جزئیات سخت افزاری درگیر نمیشوند، توصیه نمیگردد.)
فراموش نکنید که برای ایجاد خط جدید، حتماً از “\r\n” استفاده کنید. دقت داشته باشید که اگر SD کارت خود را بهصورت FAT32 فرمت نکرده باشید، این برنامه اجرا نخواهد شد.
در زمانی که این مقاله نوشته میشود، هیچ آموزشی برای قسمت صوتی این برد نوشته نشده است. در این مخزن گیت هاب میتوانید برنامههای نمونه خوبی را پیدا کنید. در همین مخزن و در مسیر Example Code/CircuitPython/MelodyDoraemon/ دو فایل با نامهای code.py و pitches.py وجود دارد. این برنامه یک ملودی را همراه با رقص نور اجرا میکند. آل ای دی نئوپیکسلی که بر روی برد قرار دارد، توانایی ایجاد رنگهای مختلف را دارد.
در فایلهای این برنامه، میتوانید آرایهای که نتهای موسیقی در آن قرار دارد را پیدا کنید. همین طور قبلاً در مقاله “اجرای ملودی موسیقی به وسیله آردوینو و بازر (Buzzer)” انواع روشهای تولید صدا و ملودی را در مدار بررسی کردیم و بر روی برد آردوینو، ملودیهای مختلفی مثل سوپر ماریو و… را اجرا کردیم. همین طور به کمک کتابخانه گفتار، توانستیم یک آردوینو سخنگو بسازیم!
به طور خلاصه، در حلقه اصلی برنامه بالا، یک فرکانس PWM بر روی پایه GP18 ایجاد میشود. این پایه به بازر و جک خروجی صدا متصل است. RBG LED نیز همراه با ریتم موسیقی به رنگهای قرمز و آبی تغییر میکند.
ویدئو از عملکرد مدار
در این مقاله نسخه مینی را که قیمتی حدود 7.4 داشت را بررسی کردیم. این برد دیگر تولید نمیشود و نسخه جدیدتر این برد با قیمتی حدود 10 دلار عرضه شده است.