Как можно отправить зип файл з фотографиями для просмотра его на экране 640*480 с помощью ардуино?
- Войдите на сайт для отправки комментариев
Чт, 09/11/2017 - 22:48
Есть экранчик от телефона подключенный к ардуино. Нужно отправить из пк зип файл с некотрым количеством фотографий, для просмотра на экране, и сменой фотографий раз в 3 секунды.
Как это можно реализовать? Подскажите
купите обычную китайскую фоторамку - будет быстрее и несравнено качественнее.
Если настаиваете на ардуине - сначала сравните размер матрицы 640*480 (примерно 300к) с размером памяти типичной ардуины - 2К. Ваша задачка сродни идее вычерпать пруд ведрами. В принципе можно, но долго и глупо.
Делалл на 320*240. Фотки конвертил в bmp с родным для экрана разрешением и глубиной цвета. Заливал их на SD, откуда и извлекал. Размер ОЗУ ардуины в 2К вобще никаким боком тут. Картинка транзитом проходит на экран, без сохранения целиком в ОЗУ. За пару секунд картинка перерисовывалась. Через uart будет аналогично, но еще медленей, секунд 10 на 115200. Про zip советую забыть вобще.
Делалл на 320*240. За пару секунд картинка перерисовывалась. Через uart будет аналогично, но еще медленей, секунд 10 на 115200.
ТС хочет размер 640х480, то есть в 4 раза больше. Итого имеем что-то типа 8-10сек на одну картинку с SD. На скорости 115200 это будет примерно 24 - 30 секунд. Это при условии 1 байт на пиксель - то есть в совершенно отвратном качетсве.
ИМХО, идея изначально бредовая.
Согласен, для 640*480*16бит, это 5Мбит почти, нужно чтото побыстрей чем uart. А с SD не все ясно. Там по SPI можна вроде и быстрей работать. Скорей всего тормозня из-за кривой либы. Возможно удастся и ускорится существенно. Но это явно не для ТС задача.
Картинки чёрно-белые будут, так задумано!) Это ведь упростит задачу, ведь так?
https://www.youtube.com/watch?v=uhGwFF9nYvw
Вот. Так хоть проще понятно для чего и как функционирует.
Могу еще схемку показать. Вот такая штуковина. https://cdn.hackaday.io/images/1767861469277151962.png Думаю сделать через Ардуино. Так как в информации которую нашёл, мужик делал всё на ардуино. Занятный 3д принтер выходит.
А почему собственно зип файл? Не знаю, можно и без него. Слайсер ( программа для 3д принтера, грубо), это дело всё на выходе кидает в зип. Можно конечно и просто напрямую посылать. Как всё подключить и скоординировать я более-мение представляю, не представляю только как подключить программу напрямую в ардуино для передачи данных фото в один конец.
вам не фотографии в зип-файл класть надо, а формат хранения ч/б картинок нормальный по сжатию и производительности его чтения нужен. судя по вашей картинке старый добрый PCX вполне сгодится - к примеру первый бит каждого байта задает цвет, оставшиеся 7 длину линии. можно задать дельту, не один байт выделять на блок, а произвольного размера в зависимости от оценки картинки.
а чем хуже PNG? он же поддерживает прозрачный фон...
у вас есть готовое решение вывода PNG на экран? вы удовлетворены его производительностью? в таком случае нет никакого смысла прятать их дополнительно в зип-файл, там уже применены точно такие же алгоритмы сжатия. если готового решения нет, не заморачивайтесь с PNG, он избыточен для вашего случая и тяжел для процессора ардуины
PS я не предлагаю вам использовать готовый формат картинок. я предлагаю создать собственный, как вариант, похожий по логике на PCX. такой подход даст максимальную производительность при меньшем использовании памяти. и наверняка такой подход уже реализован, надо только поискать...
http://we.easyelectronics.ru/Soft/szhatie-monohromnyh-kartinok---izobretaem-pcx.html
Не вижу никакого смысла в данном случае геморроится с ардуиной при возможности использования Raspberry. Конечно, если вы хотите самостоятельно написать unzip- и png-библиотечки под ардуину, то велком, как говорится...