Хватит ли ресурсов Arduino Micro/Nano/Mini для формирования файла JPEG 800х600?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Есть большая и красивая цифровая фоторамка, которая умеет только показывать слайд-шоу из JPG-файлов.

Хочется приспособить ее под отображение показаний температуры, давления, состояния исполнительных устройств и т.д.

Хватит ли ресурсов и памяти Arduino Micro/Nano/Mini для формирования файла JPEG 800х600?

Т.е. раз в 10-30 минут формируем новый файл, заливаем на SD-карту, если успешно - предыдущий файл с карты стираем.

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

Врятли найдется библиотека для Arduino выполняющая сжатие JPEG.  Проще в битмап без сжатия сохранять.

Ну и считайте: 800x600 256цветов (1 байт на пиксел) займет в памяти 480000 байт.

Оперативки 2K - должно хватить. 

А как вы собрались фоторамку к Arduino подключить? Или карточку памяти перестовлять раз в 10 минут? :) 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

просто подпаяться к картридеру фоторамки, т.е. одной картой будут пользоваться два устройства - МК читать и писать, а фоторамка - только читать.

Можно, конечно из фоторамки взять только дисплей и корпус, а всем рулить булет только МК, но тут и памяти больше надо, и не факт, что сумею подружиться с контроллером дисплея.

KamovEugeniy
Offline
Зарегистрирован: 24.02.2014

Tomasina пишет:
просто подпаяться к картридеру фоторамки, т.е. одной картой будут пользоваться два устройства - МК читать и писать, а фоторамка - только читать.

Можно, конечно из фоторамки взять только дисплей и корпус, а всем рулить булет только МК, но тут и памяти больше надо, и не факт, что сумею подружиться с контроллером дисплея.

как вы объясните фоторамке, что в определенные моменты нельзя обращаться к карте памяти ?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

а зачем? она нечитаемые файлы просто игнорирует, при этом не очищая уже выведенное на экране. Не удалось прочитать файл сейчас (адруина пишет в него) - прпробует через 8 сек.

Можно и по-другому: формировать на карте файл IMGxxx.tmp, а когда он успешно записался, переименовать его в IMGxxx.jpg - при этом с точки зрения рамки файл появляется мгновенно. Затем попытаться стереть предыдущий .jpg, не удалось - попробовать через пару секунд еще раз.

Sheet99
Offline
Зарегистрирован: 27.02.2014

Tomasina пишет:

а зачем? она нечитаемые файлы просто игнорирует, при этом не очищая уже выведенное на экране. Не удалось прочитать файл сейчас (адруина пишет в него) - прпробует через 8 сек.

Можно и по-другому: формировать на карте файл IMGxxx.tmp, а когда он успешно записался, переименовать его в IMGxxx.jpg - при этом с точки зрения рамки файл появляется мгновенно. Затем попытаться стереть предыдущий .jpg, не удалось - попробовать через пару секунд еще раз.

еще нужно разрулить одновременную попытку доступа  двух контроллеров к одному SPI устройству, или вам их аппаратный конфликт по барабану?

axill
Offline
Зарегистрирован: 05.09.2011

не получится сделать так чтобы и рамка и ардуино одновременно работали с SD картой

как вариант делать виртуальную SD карту которую ардуина будет из себя изображать, вот только здесь уже может не хватить производительности

Sheet99
Offline
Зарегистрирован: 27.02.2014

axill пишет:
не получится сделать так чтобы и рамка и ардуино одновременно работали с SD картой

Tomasina не желает этого понимать:

Tomasina пишет:
а зачем? она нечитаемые файлы просто игнорирует, при этом не очищая уже выведенное на экране. Не удалось прочитать файл сейчас (адруина пишет в него) - прпробует через 8 сек.

Можно и по-другому: формировать на карте файл IMGxxx.tmp, а когда он успешно записался, переименовать его в IMGxxx.jpg - при этом с точки зрения рамки файл появляется мгновенно. Затем попытаться стереть предыдущий .jpg, не удалось - попробовать через пару секунд еще раз.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

хорошо, спрошу по-другому: как работает чип на SD-карте - тупо обрабатывает входящие команды, неважно откуда они поступили, или там есть какой-то сигнал "линия занята" или ещё какая-то авторизация/блокировка?

axill
Offline
Зарегистрирован: 05.09.2011

Tomasina пишет:
хорошо, спрошу по-другому: как работает чип на SD-карте - тупо обрабатывает входящие команды, неважно откуда они поступили, или там есть какой-то сигнал "линия занята" или ещё какая-то авторизация/блокировка?

работа с SD картой стоится по SPI протоколу. Начните изучение с протокола http://chipenable.ru/index.php/programming-avr/item/137-avr-spi-module.html

карточка выступает как SPI slave

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Вот теперь понятно.
Жаль что не получится задумка.

ZagZag
Offline
Зарегистрирован: 08.05.2014

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

Второй вариант - формировать BMP на карте, но предварительно отрубив ее от фоторамки, а потом включать снова. Тут все зависит от реакции фоторамки на отключение карточки.

Geronimo
Offline
Зарегистрирован: 06.05.2013

Можно впаять транзисторы между рамкой и сд слотом и ардуино будет резать спи линии рамки когда пишет

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Может вообще убрать SD карту - а в место нее подключить ардуину -  и эмулировать файловую систему FAT с одним Файлом BMP 256 цветным. И при его запросе будет отвечать рендер - который передаст готовую инфу. файл не обязательно 800х600 генерить - можно и 256х128.

ZagZag
Offline
Зарегистрирован: 08.05.2014