Домашняя страничка Стефурак П.Б. Подключение дисплея Siemens CX65 к компьютеру через USB.
 
     Домашняя Промзона Спальный район  

Промзона \ Подключение дисплея Siemens CX65 к компьютеру через USB.
Вывод картинки в формате bmp или jpg на дисплей 132x176 точек, подключенный через USB.

 
Сломался у меня телефон Siemens CX65, остался от него дисплей, 132х176 точек, 16бит цвет (остальное тоже осталось, но интереса вызывает меньше).
Его описание нашлось у нашего немецкого товарища Christian Kranz. которое он сделал аж в 2005 году.
В общем там (Using the Siemens S65 в формате PDF) все просто, будем грузить в дисплей картинку с PC через USB интерфейс на основе библиотеки VUSB Objective Development Software GmbH .
Схема:
Схема типовая, подобные я реализовывал в проектах например IR дистанционное управление компьютером, плеером Media Player Classic или эмулятор лямбда зонда (датчика кислорода) Chery Tigo, к коим и отсылаю за подробностями.
В отличии от схемы Christian Kranz, питание дисплея так же заведено на порт C , что позволяет им манипулировать.
Подсветка дисплее требует от 10в до 15в, для формирования этого напряжения используется стандартная схема, в качестве генератора используется аппаратный ШИМ ATMega8.
Более подробно смотри исходник. Программирование прошивкой - через USB HIDboot (кнопка "Prog" именно за тем, смотри) или ISP.
В железе это выглядит так:
       
       

Устройство опознается ОС Windows как стандартное HID Device, никаких драйверов не нужно!.

Со стороны PC дисплеем управляет программа hid_lcd. Аргументы командной строки программы hid_lcd:
  • power - управление питанием дисплея и его подсветки, true - включает, false - выключает. По умолчанию power=true.
  • picture - картинка в формате bmp или jpg, для загрузки в дисплей. Имя файла с путем и расширением.
    Размер картинки может быть любым, программа сама его подгонит под размеры дисплея.
    Если картинку загрузить и обработать не удалось, в дисплей будет загружено тестовое изображение.
  • brightness - управление уровнем подсветки дисплея (от 0 до 100) в %%. По умолчанию уровень не задается. После включения дисплея уровень подсветки около 40%.
  • show_form - по умолчанию, программа тихо стартует, отрабатывает и закрывается, если хочется посмотреть подробности обмена с дисплеем, show_form=true
    Примеры использования:
  • hid_lcd.exe - если дисплей выключен, он будет включен и инициализирован, картинка никакая не грузится.
  • hid_lcd.exe power=false - не важно в каком режиме дисплей, его питание будет отключено, и подсветка тоже.
  • hid_lcd.exe picture=1.jpg - если дисплей выключен, он будет включен и инициализирован, картинка 1.jpg грузится.
  • hid_lcd.exe brightness=100 - если дисплей выключен, он будет включен и инициализирован, яркость установлена на 100% картинка никакая не грузится.
  • hid_lcd.exe picture=с:\temp\temp.jpg power=true brightness=100 show_form=true - включение дисплея, установка яркости на 100%, загрузка картинки с:\temp\temp.jpg с показом на экране всего процесса.

    Самая серьезная проблема этой реализации - низкая скорость. В дисплей грузится 47кб данных (176x132x2 + служебные посылки), что занимает около 15сек.

    Собственно а зачем тогда это мозга терзание? Ну во первых интересно, а во вторых это делалось как продолжение проекта простая web камера, чтобы не держать открытым web браузер, низкая скорость в данном случае не помеха, так как картинки все равно быстрее не обновляются:
    - дома:
  • c USB камеры картинка попадает web серверу
  • web сервер отдает последнюю картинку по протоколу HTTP
    - на работе:
  • программа re_client периодически запрашивает домашний web сервер, грузит с него последнее изображение
  • запускает hid_lcd.exe picture=последнее полученное изображение
  • на бывшем дисплее телефона Siemens CX65 видим то, что было снято домашней USB камерой!

    Основано на Using the Siemens S65 - Display by Christian Kranz    Using the Siemens S65 в формате PDF     Objective Development Software GmbH     Прошивка ATMEGA8    Исходник ATMEGA8    программа для PC с исходными текстами    Простая web камера
     
  •