Arduino oled txt: GitHub — tremaru/iarduino_OLED_txt

Содержание

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.3V MOSI(GPIO10)MISO(GPIO09)CLK(GPIO11)GPIO4GPIO5
OLED 0,96 ROC GND 3.3 SDADCSCLRSTCS

Установка библиотеки 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 не будет опубликован. Обязательные поля помечены *