Mega3D.


Автор - YS.
Участник Конкурса "Поздравь Кота по-человечески 2009"
Опубликовано 20.08.2009.

Идея сделать эту штуку родилась у меня задолго до того, как я узнал о часах Боба Блика, проекте с ledz.org и вообще о том, что подобная технология освоена массами и с переменным успехом применяется прогрессивной общественностью. Дело было так: в одном из сувенирных магазинов я увидел любопытные часы. Они представляли собой подставку, над которой в воздухе (!) висели светящиеся цифры. Твердо зная, что чудес не бывает, я решил исследовать этот феномен. При более детальном рассмотрении оказалось, что такой эффект достигается просто: на устойчивом основании китайцами была закреплена колеблющаяся штанга с укрепленными на ней светодиодами, которые зажигались в нужный момент, а глаз складывал эти вспышки в изображение. Самой же штанги видно не было, так как двигалась она достаточно быстро. Простота и гениальность такого решения потрясли меня. Поскольку цена потрясла меня еще сильнее, я крепко задумался, как бы это повторить дома, на коленке. Раздумья длились около года. За это время с легкой руки друга все это стало называться Mega3D. Поскольку тогда у меня еще не было интернета, я пребывал в неведении относительно методов, применяемых прогрессивной общественностью при решении вопросов подобного рода. Позже, подключив интернет и как следует побродив в нем, я нашел несколько проектов, основанных на том же принципе, однако что-то было слишком сложно, что-то требовало применения специального оборудования, а кто-то вообще использовал контроллеры от Microchip. Словом, не подошло ничего из увиденного, и оставалось на основе просмотренного и прочитанного придумывать что-то свое. В результате мыслительной деятельности родилась схема, представленная на рисунке.
Схема вращающейся части:

Схема неподвижной части:

Внимание! Сложилось так, что сначала я разрабатывал разводку плат, и только сейчас, для статьи, срисовал с них схему, поэтому не исключены ошибки. Конечно, схемы я проверял, но с кем не бывает...
В ходе раздумий было решено отказаться от качающейся штанги - выбор был сделан в пользу вращающейся конструкции, как более надежной и простой в осуществлении. Кроме того, у меня как раз был свободный вентилятор от компьютерного блока питания и несколько палочек от мороженого, которые отлично подошли на роль вращающейся основы. Для передачи энергии было решено использовать вращающийся трансформатор, поскольку, в отличие от применяемых массами щеток, он не изнашивается, не имеет дребезга и не шумит. Не скрою, идея его использования была подсмотрена на уже упомянутом ledz.org. Сначала я пробовал наматывать его прямо на крыльчатку. Было красиво, но не работало. Перемотав его раз десять, я решил пойти более прогрессивным путем. С глубоким вздохом отломал крыльчатку и намотал на ротор пятьдесят витков провода диаметром 0.23 мм, столько же на оправку вокруг него. Заработало! Я даже удивился. Далее все пошло более спокойно - сверху цианакрилатом были приклеены две палочки от мороженого, на них платы контроллера, светодиодов и транзисторных ключей, диодный мост с конденсатором (собранный навесом) и оптопара от принтера. На неподвижной части расположен флажок начала кадра. Когда оптопара проходит его, генерируется прерывание и начинается вывод изображения.
Данные передаются по оптоканалу. К COM-порту подключен ИК-светодиод из мышки, на оси вращения расположен ИК-фотодиод, взятый оттуда же. В целом, я думаю, конструкция будет понятна из фотографий.
Фотография готового устройства:

Пара слов о логике работы. Один "экран" представляет собой массив из 180 байт, в котором каждый бит отвечает за состояние (вкл/выкл) одной точки. Данные передаются с компьютера через COM-порт сплошным потоком без синхронизации на скорости 14400bps. Контроллер принимает их, записывает в ОЗУ и по прерыванию от оптопары запускает таймер, по прерыванию от которого данные из массива выводятся в порт, к которому подключены светодиоды. По окончании вывода данных таймер останавливается. Устройство имеет два режима работы - обычный и режим программирования. Последний отличается лишь тем, что питание не подается на двигатель. Это позволяет подключиться к разъему ISP.
Устройство в работе:

Помимо прошивки для контроллера мной было написано некоторое количество софта для компьютера. Прежде всего была создана программа-рисовалка, позволяющая мышкой натыкать картинку и сохранить ее в формате, пригодном для вывода на устройство (M3Deditor). Натыкав с ее помощью ASCII-таблицу, я написал программу, которая конвертирует обычный текст в выводимую картинку (Str2M3D), а также софтину, реализующую бегущую строку (M3D ctrl). Вспомнив, что девайс из магазина, с которого все началось, показывал время, я написал программку-часы (M3D clock). Для пущей крутизны была написана программа, позволяющая выводить текст в реальном времени (M3D realtime). Все эти радости лежат в архиве с прошивкой. Использованы только стандартные API функции, поэтому устройство можно подключать и через преобразователи USB-COM, как сделал я. Архив со всем необходимым прилагается. Если кому-то нужны исходники программ/прошивки - после конкурса прошу в форум.

С днем рождения, РадиоКОТ!

Файлы:
Печатная плата в формате SL 5.0.
Прошивка МК.
Софт для ПК.