Arduino oled txt. Подключение OLED-дисплея к Raspberry Pi: пошаговая инструкция

Как подключить OLED-дисплей к Raspberry Pi по I2C. Какие библиотеки нужно установить для работы с OLED. Как написать простую программу на Python для вывода текста на OLED-экран. Какие возможности открывает использование OLED-дисплея с Raspberry Pi.

Содержание

Необходимое оборудование для подключения OLED к Raspberry Pi

Для подключения OLED-дисплея к Raspberry Pi понадобится следующее оборудование:

  • Микрокомпьютер Raspberry Pi (любая модель)
  • OLED-дисплей с контроллером SSD1306 (например, размером 0.96 дюйма и разрешением 128×64 пикселя)
  • Соединительные провода
  • Источник питания для Raspberry Pi
  • SD-карта с установленной операционной системой Raspberry Pi OS

Дисплей на основе OLED-матрицы обладает рядом преимуществ по сравнению с обычными ЖК-дисплеями:

  • Высокая контрастность и яркость изображения
  • Широкий угол обзора
  • Низкое энергопотребление
  • Компактные размеры
  • Высокое быстродействие

Это делает OLED-дисплей отличным выбором для различных проектов на основе Raspberry Pi, где требуется компактная графическая индикация.


Схема подключения OLED-дисплея к Raspberry Pi

Подключение OLED-дисплея к Raspberry Pi осуществляется по интерфейсу I2C. Для этого необходимо соединить следующие контакты:

  • VCC дисплея — пин 3.3V Raspberry Pi
  • GND дисплея — пин GND Raspberry Pi
  • SDA дисплея — пин GPIO2 (SDA) Raspberry Pi
  • SCL дисплея — пин GPIO3 (SCL) Raspberry Pi

Важно соблюдать правильную полярность подключения питания, иначе можно повредить дисплей. Остальные контакты дисплея (например, RESET) можно оставить неподключенными.

Настройка интерфейса I2C на Raspberry Pi

Перед использованием OLED-дисплея необходимо активировать интерфейс I2C на Raspberry Pi. Для этого выполните следующие действия:

  1. Откройте терминал Raspberry Pi
  2. Введите команду: sudo raspi-config
  3. Перейдите в раздел «Interfacing Options»
  4. Выберите пункт «I2C» и включите его
  5. Перезагрузите Raspberry Pi

Теперь интерфейс I2C активирован и готов к работе. Можно проверить его наличие командой:

ls /dev/i2c*

Вы должны увидеть устройство /dev/i2c-1.

Установка необходимых библиотек Python

Для работы с OLED-дисплеем на Python потребуется установить следующие библиотеки:


sudo pip3 install adafruit-circuitpython-ssd1306
sudo apt-get install python3-pil

Библиотека adafruit-circuitpython-ssd1306 предоставляет драйвер для работы с контроллером SSD1306. Библиотека PIL (Python Imaging Library) используется для создания изображений и текста.

После установки библиотек можно приступать к написанию программы для управления дисплеем.

Базовая программа для вывода текста на OLED-дисплей

Вот простой пример программы на Python для вывода текста на OLED-дисплей:

import board
import busio
import adafruit_ssd1306

from PIL import Image, ImageDraw, ImageFont

# Создаем I2C интерфейс
i2c = busio.I2C(board.SCL, board.SDA)

# Создаем объект дисплея
display = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c)

# Создаем пустое изображение
image = Image.new("1", (display.width, display.height))
draw = ImageDraw.Draw(image)

# Загружаем шрифт
font = ImageFont.load_default()

# Рисуем текст
draw.text((0, 0), "Hello World!", font=font, fill=255)

# Отображаем на дисплее
display.image(image)
display.show()

Эта программа создает объект дисплея, рисует на нем текст «Hello World!» и выводит его на экран. Вы можете изменять текст, его положение и шрифт по своему усмотрению.


Расширенные возможности работы с OLED-дисплеем

