- Необхідне обладнання:
- Ознайомлення з OLED-дисплеями:
- Кругова діаграма:
- Підключення OLED до Raspberry Pi:
- Пояснення програмування:
Більшості з нас був би знайомий матричний РК-дисплей розміром 16 × 2 точки, який використовується в більшості проектів для відображення певної інформації для користувача. Але ці РК-дисплеї мають багато обмежень. У цьому підручнику ми збираємось дізнатись про OLED-дисплей та як використовувати їх із Raspberry Pi. На ринку доступно безліч типів OLED-дисплеїв, і існує безліч способів змусити їх працювати. Ми вже використовували 7-контактний OLED з Arduino.
Необхідне обладнання:
- 128 × 64 OLED-модуль дисплея (SSD1306)
- Raspberry Pi
- Макет
- Підключення проводів
- Блок живлення
Ознайомлення з OLED-дисплеями:
Термін OLED означає « органічний світлодіод», він використовує ту саму технологію, яка використовується в більшості наших телевізорів, але має менше пікселів порівняно з ними. Це справді весело, коли ці чудово виглядаючі модулі дисплея поєднуються з Raspberry Pi, оскільки це дозволить нашим проектам виглядати круто. Тут ми розглянули повну статтю про OLED-дисплеї та їх типи. Тут ми використовуємо монохромний 4-контактний OLED-дисплей SSD1306 0,96 ”. Цей РК-дисплей може працювати лише в режимі I2C.
Нижче наведено зв’язки OLED з Raspberry pi:
OLED-штифт | RPI Pin |
VCC | 3.3v |
GND | GND |
SDA | SDA (фізичний штифт 3) |
SCL | SCL (фізичний штифт 5) |
Кругова діаграма:
Підключення OLED до Raspberry Pi:
Спільнота RPI вже надала нам багато бібліотек, які можна безпосередньо використовувати, щоб зробити це набагато простішим. Я спробував кілька бібліотек і виявив, що OLED-бібліотека Adafruit_SSD1306 була дуже простою у використанні і має кілька графічних параметрів, отже, ми будемо використовувати те саме в цьому посібнику.
Крок 1: Увімкніть зв'язок I2C
Перш ніж встановлювати бібліотеку Adafruit SSD1306, нам слід увімкнути зв’язок I2C у Raspberry Pi.
Щоб зробити цей тип у консолі Raspberry Pi:
sudo raspi -config
І тоді з’явиться синій екран. Тепер виберіть варіант інтерфейсу
Після цього нам потрібно вибрати I2C
U
Після цього нам потрібно вибрати так і натиснути клавішу Enter, а потім добре
Після цього нам потрібно перезавантажити Raspberry Pi, виконавши команду нижче:
перезавантаження sodo
Крок 2: Знайдіть адресу OLED I2C та оновіть її
Потім нам потрібно знайти адресу OLED I2C за допомогою даної команди, і ви побачите шістнадцяткову адресу.
sudo i2cdetect –y 1
Потім оновіть Raspberry Pi, використовуючи задану команду:
sudo apt-get update
Крок 3: Встановіть python-pip та бібліотеку GPIO
Після цього нам потрібно встановити pip за допомогою заданої команди:
sudo apt-get install build-vital python-dev python-pip
І встановіть бібліотеку Raspberry Pi GPIO
sudo pip встановлює RPi.GPIO
Крок 4: Встановіть бібліотеку зображень Python та бібліотеку smbus
Нарешті, нам потрібно встановити бібліотеку зображень Python та бібліотеку smbus в Raspberry Pi за допомогою заданої команди:
sudo apt-get встановити python-imaging python-smbus
Крок 5: Встановіть бібліотеку пітонів Adafruit SSD1306
Тепер настав час встановити код бібліотеки python 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, і ви можете грати безпосередньо або налаштувати його самостійно. Тут ми налаштували приклад коду для демонстрації. Повний код Python можна знайти в кінці статті.
Пояснення програмування:
Частина програмування для взаємодії OLED з проектом RPi проста. по-перше, нам потрібно імпортувати деякі необхідні бібліотеки.
час імпорту імпорт Adafruit_GPIO.SPI як SPI імпорт Adafruit_SSD1306 з PIL імпорт Зображення з PIL імпорт ImageDraw з PIL імпорт ImageFont імпорт підпроцесу
Після цього ініціалізуйте дисплей
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, висота)) 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 () Після цього ми можемо надсилати дані або зображення на OLED за допомогою заданого коду
# Напишіть два рядки тексту. 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), "Для більше відео", font = font, fill = 255) draw.text ((x, top + 25), "Відвідати на", font = font, fill = 255) draw.text ((x, top + 34), "www.circuitdigest.com", font = font, fill = 255) # Відобразити зображення. disp.image (image1) disp.display () time.sleep (2), якщо 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), якщо disp.height == 64: image = Image.open ('img3.jpg'). convert ('1') else: image = Image.open ('img3.jpg'). convert ('1')
Цей OLED поставляється у двох варіантах, один - 128 * 32, а інший - 128 * 64, тому користувач може вибрати будь-кого відповідно під час ініціалізації OLED. Тут ми написали цей код для обох. Користувачеві потрібно лише ініціалізувати OLED на 128 * 64 пікселів, наприклад:
дисп = Adafruit_SSD1306.SSD1306_128_64 (перший = RST)
Весь код і функції легко зрозуміти, і подальших пояснень не потрібно. Просто починайте і спробуйте грати з висотою, шириною та зображеннями та спробуйте деякі інші функції, щоб створити ще кілька крутих геометричних фігур.
Повний код python та демонстраційне відео наведено нижче, і тут ви знайдете зображення, які ми використовували в цій програмі.
Також перевірте взаємодію OLED з Arduino.