آموزش رزبری پای رزبری پای نمایشگر OLED پایتون Python

آموزش راه اندازی نمایشگر OLED درایور SSD1306 با برد رزبری پای و پایتون

نوشته شده توسط پریسا پوربلورچیان

نمایشگرهای OLED در بین دیگر نمایشگرها از به دلیل کیفیت و رزولوشن بسیار بالا پرطرفدار هستند. نمایشگر OLED دارای رابط I2C است و ارتباط با میکروکنترلرها توسط دو پایه I2C که به ترتیب SDA , SCL است برقرار می‌شود. در این آموزش به معرفی و راه اندازی نمایشگر OLED و ارتباط با رزبری پای میپردازیم. در ادامه با مرجع تخصصی رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.

 


نمایشگر OLED SSD1306


محبوب ترین ماژول OLED که در حال حاضر در صنعت الکترونیک و بردهای توسعه میکروکنترلر استفاده می‌شود، نمایشگر OLED با درایور قدرتمند SSD1306 است که در ظاهرهای مختلف به بازار ارائه شده است. چیپ SSD1306 یک کنترل کننده درایور قدرتمند CMOS است. این درایور از پروتکل های ارتباطی I2C و SPI پشتیبانی میکند و با توجه به اینکه در پروتکل I2C تنها با دو پایه برای اتصال نیاز دارد، برای اتصال OLED به میکروکنترلرها از این پروتکل بیشتر استفاده خواهیم کرد. ولتاژ کاری نمایشگر ۳٫۳ و ۵ ولت است و از هر دو پایه های تعذیه میکروکنترلر میتوانید استفاده کنید. زاویه دید نمایشگر ۱۶۰ درجه است و ابعاد آن ۰٫۹۶ اینچ است. نمایشگر دارای ۸ سطر و ۱۲۸ ستون است.

نمایشگر OLED از دو پایه SDA , SCL استفاده می‌کند. پایه SDA پایه Data line و پایه SCL پایه Clock line است که بابستی با پایه های I2C برد میکروکنترلر ارتباط برقرار کند. با توجه به اینکه پروتکل ارتباطی نمایشگر ماژول OLED به صورت I2C است، با تمامی میکروکنترلرهایی که از پروتکل I2C پشتیبانی می‌کنند قابل تست و راه اندازی است و بدون نگرانی با نصب کتابخانه های مرتبط میتوانید ماژول نمایشگر را راه اندازی و استفاده کنید. در این تصویر به ترتیب پایه های GPIO2 و GPIO3 پایه های SDA و SCL هستند که به سنسور و ماژول های I2C متصل می‌شود.

اتصالات برای راه اندازی نمایشگر OLED با رزبری پای - دیچی اسپارک

 

آموزش راه اندازی نمایشگر OLED با رزبری پای - دیجی اسپارک

 


فعال سازی رابط I2C در برد رزبری پای


جهت ارتباط بین سنسور و رزبری پای بایستی رابط I2C را فعال کنید. برای اینکار پس از روشن شدن رزبری پای از منو Preferences بر روی Raspberry pi configuration کلیک کنید:

menu / Preferences / Raspberry pi Configuration

سپس همانند تصویر زیر رابط I2C را فعال Enable کنید.

فعال سازی رابط I2C برد رزبری پای - دیجی اسپارک

 


نصب پکیج Adaruit SSD1306


برای راه اندازی نمایشگر OLED به پکیج Adafruit SSD1306 نیاز داریم. برای اینکار کافیست کامندهای مربوط به کتابخانه را یک به یک نصب کنید. در صورتیکه تا به حال هیچ یک از پکیج های پیش فرض پایتون را نصب نکرده اید و یا از نصب آن ها اطمینان ندارید. یک به یک کامندها زیر را بررسی و در ترمینال وارد کنید.

sudo apt install -y python3-dev
sudo apt install -y python-smbus i2c-tools
sudo apt install -y python3-pil
sudo apt install -y python3-pip
sudo apt install -y python3-setuptools
sudo apt install -y python3-rpi.gpio

در مرحله بعدی بایستی کد I2C ماژول نمایشگر OLED را دریافت کنید. برای اینکار کافیست طبق جدول اتصالات در ابتدا اتصال نمایشگر OLED به رزبری پای را انجام دهید. پایه های SDA و SCL را به ترتیب به GPIO2 و GPIO3 وصل کنید. سپس کامند زیر را وارد کنید تا کد I2C نمایش داده شود.

i2cdetect -y 1

دریافت آدرس I2C در آموزش راه اندازی نمایشگر OLED - دیجی اسپارک

 کد I2C شناخته شده ۳C است که کاملا صحیح است و در دیتاشیت کتابخانه به آن اشاره شده است.

 


نصب کتابخانه پایتون OLED


جهت نمایش متن، شکل های مختلف و عبارات در نمایشگر OLED از کتابخانه Adafruit SSD1306 استفاده می‌کنیم. ترمینال را مجدد باز کرده و در ابتدا کامند زیر را وارد کنید.

sudo apt install -y git

 

 در مرحله بعدی کامند کلون فراخوانی کتابخانه Adafruit python ssd1306 را وارد کنید.

git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git

فراخوانی کتابخانه SSD1306 در راه اندازی نمایشگر OLED رزبری پای - دیجی اسپارک

 

در این مرحله Enter را وارد کنید تا پکیج نصب شود.

