Вывод изображения с SD карты на TFT экран
- Войдите на сайт для отправки комментариев
Вс, 27/03/2016 - 07:06
Доброго времени суток.
Не могу вывести картинку на TFT экран с SD карты. Для решения проблемы обращался к гуглу. Нашел следующую информацию:
В библиотеке TFT есть функция прямого вывода изображения на экран.
// подключаем необходимые библиотеки #include <SPI.h> #include <SD.h> #include <TFT.h> // Библиотека для работы с TFT-экраном // объявление выводов для Arduino Uno #define SD_CS 11 #define LCD_CS 10 #define DC 9 #define RESET 8 // объявление выводов для Leonardo // #define SD_CS 8 // #define LCD_CS 7 // #define DC 0 // #define RESET 1 TFT myScreen = TFT(LCD_CS, DC, RESET); // эта переменная описывает изображение, которое будет выводиться на экран PImage image; void setup() { // инициализируем последовательный интерфейс передачи данных Serial.begin(9600); while (!Serial) { // ожидаем готовности последовательного порта // - необходимо для Arduino Leonardo } // пробуем обратиться к SD-карте памяти Serial.print("Initializing SD card..."); if (!SD.begin(SD_CS)) { Serial.println("failed!"); return; } Serial.println("OK!"); // инициализируем и очищаем GLCD-экран myScreen.begin(); myScreen.background(255, 255, 255); // загружаем изображение с SD-карты image = myScreen.loadImage("arduino.bmp"); // проверяем, корректно ли загружена картинка if (image.isValid() != true) { Serial.println("error while loading arduino.bmp"); } //выводим изображение на экран myScreen.image(image, 0, 0); } void loop(){ // здесь ничего не делаем } :
В библиотеке UTFT такого нет. (есть только некая функция writeScreen24, которая судя по всему занимается рисованием картнок из массива). Как я понял, мне нужно сперва открыть файл с рисунком на флэшке, затем побайтово считывать картинку и выводить на экран, т.к. загрузить сразу весь рисунок в память контроллера мне просто не хватит памяти. Но ведь должен же быть способ проще?
День добрый.
"В библиотеке UTFT такого нет". А библиотеке "TFT" такое разве есть? Судя по куче ошибок, которая вылазит при компиляции, таки-нет. Кроме того эта странная строка:
Я не встречал еще в языке IDE теги HTML или как там называются эти слова в типографских кавычках - я не силён в гиперязыке.
Если поубирать эти теги, всё же ошибки есть и они ссылаются на библиотеку "TFT.h", из чего следует вывод, что библиотека используемая в данном скетче, только называется так же как стандартная библиотека IDE.
Рассуждаем дальше...
Судя из Ваших исследований, вывести картинку сразу на экран не получится в силу ограниченного объёма памяти МК. Насколько я могу предположить, в обычном компьютере в выводе изображения на "экран" учавствует оперативная память видеокарты. Однак же я не берусь утверждать что в TFT-дисплее есть такое понятие, достаточное для хранения всего изображения. Следовательно - единственновозможный способ отобразить графический файл, это побитовое считывание.
Мораль: либо библиотека "TFT.h", которая используется для этого примера, нестандартная, либо этот скетч нерабочий.
Для UTFT есть расширение для использования SD-карты - UTFT_tinyFat
День добрый.
"В библиотеке UTFT такого нет". А библиотеке "TFT" такое разве есть? Судя по куче ошибок, которая вылазит при компиляции, таки-нет. Кроме того эта странная строка:
Я не встречал еще в языке IDE теги HTML или как там называются эти слова в типографских кавычках - я не силён в гиперязыке.
Если поубирать эти теги, всё же ошибки есть и они ссылаются на библиотеку "TFT.h", из чего следует вывод, что библиотека используемая в данном скетче, только называется так же как стандартная библиотека IDE.
код некоректно вставился, он проходит компиляцию
Между "проходит компиляцию" и "работает" - нет никакой связи. В моём топике про "TVout.h" компиляцию проходит только с сообщениями белым шрифтом, но не работает. Ничего не могу сказать в данном, отдельно взятом случае - у меня нет под рукой такого шилда. Однако же о более простом способе вывода картинок с SD-карты на дисплей мне тоже интересно было бы узнать. Но я так понимаю: чем проще тем сложнее. Чем проще это будет осуществлено для пользователя, тем сложнее должен быть устроен сам ардуино...
Один мой знакомый сказал очень умную фразу: "Не пытайся сделать из микроконтроллера компьютер!"
Библиотека пока работать не хочет. Мне кажется, что вывод на дисплей картнки с флэшки должен быть тривиальной задачей с готовым решением. Тем более, что если подключить ВСЕ необходмые для ее работы библиотеки
жрут без малого 80% динамической памяти. Или все таки это не тривильная задача?
Благодарю. Библиотека заработала. Это именно то, что было нужно.
Как только придёт TFT дисплей, смогу сказать больше по этому поводу, а сейчас - буду только прислушиваться )))
Как только придёт TFT дисплей, смогу сказать больше по этому поводу, а сейчас - буду только прислушиваться )))
Я уже подружил карточку и дисплей) Благодарим Ярика.
Как только придёт TFT дисплей, смогу сказать больше по этому поводу, а сейчас - буду только прислушиваться )))
Я уже подружил карточку и дисплей) Благодарим Ярика.
Тиха! Не рассказывай как! Я хочу сам поковыряться ))))
А какой дисплей используете? На каком контроллере? Может у него (дисплея) есть встроенная SPI flash память?
Тогда SD Card вообще не нужна, все картинки можно загрузить в эту SPI flash и затем выводить уже оттуда.
А какой дисплей используете? На каком контроллере? Может у него (дисплея) есть встроенная SPI flash память?
Тогда SD Card вообще не нужна, все картинки можно загрузить в эту SPI flash и затем выводить уже оттуда.
зависит от устновленных микрсхем. На моем дисплее, например, установлено 64Мб. Не гигабайты конечно, как на SD, но мне хватает.
64 мегобайта на старых видеокартах хватало что бы 3D игры запускать.
http://www.poprobot.ru/home/Arduino-TFT-SPI Здесь о библиотеке Adafruit_ST7735 и выводе картинки с карты на экран