OLED-дисплей предоставляет широкие возможности для отображения различной информации. Вот некоторые идеи применения:

  • Вывод показаний датчиков (температура, влажность и т.д.)
  • Отображение статуса системы (загрузка процессора, свободная память)
  • Создание простых анимаций и эффектов
  • Вывод меню для навигации в программе
  • Отображение графиков и диаграмм

Для более сложной графики можно использовать библиотеку Pillow (PIL) для создания изображений и их вывода на дисплей.

Оптимизация производительности при работе с OLED

При работе с OLED-дисплеем важно учитывать некоторые моменты для оптимизации производительности:

  • Обновляйте только измененные участки экрана, а не весь дисплей целиком
  • Используйте буферизацию для подготовки изображения перед выводом
  • Ограничьте частоту обновления дисплея (например, не чаще 10 раз в секунду)
  • Избегайте сложных шрифтов и большого количества мелких деталей

Соблюдение этих рекомендаций позволит снизить нагрузку на процессор Raspberry Pi и увеличить время автономной работы при питании от батареи.


Применение OLED-дисплея в проектах на Raspberry Pi

OLED-дисплей открывает широкие возможности для создания различных проектов на базе Raspberry Pi. Вот несколько идей применения:

  • Метеостанция с отображением данных о погоде
  • Система мониторинга серверной комнаты
  • Информационное табло для «умного дома»
  • Портативный медиаплеер с экраном
  • Игровая консоль на базе Raspberry Pi

Компактные размеры и низкое энергопотребление OLED-дисплея позволяют создавать портативные устройства с автономным питанием.

Заключение и дальнейшие шаги

Подключение OLED-дисплея значительно расширяет возможности Raspberry Pi по выводу графической информации. Это открывает простор для творчества и создания интересных проектов.

Для дальнейшего изучения возможностей OLED-дисплея рекомендуется:

  • Поэкспериментировать с выводом различных шрифтов и изображений
  • Изучить создание анимаций на дисплее
  • Попробовать вывести на экран показания различных датчиков
  • Создать многоэкранный интерфейс с навигацией

Удачи в ваших проектах с Raspberry Pi и OLED-дисплеем!



Raspberry Pi: работа с OLED дисплеем

OLED дисплей — отличный графический индикатор, который подойдет для многих DIY-проектов, где необходимо следить за какими-нибудь параметрами системы, наблюдать течение процессов или даже играть. Ранее мы уже подключали OLED дисплей к Arduino, и даже делали игровую консоль для игры в подобие Space Invaders.

Вот так выглядит OLED дисплей с матрицей размером 0,96 дюйма и контроллером SSD1306.

Сегодня мы будем разбираться, как работать с OLED на Raspberry Pi 4, хотя подойдет и любая другая версия, даже Zero. Для урока нам понадобится сам микрокомпьютер, блок питания с током не менее 3А и SD-карта памяти объёмом не менее 16 Гб. Разумеется, модуль OLED дисплея и немного проводов, чтобы соединить их вместе.

В корзину

В корзину

В корзину

В корзину

В корзину

Подключение OLED к Raspberry Pi

У платы Raspberry Pi 4 есть все самые популярные интерфейсы, так что для подключения OLED можно использовать как SPI, так и I2C. В этом примере мы остановимся на подключении по I2C шине. Соединяем два устройства по следующей схеме.

Raspberry Pi 4GND3.3VSDA(GPIO02)SCL(GPIO03)
OLED 0,96 ROCGND3.3SDASCL

Однако, если потребуется подключить дисплей по SPI, вот схема:

Raspberry Pi 4 GND 3.3VMOSI(GPIO10)MISO(GPIO09)CLK(GPIO11)GPIO4GPIO5
OLED 0,96 ROC GND 3.3SDADCSCLRSTCS

Установка библиотеки Python для работы с SSD1306

Для написания программы будем использовать язык Python, следовательно, нам нужно установить библиотеку Python для работы с OLED. Причём, OLED бывают разные, с разными контроллерами. Поскольку мы работаем с SSD1306, то и библиотеку подбираем подходящую.

