«Мое дело — подарок подарить, а ты уж сама придумывай, что с этой хренью делать» (©Масяня)
Публикации о высокотехнологичных подарках (см. Ссылки [1] и [2]) вдохновили меня на создание собственной хрени прикольной вещицы.
Может быть, выглядит она не так эстетично, как [2], но зато может не только помигать сердечком, но еще и поздравить от всего сердца, или даже признаться в любви. Поздравление выводится бегущей строкой с помощью светодиодной матрицы 8x8 (за отсутствием фантазии я так и назвал свой проект — led8x8). Вот такую матрицу я припаял проводками к лапкам микроконтроллера:
Питается и конфигурируется устройство от USB. В память можно занести любое количество текстов и картинок (пока хватит места в EEPROM), они сохраняются в памяти после выключения питания. Управление и конфигурирование осуществляется через текстовую консоль, подключенную к виртуальному COM-порту (через любую консоль типа Hyperterminal, Terraterm или putty), интерфейс управления имеет систему подсказок. Тексты можно вводить командой TXT, а BMP-картинки в черно-белом формате 8x8 пикселов можно загрузить по протоколу XMODEM (моя любимая консоль SecureCRT умеет это делать). И тексты, и картинки добавляются в общий пул, и проигрываются по команде RUN в том порядке, в каком Вы их занесли в память — поэтому при желании можно сочинить очень сложную поздравительную комбинацию. Скорость бегущей строки и смены картинок меняется командой SPEED (от 1 до 10). Доступны также некоторые отладочные команды. На скриншоте показан пример выполнения команд в консоли.
При создании программы использовалась библиотека V-USB, пример класса USB CDC от Osamu Tamura и бесплатный софт AVRStudio+GCC (ссылки не привожу, так как при желании можно легко найти в Интернете), а также шрифт от компьютера ZX Spectrum.
UPD 100627: по просьбе некоторых читателей написал статью, объясняющую принцип работы динамической индикации (ссылка [5]).
[Ссылки]
1. «Высокотехнологичный подарок» к 8 марта.
2. Светодиодный подарок к 8 марта.
3. Проект для AVRStudio ledx8x8 (применен микроконтроллер ATmega32 на макетке AVR-USB-MEGA16).
4. Маленький демонстрационный видеоролик. Анимация с мигающим сердечком составлена из 3-х BMP картинок, нарисованных в Paint.
5. Динамическая индикация на примере управления светодиодной матрицей 8x8 GNM-7881AUE.