Видео на связке AVR + 3310 + SD - нужен конвертор
Видео на связке AVR + 3310 + SD - нужен конвертор
Сейчас работаю над связкой AVR + 3310 + SD-карта как базой для дальнейших конструкций. Вроде пока дело движется и получается довольно интересно.
Появилась одна мысль - выводить видео с SD карты на дисплей. Интерес скорей не в самом видео а в возможности вывода анимированных меню, анимированных сообщений, логотипов, разной информации ну и т.д.
Достоинства очевидны:
- места на SD много и его не жалко (1Мбайта хватит минуты на 3 видео) а гиговые SD щас стоят дешевле семечек!
- т.к. в новых AVR есть два аппаратных SPI (я мучаю Mega88) то для вывода меню, даже, непотребуется буфер в ОЗУ размером в полкило - данные напрямую пойдут в дисплей.
- ну и чисто эстетичестое удовлетворение от изображении на дисплее.
Теоритическая раскладка такая:
1. Скорости SD карты и дисплея 3310 с головой хватает на вывод видео (оба девайса легко справляются с максимальной возможной SPI AVR - 10M bps)
2. SD карта читается блоками по 512 байт, что прекрасно влаживается в размер экрана 3310 (84 столбца х 6 банков = 504 байта).
3. SD читается одним SPI и сразу побайтно передается в другой SPI для 3310
4. Частота кадров должна быть в пределах 5 - 10 кадров в секунду (больше неимеет смысла в виду инертности дисплея)
Проблема возникает в следующем:
Файлы видео необходимо конвертировать в BIN-файлы с чередой кадров по 504 байта + 8 байт (чтоб образовался блок 512байт). Преобразовать видео в формат ч/б 84х48 не проблема - например ВиртуалДубом. Можно его конвертировать в Uncompressed RGB (не сжатый формат, где кадры просто записываются поточечно тремя байтами на точку RGB), а дальше затык - я не програмлю на PC.
Кто нибуть может помочь в создании такого конвертора?
А может уже есть такие наработки?
Появилась одна мысль - выводить видео с SD карты на дисплей. Интерес скорей не в самом видео а в возможности вывода анимированных меню, анимированных сообщений, логотипов, разной информации ну и т.д.
Достоинства очевидны:
- места на SD много и его не жалко (1Мбайта хватит минуты на 3 видео) а гиговые SD щас стоят дешевле семечек!
- т.к. в новых AVR есть два аппаратных SPI (я мучаю Mega88) то для вывода меню, даже, непотребуется буфер в ОЗУ размером в полкило - данные напрямую пойдут в дисплей.
- ну и чисто эстетичестое удовлетворение от изображении на дисплее.
Теоритическая раскладка такая:
1. Скорости SD карты и дисплея 3310 с головой хватает на вывод видео (оба девайса легко справляются с максимальной возможной SPI AVR - 10M bps)
2. SD карта читается блоками по 512 байт, что прекрасно влаживается в размер экрана 3310 (84 столбца х 6 банков = 504 байта).
3. SD читается одним SPI и сразу побайтно передается в другой SPI для 3310
4. Частота кадров должна быть в пределах 5 - 10 кадров в секунду (больше неимеет смысла в виду инертности дисплея)
Проблема возникает в следующем:
Файлы видео необходимо конвертировать в BIN-файлы с чередой кадров по 504 байта + 8 байт (чтоб образовался блок 512байт). Преобразовать видео в формат ч/б 84х48 не проблема - например ВиртуалДубом. Можно его конвертировать в Uncompressed RGB (не сжатый формат, где кадры просто записываются поточечно тремя байтами на точку RGB), а дальше затык - я не програмлю на PC.
Кто нибуть может помочь в создании такого конвертора?
А может уже есть такие наработки?
Потратив кучу времени и нервов корвертнул кусочек видео.
Так как конвертировал через ж... - фрагмент маленький.
Смотрите что получилось:
http://www.youtube.com/watch?v=QvaJHAUtGog
Кинь на мыло пожалуйста - попробую с ними поработать.
Так как конвертировал через ж... - фрагмент маленький.
Смотрите что получилось:
http://www.youtube.com/watch?v=QvaJHAUtGog
Aheir писал(а):По поводу конвертации картинки в бинарник: есть такие утилитки для графических LCD экранов, сам пользовался. Ели надо - могу прислать.
Кинь на мыло пожалуйста - попробую с ними поработать.
Все получилось!
Пришлось конвертор делать самому.
Есть очень интерасная среда програмирования - ХайАсм называется.
Позволяет программировать с нуля. Просто соединяются квадратики.
Не програмируя вообще на PC собрал конвертор за 2 дня.
Кому интересно - http://www.hiasm.com
Вот пример реализации меню - http://www.youtube.com/watch?v=UbPvEjNKjRQ
помоему получается неплохо
Файл меню является своего рода скином - тоесть если нада поменять внешний вид меню микроконтроллер трогать не надо - просто записываеш на флешку новый файл.
Пришлось конвертор делать самому.
Есть очень интерасная среда програмирования - ХайАсм называется.
Позволяет программировать с нуля. Просто соединяются квадратики.
Не програмируя вообще на PC собрал конвертор за 2 дня.
Кому интересно - http://www.hiasm.com
Вот пример реализации меню - http://www.youtube.com/watch?v=UbPvEjNKjRQ
помоему получается неплохо
Файл меню является своего рода скином - тоесть если нада поменять внешний вид меню микроконтроллер трогать не надо - просто записываеш на флешку новый файл.
Fighter писал(а):Очень неплохо.
а побольше расписать как да что можно?
а то я сейчас делаю похожее, только для S65 индикатора...
Все очень просто:
1 Берется микроконтроллер с двумя SPI (можно зделать программно но это расход ресурсов). У меня ATMega88.
2 На один SPI цепляется экран, на другой SD-карта.
у меня так:
3 Дальше нужно написать процедуру отображения на экране блока SD-карты. SD карта читается по блоками в 512 байт. Для 3310 хватает 1 блока (504 байта) если экран побольше нада брать несколько блоков. Как работает SD карта лучше всего описано здесь:http://piclist.ru/S-MMC-SD-Cards-RUS/S-MMC-SD-Cards-RUS.html
По моему опыту лучше не создавать FAT систему на карте а работать напрямую. На карте записывается своего рода масив картинок и в зависимости от ситуации выводитя нужная последовательность картинок по индексу. Для плавного видео нужно выводить 10 картинок в секунду. Процедура вывода (если незаморачиваеться с FAT) выходит очень небольшой (в пределах сотни байт). Т.к. вывод идет напрямую с карты на экран память незадействуется вообще.
Если программа пишется на С то в сети валом библиотек с которых просто нада выкинуть все ненужное.
4 Самая сложная часть создание того самого масива кадров (BIN файла). Я делал так: создал презентацию на ПоверПоинте - зделал видео файл при помощи захвата ВиртуалДубом, Темже ВиртуалДубом делал анимированный Гиф с нужным разрешением и монохромный. Дальше Гиф файл разбивал на БМП кадры картинки и своим конвертором собирал их в БИН файл. Знаю замудошно но это от моего несостояния написать конвертор ГИФ в БИН (пе програмлю на РС вообще).
Уфф! Заморился писать. Надеюсь понятно написал?
-
C0oo1D
- Первый раз сказал Мяу!
- Сообщения: 38
- Зарегистрирован: Пн дек 29, 2008 14:23:35
- Откуда: Донецк, Украина
Evgen88 писал(а):Вроде осилил файловую систему!
Пока никаких идей по конвертированию? Ну хотябы BMP-картинки в бинарный файл?
Слышал про формат raw? Фотошоп в нем сохраняет.. Я себе шрифты и графику делал на цветную LCD от нокии, 128х128.. и с помощью скриптов делал конвертор в массив данных для CVAVR.. но скрипты это жесть) как освоюсь с питоном - обязательно какой-то конвертор нормальный сделаю =)
p.s. raw это по сути чистый бинарник.. даже блокнотом можно открывать, но лучше hex редактором
-
Fizikus
- Нашел транзистор. Понюхал.
- Сообщения: 164
- Зарегистрирован: Сб фев 27, 2010 19:23:52
- Откуда: Тула
- Контактная информация:
Re: Видео на связке AVR + 3310 + SD - нужен конвертор
Скажите пожалуйста, каким образом можно написать на карту памяти бинарник без файловой системы?
Продаю SMD резисторы, конденсаторы.
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Видео на связке AVR + 3310 + SD - нужен конвертор
Fizikus писал(а):Скажите пожалуйста, каким образом можно написать на карту памяти бинарник без файловой системы?
Или с помощью самодельной программы на PC, которая работает с картой на низком уровне или с помощью программатора (скорее всего тоже самодельного). В любом случае карточка стандартными средствами ОС больше читаться не будет.
-
Fizikus
- Нашел транзистор. Понюхал.
- Сообщения: 164
- Зарегистрирован: Сб фев 27, 2010 19:23:52
- Откуда: Тула
- Контактная информация:
Re: Видео на связке AVR + 3310 + SD - нужен конвертор
А можно по-подробней? В какую сторону копать? Я только начал изучать делфи, написал программку для конвертирования бмп-шников в бинарники, сейчас прикошачиваю карточку SD к микроконтроллеру, файловую систему очень не хочется мудрить, а как напрямую запись на карточку организовать в делфях не знаю. Буду очень признателен за подсказку. 
Продаю SMD резисторы, конденсаторы.
Re: Видео на связке AVR + 3310 + SD - нужен конвертор
В журнале радио ( годов 2004) была статья переделки сотового в читалку книг, там на дельфи была прога через ЛПТ порт заливающая книги на MMC/SD карту...
поищите статью - будут готовые исходники...
поищите статью - будут готовые исходники...
- ruslan55
- Родился
- Сообщения: 14
- Зарегистрирован: Пт фев 26, 2010 21:48:43
- Откуда: Башкортостан
- Контактная информация:
Заинтересовала меня эта тема, решил я тоже попробовать вывести анимированные картинки, программирую на PIC-ах, взял микроконтроллер PIC16F628A, дисплей решил заюзать Nokia1110i и SD карта на 1 гиг, изучил команды для работы с SD картой, написал прошивку, и таки получилось вывести анимацию.
Файловую систему пока толком не изучал, картинки в виде массива байтов записываю в область данных, при помощи WinHex, не затрагивая загрузочные разделы и таблицы FAT, чтобы потом карта читалась на компе, Микроконтроллер работает на частоте 4МГц, (машинный цикл - 1МГц), прошивка заняла около 700 слов, микроконтроллер считывает с карты пакеты данных в ОЗУ, размер пакета 32 байт, потом из ОЗУ отправляет их на дисплей.
Видео работы http://www.youtube.com/watch?v=VSCKDIHsUZI
Файловую систему пока толком не изучал, картинки в виде массива байтов записываю в область данных, при помощи WinHex, не затрагивая загрузочные разделы и таблицы FAT, чтобы потом карта читалась на компе, Микроконтроллер работает на частоте 4МГц, (машинный цикл - 1МГц), прошивка заняла около 700 слов, микроконтроллер считывает с карты пакеты данных в ОЗУ, размер пакета 32 байт, потом из ОЗУ отправляет их на дисплей.
Видео работы http://www.youtube.com/watch?v=VSCKDIHsUZI
Re: Видео на связке AVR + 3310 + SD - нужен конвертор
Evgen88, тоесть, как я понял, ты с файловой системой не заморачивался вообще? Или как организовано пространство? Ты типа всё убил и пишешь "сырые" данные с нулевого адреса и до упора?
- ruslan55
- Родился
- Сообщения: 14
- Зарегистрирован: Пт фев 26, 2010 21:48:43
- Откуда: Башкортостан
- Контактная информация:
Re: Видео на связке AVR + 3310 + SD - нужен конвертор
ELcat, он же писал что не стал заморачиваться с FAT, просто начинает писать массив байтов с определенного адреса (скорее всего при помощи WinHex), а потом просто считывает этот массив с этого же адреса, и кстати не обязательно удалять загрузочные разделы и таблицы FAT, можно начинать писать сразу в область данных, как я и делаю, при этом карта будет читаться на компе.
Кстати теперь я и FAT освоил, сейчас просто кидаю бинарный файл содержащий массив байтов на карту и все, программа микроконтроллера сама выполняет поиск этого бинарного файла, рассчитывает адреса всех кластеров и начинает выводить данные на дисплей) теперь прошивка увеличилась до 1000 слов
Кстати теперь я и FAT освоил, сейчас просто кидаю бинарный файл содержащий массив байтов на карту и все, программа микроконтроллера сама выполняет поиск этого бинарного файла, рассчитывает адреса всех кластеров и начинает выводить данные на дисплей) теперь прошивка увеличилась до 1000 слов
Re: Видео на связке AVR + 3310 + SD - нужен конвертор
Блин, убил флешу... Пока разбирался с дисплеем (а он висит на том же SPI что и карта, чип ATmega16+ls020)всё это время на !CS карты висел "0". Теперь вроде как видится, но не пишется и не форматиться ни под каким соусом, так и висят на ней файлы которые были изначально. Видать чего-то хватонула как команду и стала в неизвестную позу
Помогите плз, мож кто знает как это вылечить. Жалко флеху 2Гиба всётаки 