Все последующие действия осуществляем с помощью командной строки. Для этого можно использовать программу-терминал с рабочего стола Raspberry Pi OS, либо SSH соединение.

Устанавливаем библиотеку для работы с дисплеями на контроллере SSD1306.

pip3 install adafruit-circuitpython-ssd1306

Также установим библиотеку PIL, которая пригодится для углублённой работы с изображениями. Предварительно обновим репозиторий пактов операционной системы.

sudo apt-get update
sudo apt-get install python3-pil

И еще одна настройка. Поскольку мы подключаем OLED дисплей по I2C шине, нам нужно её включить в настройках Raspberry, а ещё увеличить скорость обмена по этой шине.

Итак, первое действие. Заходим в настройки Raspberry командой:

sudo raspi-config

Переходим а раздел 5 Interfacing options затем в подраздел P5 I2C и жмём кнопку Yes. Выходим из настроек нажатием кнопки Finish.

Второй действие. Открываем в редакторе файл с настройками:

sudo nano /boot/config.txt

И дописываем в конце строку:

dtparam=i2c_baudrate=1000000

Теперь скорость обмена по I2C у нас будет 1МГц. Сохраняем файл комбинацией клавиш Ctrl+O и выходим из редактора Ctrl+X.

Готово! Теперь перезагружаем систему и переходим к написанию программы.

sudo reboot

Программа для OLED дисплея

Итак, после перезагрузки системы снова заходим в консоль и создаем Python-скрипт:

cd /home/pi
touch oled.py

Открываем его в редакторе:

nano oled.py

И пишем такой код:

import board
from PIL import Image, ImageDraw, ImageFont
import adafruit_ssd1306
# разрешение дисплея
WIDTH = 128
HEIGHT = 64
# ширина рамки
BORDER = 2
# инициализация шины I2C и дисплея с адресом 0x3D
i2c = board.I2C()
oled = adafruit_ssd1306.SSD1306_I2C(WIDTH, HEIGHT, i2c, addr=0x3D)
# заливаем экран черным цветом
oled.
fill(0) oled.show() # будем работать с буфером экрана из библиотеки PIL # первый параметр - цветность дисплея, для монохромного - 1 image = Image.new("1", (oled.width, oled.height)) # draw будет нашим карандашем, которым мы будем рисовать на экране draw = ImageDraw.Draw(image) # рисуем прямоугольник белого цвета во весь экран draw.rectangle((0, 0, oled.width, oled.height), outline=255, fill=255) # рисуем прямоугольник поменьше черным цветом, так мы создаем контурную рамку draw.rectangle( (BORDER, BORDER, oled.width - BORDER - 1, oled.height - BORDER - 1), outline=0, fill=0, ) # загружаем стандартный шрифт font = ImageFont.load_default() # пишем текст в центре экрана text = "RobotClass" (font_width, font_height) = font.getsize(text) draw.text( (oled.width // 2 - font_width // 2, oled.height // 2 - font_height // 2), text, font=font, fill=255, ) # выводим буфер изображения на дисплей oled.image(image) oled.show()

Запускаем программу с помощью интерпретатора python:

python3 oled. py

Если всё было сделано правильно, получаем ожидаемый результат.

«Начинающим» | conture.by

Опубликовано 02.09.2022 автором

Устройство собрано из минимального количества деталей — ESP-01S, ключа на транзисторе, инфракрасного светодиода и стабилизатора напряжения +3,3v и нескольких резисторов. Позволяет управлять вашим телевизором или приставкой (STB) через интернет по принципу интернета вещей. Идея создать такое устройство появилось после получения … Читать далее →

Рубрика: «Начинающим», C++, Автоматика, Программирование, Телевидение | Метки: esp8266, IR control | Добавить комментарий

Опубликовано 01.09.2022 автором

 Дабы не шерстить каждый раз интернет публикую сие.. Очень хороший информативный дисплей GM009605 стоимостью около 1.5$ подключается по шине i2c. Библиотека здесь. Скетч далее в статье.