نصب پکیج در راه اندازی نمایشگر OLED رزبری پای - دیجی اسپارک

 

 تا این مرحله کتابخانه به درستی نصب شده است. با دستور زیر آن را فراخوانی کنید.

cd Adafruit_Python_SSD1306

 

برای نصب کتابخانه برای پایتون ۲ و پایتون ۳ به ترتیب کامندهای زیر را وارد کنید.

// پایتون ۲
sudo python setup.py install


//پایتون ۳
sudo python3 setup.py install

نصب کتابخانه پایتون 2 و 3 در راه اندازی نمایشگر OLED رزبری پای - دیجی اسپارک

 


اجرای اسکریپت پایتون OLED


برای اجرای اسکریپت پایتون OLED ابتدا از مثال های پیش فرض کتابخانه استفاده می‌کنیم تا با دستورات آشنا شویم.

cd examples

 برنامه هایی که به صورت پیش فرض میتوانید اجرا کنید به صورت زیر است.

  • animate.py
  • buttons.py
  • image.py
  • shapes.py
  • stats.py

 


نمایش اشکال و متن OLED


 به عنوان مثال اولین برنامه پیش فرض shapes.py را اجرا می‌کنیم.

cd Adafruit_Python_SSD1306

cd examples


python shapes.py

نمایش اشکال و متن در راه اندازی نمایشگر OLED - دیجی اسپارک

 

آموزش راه اندازی نمایشگر OLED با رزبری پای - دیجی اسپارک

 


نمایش انیمیشن در OLED


دومین مثال نمایش انیمیشن بر روی OLED است.

cd Adafruit_Python_SSD1306

cd examples


python animate.py

نمایش انیمیشن در راه اندازی نمایشگر OLED - دیجی اسپارک

 

آموزش نمایش انیمیشن در راه اندازی نمایشگر OLED - دیجی اسپارک

 


نمایش متن در OLED


برای نمایش متن مورد نظر در OLED از دستورات و توابع کتابخانه Adafruit Python SSD1306 استفاده می‌کنیم. برای اینکار کافیست یک اسکپریپت پایتون نوشته و اجرا کنید. در مرحله اول یک اسم دلخواه برای نام فایل انتخاب می‌کنیم و در ترمینال با دستور sudo nano معرفی می‌کنیم.

sudo nano oledssd1306.py
import Adafruit_SSD1306
from PIL import Image, ImageDraw, ImageFont
import RPi.GPIO as GPIO


# Adafruit_Python_SSD1306 graphics library configuration for
# SunFounder OLED SSD1306 Display Module.
# Use the configuration compatible with your display module.
# See library "examples" directory for configuration selection.
# ۱۲۸x64 display with hardware I2C and no reset pin
display = Adafruit_SSD1306.SSD1306_128_64(rst=None)

# Setup
display.begin()  # initialize graphics library for selected display module
display.clear()  # clear display buffer
display.display()  # write display buffer to physical display
displayWidth = display.width  # get width of display
displayHeight = display.height  # get height of display
image = Image.new('1', (displayWidth, displayHeight))  # create graphics library image buffer
draw = ImageDraw.Draw(image)  # create drawing object
font = ImageFont.load_default()  # load and set default font

# Draw text
draw.text((0,0), "Hello,\Theladypi!", font=font, fill=255)  # print text to image buffer

# Display to screen
display.image(image)  # set display buffer with image buffer
display.display()  # write display buffer to physical display

# Cleanup
GPIO.cleanup()  # release all GPIO resources

راه اندازی نمایشگر OLED نمایش متن با پایتون و رزبری پای - دیجی اسپارک

 

روش نمایش متن در راه اندازی نمایشگر OLED با رزبری پای - دیجی اسپارک

 


تحلیل کد پایتون OLED


جهت تحلیل کد پایتون در ابتدا دستورات و توابع کتابخانه Adafruit ssd1306 را فراخوانی کنید.

import Adafruit_SSD1306
from PIL import Image, ImageDraw, ImageFont
import RPi.GPIO as GPIO

در مرحله بعد نوع نمایشگر و پایه ریست را انتخاب می‌کنیم.

display = Adafruit_SSD1306.SSD1306_128_64(rst=None)

سپس تنظیمات مربوط به Setup را انجام میدهیم.

display.begin()

display.clear()

display.display()

displayWidth = display.width
displayHeight = display.height


image = Image.new('1', (displayWidth, displayHeight))

draw = ImageDraw.Draw(image)

font = ImageFont.load_default()

در این بخش در ابتدا توابع معرفی نمایشگر OLED را طبق کتابخانه فراخوانی می‌کنیم. سپس به ترتیب طول و عرض نمایشگر را وارد کرده و تعریف می‌کنیم. در مرحله بعد کتابخانه گرافیکی image و با انتخاب یک آبجکت برای آن را تعریف کرده و در برنامه وارد کنید. نمایش متن در OLED به صورت زیر در برنامه با انتخاب فونت و سایز نوشته می‌شود.

draw.text((0,0), "Hello,\nRaspberry Pi!", font=font, fill=255)

به همین سادگی میتوانید متن دلخواه را در برنامه وارد کرده و بر روی نمایشگر OLED نمایش دهید.

پروژه راه اندازی نمایشگر OLED با Raspberry Pi - دیجی اسپارک

 


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


رزبری پای Raspberry pi

ماژول نمایشگر OLED SSD1306

مینی برد بورد

کابل فلت

 

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

 

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

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

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

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

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

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

۳ دیدگاه