===== Эксперимент 48. Отображение картинки ===== Мы уже научились отображать на дисплее текст и графические примитивы. Из этих элементов мы уже можем отображать пользовательский интерфейс, меню и выводить информацию с различных датчиков. Но для красивого интерфейса нужны еще иконки, пиктограммы и просто картинки. Кроме того, многие игры отображаются с помощью спрайтов — небольших прямоугольных изображений из которых строится вся сцена и персонажи. Существует множество графических форматов, в которых можно сохранять изображения. Самым простым является формат BMP. В данном формате можно хранить только однослойные растры. В этом формате просто описывается цвет каждой точки изображения. На каждый пиксель в разных файлах может приходиться разное количество бит (глубина цвета). Сейчас этот формат распространен мало так как он не подразумевает никакого сжатия данных и картинки имеют большой вес, зато с ним легко работать. С помощью встроенного в Windows простейшего графического редактора Paint без труда можно сконвертировать картинки в этот формат. Наш дисплей имеет разрешение 128*160 точек. Попробуем занять весь дисплей одним большим изображением. Тогда оно должно быть такого же размера. Если оно будет меньше — то останется незаполненная область экрана. Если больше — обрежется. Можно загрузить в память микроконтроллера любое свое изображение, но если подходящего изображения под рукой нет, то можно скачать нашу картинку с самолетом и загрузить в МК ее. Так как размер картинки значительно больше текстовых файлов, которые мы создавали/загружали ранее, необходимо задать размер файловой системы. Для этого выбери: Инструменты Flash size 4MB (FS:1MB OTA:~1019KB) {{ :products:esp-iot:plane.zip |}} Для отображения картинки нам потребуется библиотека "LittleFS_ImageReader", которую придется установить вручную. Для этого нужно скачать архив по ссылке ниже и поместить папку "LittleFS_ImageReader", которая находится в архиве и содержит два файла с расширениями ".h" и ".cpp", в папку "libraries". Папка "libraries" расположена по следующему пути — C:\Users\\Documents\Arduino ( это имя твоей учетной записи на компьютере). Также можно открыть в проводнике папку "Документы", а уже в ней папку "Arduino". {{:products:laboratory_iot_c:littlefs_imagereader.zip|}} ==== Схема эксперимента ==== {{ :products:esp-iot:exp24_mon.png?direct&600 |}} //Рисунок 1. Монтажная схема эксперимента для дисплея с 8 выводами// {{ :products:esp-iot:exp24_mon_11pin.png?direct&600 |}} //Рисунок 2. Монтажная схема эксперимента для дисплея с 11 выводами// ==== Программный код эксперимента ==== Выведем картинку на дисплей. #include #include #include #define PIN_CS 2 #define PIN_DC 4 #define PIN_RST 5 Adafruit_ST7735 tft = Adafruit_ST7735(PIN_CS, PIN_DC, PIN_RST); LittleFS_ImageReader reader; // Создаем объект считывателя void setup() { LittleFS.begin(); tft.initR(INITR_BLACKTAB); tft.setRotation(2); // Отображаем картинку с именем plane.bmp начиная с координаты 0, 0 // Измените название файла на свое, если у вас другая картинка reader.drawBMP("/plane.bmp", tft, 0, 0); } void loop() { }