Рубрика: «Начинающим», C++, Программирование, Радиолюбитель, Технологии | Метки: ESP-01, esp8266, gm009605, LCD0802, LCD1604, LCD2004 | Добавить комментарий

Опубликовано 25. 08.2022 автором

Устройство дистанционной связи представляет собой два одинаково выполненных по конструкции приёмопередатчика на базе трансивера RF1100SE и управлением Arduino Pro Mini. Имеет три кнопки управления [A0, A1, A2] и выводы от трёх оптопар для подачи на дальнейшие исполнительные цепи [7, 8, … Читать далее →

Рубрика: «Начинающим», C++, Автоматика, Программирование, Радиолюбитель | Метки: 433 MHz ham band, Arduino, RF1100SE | Добавить комментарий

Опубликовано 03.08.2022 автором

Мне понадобилось запустить модуль MP3-TF-16P в режиме проигрывания случайных треков. К сожалению, плеер сам не стартует воспроизведение при подаче питания. Необходима какая-либо команда — либо закоротить соответствующую ножку, либо подавать сигналы. На ножках функционал ограничен — только трек «плюс»/»минус». А вот … Читать далее →

Рубрика: «Начинающим», C++, Автоматика, Программирование, Радиолюбитель, Технологии | Метки: mp3-tf-16p, stc15w201 | Добавить комментарий

Опубликовано 14. 07.2022 автором

Данное устройство задумывалось как часы точного времени со спутников GPS, но потом было расширено показывать координаты LAT/LNG, высоту, скорость и направление движения. Схема подключения модулей, листинг скетча для Arduino IDE внутри статьи далее.

Рубрика: «Начинающим», C++, Программирование, Радиолюбитель | Метки: Arduino, GPS, OLED | Добавить комментарий

Опубликовано 23.03.2014 автором

Почти в каждом блоге натыкаюсь на описание ЛУТ. Ну вот и я подготовил серию фото, — шоб былО.

Рубрика: «Начинающим», Радиолюбитель, Технологии | 1 комментарий

Опубликовано 04.01.2012 автором

Около недели я трудился над постройкой синтезатора для своего будущего трансивера. Сначала я планировал осуществить возможность как автономной работы, так и работы в составе ПК, но потом отказался от этой мысли. Синтезатор генерирует синусоидальный сигнал от 3100000 Гц до 3250000 … Читать далее →

Рубрика: «Начинающим», C++, Программирование, Радиолюбитель, Технологии | Метки: DDS, pic18f2550, синтезатор, трансивер | Добавить комментарий

Опубликовано 23. 12.2011 автором

Для тех кто не в курсе… http://energodar.net/energy/radiantnaya/tesla_switch.html Но прикол! Обратите внимание на схему, которая там опубликована…

Рубрика: «Начинающим», Разное, Теория | Метки: интернет, фуфло | 1 комментарий

Опубликовано 18.12.2011 автором

Общие сведения о модуляции Модуляция — это процесс преобразования одного или нескольких информационных параметров несущего сигнала в соответствии с мгновенными значениями информационного сигнала. В результате модуляции сигналы переносятся в область более высоких частот. Использование модуляции позволяет:

Рубрика: «Начинающим», Радиолюбитель, Теория | Метки: ssb, модуляция | Добавить комментарий

Опубликовано 12.05.2011 автором

На днях получил подобный вопрос от одного из посетителей одного из популярных радиолюбительских проектов. Человек ранее имел отношение к радио, но потом отошёл. А вот сейчас пенсия — и захотелось возродить своё хобби. Выложу некоторые мысли. Для начала определимся, кого … Читать далее →

Рубрика: «Начинающим» | 1 комментарий

Как прокручивать текст на Oled-дисплее I2c 0,91 дюйма, 128×32

Элементы, используемые в этом проекте

Аппаратные компоненты

SparkFun Oled 0,91-дюймовый дисплаз х 1

Приложения и онлайн-сервисы

Визуино
Веб-редактор Arduino
Ардуино IDE

Story

В этом уроке мы научимся прокручивать ТЕКСТ на OLED-ДИСПЛЕЕ I2C 0,91″ 128X32 с помощью программного обеспечения Arduino и Visuino.

Смотреть видео!

Шаг 1: Что вам понадобится

1 / 4

Arduino UNO (или любая другая плата)

  • OLED-дисплей
  • Макет
  • Проволочные перемычки
  • Программа Visuino: Скачать Visuino

Шаг 2: Запустите Visuino и выберите тип платы Arduino UNO. Запустите Visuino, как показано на первом рисунке. Нажмите кнопку «Инструменты» на компоненте Arduino (рисунок 1) в Visuino. Когда появится диалоговое окно, выберите «Arduino UNO», как показано на рисунке 2.

Шаг 3: В Visuino добавьте компоненты

  • Добавить компонент «OLED»
  • Выберите «SineIntegerGenerator1» и в окне свойств установите «Амплитуда» на 70, «Частота (Гц)» на 0,2, «Смещение» на 70
  • Выберите «DisplayOLED1» и в окне свойств установите «Высота» на 32
  • Дважды щелкните «DisplayOLED1» и в окне «Элементы» перетащите «Рисовать текст» влево, в окне свойств установите «Размер» на 3, «Текст» на «VISUINO», «Y» на 10, выберите «X», щелкните значок «Закрепить» и выберите «Целое число». РаковинаПин
  • В окне «Элементы» перетащите «Заполнить экран» влево
  • Закрыть окно Элементы
  • Шаг 4: В Visuino Connect Components

    • Подключите вывод «SineIntegerGenerator1» к выводу «DisplayOLED1>DrawText1» X
    • Подключите вывод «SineIntegerGenerator1» к выводу «DisplayOLED1>DrawText1» Clock
    • Подключите вывод «SineIntegerGenerator1» к выводу «DisplayOLED1>Fill Screen1» Clock

    Шаг 5: Сгенерируйте, скомпилируйте и загрузите Arduino Code

    В Visuino внизу щелкните вкладку «Сборка», убедитесь, что выбран правильный порт, затем нажмите кнопку «Скомпилировать/Создать и загрузить».

    Шаг 6: Воспроизведение

    Если вы включите модуль Arduino UNO, OLED-дисплей начнет прокручивать текст «VISUINO», посмотрите видео для подробной демонстрации.

    Поздравляем! Вы завершили свой проект с Visuino. Также прилагается проект Visuino, который я создал для этого урока, вы можете скачать его и открыть в Visuino: https://www. visuino.eu

    Схемы, диаграммы и документы

    Файл Visuino

    Код

    Файл Visuino

    Загрузите файл Visuino ниже

    Кредиты

    Рон

    Разработчик Arduino

    Подписаться We will also email you (max twice a week) to notify you of any new content that is available in your feed. This can be disabled within your account settings.»/>

    Отображение текста на дисплее SSD1306 с ESP32

    Отображение текста на OLED-дисплее SSD1306 с помощью ESP32 , вам нужно будет подключить дисплей к ESP32 и использовать библиотеку, специально разработанную для дисплея ESP32 и SSD1306 .

    Библиотека предоставляет функции для инициализации дисплея, очистки экрана, установки положения курсора и вывода текста или графики на экран.

    В этом уроке мы увидим, как отобразить текст на дисплее SSD1306 с картой ESP32.

    Необходимые компоненты

    ESP32

    ESP32 — недорогой микроконтроллер с низким энергопотреблением со встроенными функциями Wi-Fi и Bluetooth. Это популярный выбор для проектов IoT, который обычно используется для различных приложений, таких как домашняя автоматизация, беспроводное управление и регистрация данных датчиков. ESP32 оснащен двухъядерным процессором, богатым набором периферийных устройств и поддержкой широкого спектра протоколов. Его можно запрограммировать с помощью Arduino IDE и других языков программирования, таких как C, C++ и MicroPython.

    Кроме того, ESP32 имеет широкий спектр функций, включая:

    • Высокопроизводительный процессор с тактовой частотой до 240 МГц
    • Поддержка различных типов беспроводного подключения, таких как Wi-Fi, Bluetooth и Bluetooth с низким энергопотреблением (BLE)
    • Несколько интерфейсов связи, таких как I2C, SPI, UART и I2S
    • Большое количество контактов GPIO для подключения к внешним устройствам и датчикам
    • Встроенный модуль безопасности для безопасной связи

    ESP32 часто используется в проектах, где требуется недорогое устройство с низким энергопотреблением с возможностями Wi-Fi и Bluetooth, и обычно используется с другими датчиками и устройствами для создания проектов IoT, систем домашней автоматизации, беспроводные системы управления и системы регистрации данных.

    Дисплей SSD1306

    SSD1306 — это монохромный OLED-дисплей (органический светоизлучающий диод), который можно использовать для отображения текста и графики. Это небольшой дисплей с низким энергопотреблением, который можно легко интегрировать в самые разные проекты.

    Дисплей SSD1306 управляется с помощью интерфейса I2C или SPI, что позволяет ему взаимодействовать с микроконтроллером или микропроцессором. Обычно для этого требуется всего несколько подключений к микроконтроллеру, таких как Vcc, GND, SDA и SCL для I2C или SCK, MOSI, CS, DC и RST для SPI.

    Дисплей SSD1306 имеет разрешение 128×64 пикселей и может отображать текст и графику в монохромном формате пикселей. Дисплей имеет встроенный зарядный насос, который позволяет ему работать при напряжении до 2,7 В. Это обеспечивает низкое энергопотребление и делает его пригодным для проектов с батарейным питанием.

    Дисплеем SSD1306 можно управлять с помощью различных библиотек, доступных для различных платформ, таких как Arduino, Raspberry Pi, ESP32 и т. д. Эти библиотеки предоставляют набор функций для управления дисплеем и упрощают использование SSD1306 отображает в ваших проектах.

    Библиотеки обычно предоставляют функции для инициализации дисплея, очистки дисплея, установки положения курсора и записи текста или графики на дисплей. Они также предоставляют функции для управления контрастностью и яркостью дисплея.

    В целом, дисплей SSD1306 представляет собой универсальный дисплей с низким энергопотреблением, который можно легко интегрировать в самые разные проекты. Это популярный выбор для создания небольших портативных устройств с батарейным питанием, таких как цифровые часы, индикаторы температуры и другие небольшие графические дисплеи.

    Соединительные провода

    Соединительные провода относится к процессу физического соединения проводов или кабелей с устройством или цепью для установления электрического соединения. Это можно сделать с помощью различных разъемов, таких как вилки, розетки или клеммные колодки. Провода обычно имеют цветовую маркировку для обозначения их функции, например, красный для питания, черный для заземления и желтый для сигналов.

    Тестовая пластина

    Тестовая пластина — это тип печатной платы, которая используется для тестирования электронных компонентов. Обычно он состоит из плоской платы, изготовленной из непроводящего материала, такого как пластик или стекловолокно, с рядом отверстий или контактных площадок, которые используются для соединения электронных компонентов. Тестовая пластина позволяет легко подключать электронные компоненты и тестировать их.

    Крепление

    Для выполнения сборки необходимо подключить:

    • контакт SDA дисплея SSD1306 к контакту D21 карты ESP32

    • контакт SCL дисплея SSD1306 к контакту D22 карты ESP32

    • контакт GND дисплея SSD1306 к контакту GND карты ESP32

    • контакт VCC дисплея SSD1306 к контакту 3,3 В карты ESP32

    Программа Micropython

    Вот программа, которая выводит текст на дисплей SSD1306:

    из машинного импорта Pin, I2C импорт ssd1306 из времени импортировать сон # Назначение контактов ESP32 i2c = I2C(-1, scl=Pin(22), sda=Pin(21)) oled_width = 128 oled_height = 64 oled = ssd1306.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *