- Требуемое оборудование:
- Знакомство с 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-контакт | PIN-код RPI |
VCC | 3,3 В |
GND | GND |
ПДД | 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
Взаимодействие с другими людьми
После этого нам нужно выбрать да и нажать ввод, а затем ОК.
После этого нам нужно перезагрузить Raspberry Pi, выполнив следующую команду:
sodo reboot
Шаг 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-essential python-dev python-pip
И установите библиотеку Raspberry Pi GPIO
sudo pip устанавливает RPi.GPIO
Шаг 4. Установите библиотеку изображений Python и библиотеку smbus.
Наконец, нам нужно установить библиотеку изображений Python и библиотеку smbus в Raspberry Pi с помощью данной команды:
sudo apt-get install python-imaging python-smbus
Шаг 5: установите библиотеку Python 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 установить
Теперь пользователь может найти код интерфейса 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, ширина, высота), контур = 0, заливка = 0) отступ = -2 сверху = отступ снизу = отступ по высоте x = 0 шрифт = ImageFont.load_default () После этого мы можем отправлять данные или изображение в OLED, используя указанный код
# Напишите две строки текста. disp.clear () disp.display () draw.text ((x, top), "OLED-интерфейс", 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) if disp.height == 64: image = Image.open ('img1.png'). convert ('1') else: image = Image. open ('img1.png'). convert ('1') disp.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 пикселей, например:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
Весь код и функции просты для понимания и не требуют дополнительных пояснений. Просто начните и попробуйте поиграть с высотой, шириной и изображениями, а также попробуйте другие функции, чтобы создать еще несколько крутых геометрических фигур.
Полный код Python и демонстрационное видео приведены ниже, и здесь вы найдете изображения, которые мы использовали в этой программе.
Также проверьте OLED-интерфейс с Arduino.