Arduino и картинка на i2c экране 0.96″

команды, freebsd, убунту, настройка, установка, сервер, server, ubuntu, сервер, arduino

Для одного из своих проектов на Arduino решил использовать очень маленький дисплей, размером всего 0.96 дюйма. Но солкнулся с тем, что библиотеки, распростаняемые в интернете в большей части не позволяют сильно увеличить шрифт, а выводить данные на дисплей надо покрупнее. Увеличить размер цифр можно, а букв — нет.
Первым делом надо подключить дисплей к Arduino, в моём случае это Arduino nano.
Схема подключения простая, всего 4 контакта:
GND - Земля на Arduino
VCC - +5V на Arduino
SCL - пин номер 5 на Arduino nano
SDA - пин номер 4 на Arduino nano

Мне надо выводить на экран какое-то слово крупно или символ и рядом цифру. С цифрами всё понятно, а вот большие буквы/символы я решил делать обычными картинками. Так как размер экрана у меня 128 на 64 символов, то и картинка не должна превышеть 128 на 64 пикселя. Картинка должна быть монохромной (чёрно-белая, без оттенков серого) формата png, .jpg или .gif и размером до 300 KB. Анимированные GIF тоже не подходят. Если будете переводить обычную картинку в чёрно-белую, советую сохранять в gif.
Эту картинку загружаем сюда и получаем текстовый документ (можно для этого использовать програмку «LCDAssistant»), который надо сохранить с расширением *.c в ту же папку, где находится скетч arduino. Название файла с расширением *.c будет таким же, как и название картинки, которое вы загрузили на сайт. И если открыть получившийся *.c файл, то внутри будет фигурировать тоже название файла. Советую не переименовывать получившийся файл *.c, чтобы не усраивать путаницы и используйте англ. язык для названий картинок.
После этого копируем разорхивированную библиотеку для работы с нашим дисплеем в папку, где arduino ide (на данный момент у меня версия 1.6.13) хранит бибилиотеки, а именно в C:\Users\имя-пользователя\Documents\Arduino\libraries (актуально для пользователей w!nd0w5). Можно в интернете найти библиотеку с поддержкой русского и украинского языка, шрифт в ней по прежнему большим не сделать, но библиотека годная.
Запускаем Arduino IDE и заливаем такой скетч:
#include OLED myOLED(SDA, SCL, 4);
// картинка
extern uint8_t mediaunix5[];

void setup()
{
myOLED.begin();
}

void loop()
{
myOLED.clrScr();
myOLED.drawBitmap(0, 0, mediaunix5, 128, 64);
myOLED.update();
delay(4000);
}

Где
mediaunix5 — это название файла с равширением *.c, который мы положили в папку со скетчем
И ещё по поводу строки с «(0, 0, mediaunix5, 128, 64)»
0, 0 — это координаты расположения картинки на экране
mediaunix5 — уже понятно что.
128, 64 — размер картинки
После заливки скетча, получаем картинку на дисплее.

команды, freebsd, убунту, настройка, установка, сервер, server, ubuntu, сервер, arduino

Бонус.
Для примера можете скопировать этот код:
imagedatatype mediaunix5[] PROGMEM={
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0010 (16) pixels
0x00, 0x10, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0020 (32) pixels
0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x80, 0x80, // 0x0030 (48) pixels
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x0040 (64) pixels
0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x0050 (80) pixels
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0060 (96) pixels
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0070 (112) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0080 (128) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0090 (144) pixels
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x3F, 0x7F, 0xFE, 0xF8, 0xE0, 0xC0, 0x80, 0xE0, // 0x00A0 (160) pixels
0xF8, 0xFE, 0x3F, 0x1F, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0x00B0 (176) pixels
0xFF, 0xFF, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xA3, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, // 0x00C0 (192) pixels
0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x0F, 0x1F, 0xFF, // 0x00D0 (208) pixels
0xFC, 0xF8, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00E0 (224) pixels
0x00, 0xE0, 0xF8, 0xFE, 0x3F, 0x0F, 0x1F, 0x7F, 0xFC, 0xF0, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, // 0x00F0 (240) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0100 (256) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0110 (272) pixels
0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x40, 0x00, 0x00, 0x01, 0x07, 0x1F, 0x3F, 0x1F, 0x0F, // 0x0120 (288) pixels
0x03, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x7F, 0x7F, // 0x0130 (304) pixels
0x7F, 0x7F, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, // 0x0140 (320) pixels
0x00, 0x70, 0x7F, 0x7F, 0x7F, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x78, 0x38, 0x3F, 0x1F, // 0x0150 (336) pixels
0x1F, 0x07, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x40, 0x00, 0x00, 0x40, 0x60, 0x70, 0x7E, // 0x0160 (352) pixels
0x7F, 0x4F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x5F, 0x7F, 0x7E, 0x78, 0x60, 0x40, // 0x0170 (368) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0180 (384) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0190 (400) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01A0 (416) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01B0 (432) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01C0 (448) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01D0 (464) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01E0 (480) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01F0 (496) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0200 (512) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0210 (528) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, // 0x0220 (544) pixels
0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, // 0x0230 (560) pixels
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0240 (576) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0250 (592) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0260 (608) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0270 (624) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0280 (640) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0290 (656) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0x02A0 (672) pixels
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0x02B0 (688) pixels
0xFF, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFC, 0xFC, 0xFC, 0xFC, 0xF0, 0xE0, 0xC0, 0xC0, 0x80, 0x00, // 0x02C0 (704) pixels
0x00, 0x00, 0x00, 0x04, 0xFC, 0xFC, 0xFC, 0x04, 0x00, 0x00, 0x04, 0xFC, 0xFC, 0xFC, 0xFC, 0x04, // 0x02D0 (720) pixels
0x00, 0x00, 0x04, 0x04, 0x1C, 0x3C, 0x7C, 0xFC, 0xF4, 0xE0, 0xC0, 0xC0, 0xE0, 0xF4, 0x7C, 0x3C, // 0x02E0 (736) pixels
0x1C, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x02F0 (752) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0300 (768) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0310 (784) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, // 0x0320 (800) pixels
0xFF, 0xFF, 0xF0, 0xC0, 0xC0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xF0, 0xFF, 0xFF, // 0x0330 (816) pixels
0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x03, 0x03, 0x0F, 0x1F, 0x1E, // 0x0340 (832) pixels
0x7E, 0x78, 0xF0, 0xE0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, // 0x0350 (848) pixels
0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xF0, 0x7F, 0x3F, 0x0F, 0x3F, 0x7F, 0xFF, 0xF0, 0xC0, // 0x0360 (864) pixels
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0370 (880) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0380 (896) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0390 (912) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x03A0 (928) pixels
0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x00, // 0x03B0 (944) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x03C0 (960) pixels
0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02, // 0x03D0 (976) pixels
0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, // 0x03E0 (992) pixels
0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x03F0 (1008) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0400 (1024) pixels
};

и сохранить в файл с названием mediaunix5.c в папку со скетчем, чтобы получить изображение как на картинке выше.

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