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

محتویات
سلام. آموزش اتصال نمایشگر OLED SSD1306 به رزبری پای را آماده کردیم.
نمایش متن روی صفحه نمایش OLED با رزبری پای
ما با صفحه نمایش ال سی دی کاراکتری 16*2 که در بیشتر پروژه ها برای نمایش برخی اطلاعات به کاربر استفاده می شود آشنا هستیم. اما این نمایشگرهای LCD محدودیت های زیادی دارند. در این آموزش قصد داریم درباره نمایشگر OLED و نحوه استفاده از آنها با Raspberry Pi بیاموزیم. انواع زیادی از نمایشگرهای OLED در بازار وجود دارد و روشهای زیادی برای استفاده از آنها وجود دارد.
فیلم زیر نحوه عملکرد نمایشگر OLED SSD1306 را نمایش میدهد.
ما قبلا این نمایشگر را با آردوینو راه اندازی کردیم :
- آموزش کامل پروژه ساخت کد QR آردوینو با نمایشگر OLED SSD1306
- آموزش کامل پروژه ساعت هوشمند با آردوینو با ماژول بلوتوث HC05 / HC06
توضیحات ماژول نمایشگر OLED SSD1306 64*128
اصطلاح OLED مخفف Organic Light emitting diode است به معنی دیود تابش نور ارگانیک. این نوع صفحه نمایشگر ها از همان فناوری استفاده شده در بیشتر تلویزیون ها استفاده میکنند اما نسبت به آنها پیکسل های کمتری دارند. استفاده از این نمایشگر ها باعث جذاب تر شدن پروژه های ما میشود. در اینجا ، ما از یک صفحه نمایش OLED تک رنگ 4 پین SSD1306 سایز 0.96 اینچ استفاده می کنیم. این صفحه نمایش فقط می تواند در حالت I2C کار کند. تصویر نمایشگر OLED SSD1306 را در پایین مشاهده میکنید.
توضیحات پین های نمایشگر OLED :
- VCC = ولتاژ 3.3
- GND = GND
- SDA = پین فیزیکی 3 (SDA)
- SCL = پین فیزیکی 5 (SCL)
مدار پروژه اتصال نمایشگر OLED به رزبری پای
در تصویر زیر شماتیک مدار این پروژه را مشاهده میکنید.
در جدول زیر اتصالات OLED با Raspberry pi آورده شده است:
پین نمایشگر | پین رزبری پای |
VCC | 3.3v |
GND | GND |
SDA | SDA – pin 3 |
SCL | SCL – pin 5 |
قطعات مورد نیاز
- ماژول صفحه نمایش OLED 128*64 SSD1306
- رزبری پای
آموزش اتصال OLED به رزبری پای
جامعه رزبری پای کتابخانه های فراوانی را در اختیار ما قرار داده است که میتوانند به صورت مستقیم برای ساده تر کردن این پروژه استفاده شوند. پس از امتحان چند کتابخانه، دریافتیم که کتابخانه Adafruit_SSD1306 OLED بسیار راحت و پیشرفته است و گزینه های گرافیکی زیادی دارد.
مرحله 1: ارتباط I2C را فعال کنید.
قبل از نصب کتابخانه Adafruit SSD1306 ، لازم است ارتباط I2C را در رزبری پای فعال کنیم.
برای انجام این کار :
sudo raspi-config
و سپس یک صفحه آبی ظاهر می شود. اکنون گزینه interface option را انتخاب کنید
پس از این ، ما نیاز به انتخاب I2C داریم
پس از این ، ما باید yes را انتخاب کنیم و کلید enter و سپس ok را بزنیم.
پس از این ، ما باید با دستور زیر raspberry pi را راه اندازی مجدد کنیم :
sodo reboot
مرحله 2: آدرس OLED I2C را پیدا کنید و آن را به روز کنید.
سپس باید با استفاده از دستور داده شده ، آدرس OLED I2C را پیدا کنیم و شما یک آدرس hex را خواهید دید.
sudo i2cdetect –y 1
سپس Raspberry Pi را با استفاده از دستور داده شده به روز کنید:
sudo apt-get update
مرحله 3: کتابخانه python-pip و GPIO را نصب کنید.
باید pip را با استفاده از دستور داده شده نصب کنیم:
sudo apt-get install build-essential python-dev python-pip
و کتابخانه Raspberry Pi GPIO را نصب می کنیم.
sudo pip installs RPi.GPIO
مرحله 4: کتابخانه Python Imaging و کتابخانه smbus را نصب کنید.
ما باید با استفاده از دستور داده شده ، کتابخانه Python Imaging و کتابخانه smbus را در رزبری پای نصب کنیم:
sudo apt-get install python-imaging python-smbus
مرحله 5: کتابخانه پایتون Adafruit SSD1306 را نصب کنید.
اکنون زمان آن است که با استفاده از دستورات داده شده ، كتابخانه و مثال های Adafruit SSD1306 را نصب كنید:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
اکنون کاربر می تواند کد ارتباط نمایشگر OLED را در Raspberry Pi پیدا کند و شما می توانید مستقیماً آن را اجرا کنید یا آن را شخصی سازی کنید. در اینجا ما یک کد نمونه برای نمایش را تنظیم کرده ایم.
آموزش برنامه نویسی SSD1306
کد برای راه اندازی نمایشگر OLED SSD1306 بسیار ساده است. کد کامل در انتهای صفحه در فایل دانلودی قرار داده شده است. در اینجا بعضی از قسمت های کد را بررسی میکنیم.
import time import Adafruit_GPIO.SPI as SPI import Adafruit_SSD1306 from PIL import Image from PIL import ImageDraw from PIL import ImageFont import subprocess
سپس مقادیر اولیه نمایشگر را تعریف میکنیم.
RST = 0 disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST) disp.begin() disp.clear() disp.display() width = disp.width height = disp.height image1 = Image.new('1', (width, height)) draw = ImageDraw.Draw(image1) draw.rectangle((0,0,width,height), outline=0, fill=0) padding = -2 top = padding bottom = height-padding x = 0 font = ImageFont.load_default()
سپس با استفاده از کد زیر میتوانیم تصویر دلخواه را نمایش بدهیم.
disp.clear() disp.display() draw.text((x, top), "OLED Interfacing " , font=font, fill=255) draw.text((x, top+8), "Circuit Digest", font=font, fill=255) draw.text((x, top+16), "For more Videos", font=font, fill=255) draw.text((x, top+25), "Visit at", font=font, fill=255) draw.text((x, top+34), "www.circuitdigest.com", font=font, fill=255) # Display image. disp.image(image1) disp.display() time.sleep(2) if disp.height == 64: image = Image.open('img1.png').convert('1') else: image = Image.open('img1.png').convert('1') disp.image(image) disp.display() time.sleep(2) if disp.height == 64: image = Image.open('img3.jpg').convert('1') else: image = Image.open('img3.jpg').convert('1')
این مدل نمایشگر OLED در دو نوع ارائه می شود یکی 128 * 32 و دیگری 128 * 64 است. در اینجا ما این کد را برای هر دو نوشته ایم. کاربر فقط نیاز به تغییر قسمت زیر دارد :
disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود