به نام خدا
مقدمه
در جلسه قبل با نحوه دانلود و آمادهسازی ابزارهای مورد نیاز برای کدنویسی به زبان پایتون با رزبری پای پیکو آشنا شدیم. در این جلسه تصمیم داریم به نحوه اتصال و برنامه نویسی نمایشگر SSD1306 مدل I2C به رزبری پای پیکو بپردازیم. واحد خروجی و نمایش اطلاعات یکی از بخشهای مهم یک سیستم کامپیوتری است و برای شروع برنامه نویسی با Raspberry Pi Pico استفاده از یک نمایشگر کوچک با دو پایه دیتا و کلاک و پروتکل I2C گزینه مناسبی به نظر میرسد. ما در این جلسه از یک OLED با چیپ SSD1306 با پروتکل I2C و مدل تک رنگ آبی با ابعاد 128 در 64 پیکسل استفاده میکنیم. دقت داشته باشید که ما از مدل 3.3 ولتی استفاده کردهایم چرا که رزبری پای پیکو روی پایه شماره 36 ولتاژ 3.3 ولت برای اتصال تجهیزات جانبی ارائه میدهد و پایههای دیتای آن نیز 3.3 ولت است.
نصب کتابخانه SSD1306
در میکروپایتون و Thonny IDE دقیقا مثل آردوینو برای کار با ماژولها و قطعات جانبی باید از کتابخانه مخصوص آن استفاده کنیم. برای مشاهده تمام کتابخانهها که مدام بروز میشود میتوانید به لینک زیر مراجعه کنید:
https://github.com/micropython
برای نصب کتابخانه نمایشگر SSD1306 در Thonny IDE از منوی Tools روی Manage Packages کلید کنید:

در پنجره باز شده در فیلد جستجو عبارت ssd1306 را نوشته و روی دکمه Search کلیک کنید. (اینترنت حتما وصل باشد) بعد از چند ثانیه کتابخانه مود نظر پیدا میشود:

روی نام کتابخانه کلیک کنید (چند لحظه هیچ عکس العملی نشان داده نمیشود) بعد از چند ثانیه پنجره زیر باز میشود. در این پنجره روی Install کلیک کنید تا کتابخانه دانلود و نصب شود. اگر در هر کدام از این مراحل به مشکل برخورد کردید ممکن است مشکل از تحریم باشد و نیاز به تغییر IP داشته باشید. بعد از نصب شدن کتابخانه، عبارت ssd1306 در لیست سفید سمت چپ پنجره زیر در زیر عبارت <INSTALL> قرار خواهد گرفت.

برنامه SSD1306 با میکروپایتون برای Pi Pico
تا اینجا کتابخانه نمایشگر SSD1306 را دانلود و نصب کردیم. قدم بعدی کدنویسی برای راهاندازی این نمایشگر میباشد. در صفحه اصلی Thonny IDE اگر هیچ فایل خالی وجود ندارد از منوی File روی New کلیک کرده و یک سند خالی ایجاد کنید. سپس کدهای زیر را در آن وارد نمایید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from machine import Pin, I2C import ssd1306 i2c = I2C(0, scl=Pin(1), sda=Pin(0), freq=400000) oled = ssd1306.SSD1306_I2C(128, 64, i2c) oled.fill(0) oled.text("Be Name Khoda", 10, 0) oled.text("RaspberryPi Pico", 0, 16) oled.text("MicroPython", 20, 32) oled.text("AVR64.com", 55, 55) oled.show() |
در این برنامه در ابتدا کلاسهای Pin و I2C از ماژول machine به برنامه اضافه شده و در خط بعدی کلاس ssd1306 افزوده شده است. یک ماژول حاوی چندین کلاس است و باید طبق خط اول، کلاسهای مورد نیاز را اضافه کرد. در خط 4 یک شی به نام i2c (با حروف کوچک) از کلاس I2C ایجاد کردهایم. در این دستور id و نام پایههای SDA و SCL و در نهایت فرکانس کاری I2C را مشخص نمودهایم. دقت داشته باشید که در هنگام تعریف پایههای SCL و SDA با توجه به pinout برد پیکو در جلسه قبل باید مطابق با I2C و SCL های سخت افزاری روی برد پیکرو تعریف شوند و نمیتوانید هر پایه دلخواهی را تعیین کنید. در خط 6 یک شی به نام oled از کلاس ssd1306.SSD1306_I2C ایجاد کردهایم که پارامترهای آن پیکسلهای طول و عرض نمایشگر و شی i2c ایجاد شده در خط 4 است. در خط 8 با اجرای متد fill از شی oled و مقدار 0 نمایشگر را پاک میکنیم. در خطوط 10 تا 13 با متد text از شی oled و قرار دادن سه پارامتر متن، موقعیت x و موقعیت y عبارات دلخواه را در بافر نمایشگر مینویسیم و در نهایت در خط 15 با متد show محتویات بافر را به نمایشگر انتقال میدهیم.
شماتیک
شماتیک اتصال OLED SSD1306 به برد رزبری پای پیکو مطابق شکل زیر است. به پایه های VCC و GND نمایشگر خود دقت کنید که اشتباه متصل نکنید، در برخی نمایشگرها ممکن است جای این دو پایه با شماتیک زیر متفاوت باشد:

خروجی:
پس از بستن مدار و اتصال نمایشگر و پوت USB روی دکمه فلش سبز رنگ در IDE کلیک کنید. باید خروجی زیر را روی نمایشگر مشاهده نمایید. با ذخیره فایل به اسم main.py در داخل برد در واقع برد را پروگرم کردهاید و با جدا کردن برد از کامپیوتر، برنامه از روی برد اجرا خواهد شد. این کار را در جلسه قبل با برنامه چشمکزن انجام دادیم.

نتیجه گیری:
در این جلسه با نحوه نصب کتابخانهها در میکروپایتون و Thonny IDE برای برد رزبری پای پیکو آشنا شدیم. در جلسه بعدی به امید خدا با بخشهای دیگری از این کامپیوتر کوچک و قدرتمند آشنا خواهیم شد.
منابع:
https://docs.micropython.org/en/latest/library/machine.I2C.html
بازدیدها: 2