Проект tinyAVR 34. Игрушка, основанная на инерционности зрительного восприятия

November 23, 2014 by admin Комментировать »

Предлагаемое устройство основано на инерционном восприятии света человеческим глазом. Глаз "помнит" изображение в течение примерно 8 мс. Эта особенность человеческого зрения используется в некоторых игрушках, например в светодиодном волчке (см. проект 23 в главе 5).

В предлагаемом проекте мы создадим игрушку, которая показывает сообщения в воздухе с помощью одного столбца светодиодов, причем она работает без батареек. Пользователь просто машет игрушкой в воздухе. Возвратно-поступательное движение корпуса устройства обеспечивает генерирование рабочего напряжения и свечение светодиодов. Шаблоны картинок (текст и графика) хранятся в памяти микроконтроллера.

Спецификация проекта

Цель проекта— создать безбатарейную игрушку, которая высвечивает текст и картинки из памяти микроконтроллера. В игрушке должно быть семь диодов, расположенных в один столбец. Светодиоды управляются микроконтроллером, генерирующим световые шаблоны, которые наблюдатель воспринимает как сообщение или картинку (из-за инерционности зрения). Рабочее напряжение поступает от генератора Фарадея (описанного ранее в этой же главе). Блок-схема подобной игрушки приведена на рис. 7.29.

Рис. 7.29. Блок-схема игрушки, основанной на инерционности зрения

Описание устройства

Принципиальная схема нашей игрушки изображена на рис. 7.30. Устройство содержит мостовой выпрямитель на диодах D1-D4 и фильтрующий конденсатор 4700 мкФ/25 В. Стабилизатор напряжения LP2950-5V подает напряжение 5 В для питания микроконтроллера и светодиодов. Самый важный нюанс данной игрушки — способность воспроизводить один и тот же шаблон снова и снова. Для этого нужен сигнал синхронизации, который вырабатывает геркон, подключенный к трубке генератора Фарадея через разъем SL2. Генератор подключается к столбцу светодиодов. Когда игрушкой помахивают в воздухе, магниты двигаются по всей длине трубки. Геркон (находящийся на одном из концов трубки) замыкается при приближении магнитов. Микроконтроллер регистрирует это событие и синхронизирует включение светодиодов.

Аноды всех светодиодов подключены к источнику питания, т. е. для свечения светодиода на контакте микропроцессора должен присутствовать логический 0.

Рис. 7.30. Принципиальная схема игрушки, основанной на инерционности зрения

Конструкция

Игрушка собрана на печатной плате общего назначения (рис. 7.31). Печатная плата закреплена на пластиковой трубке. Пригодна любая трубка подходящего размера. Мы взяли упаковочную трубку для микросхем (кстати, на ней стоит маркировка Atmel). Перпендикулярно трубке мы закрепили генератор Фарадея. Затем мы приклеили геркон и залили его термоклеем (для дополнительной защиты). Геркон был закреплен на правой стороне трубки (если держать ее светодиодами к себе).

Рис. 7.31. Печатная плата игрушки, основанной на инерционности зрения

На рис. 7.32 показан геркон, приклеенный к концу трубки с генератором Фарадея. Геркон очень важен для нашей игрушки. Он состоит из двух контактов, покрытых магнитным материалом. В присутствии магнитного поля контакты замыкаются, когда поля нет— контакты размыкаются. На рис. 7.33 изображены несколько герконов.

Рис. 7.32. Крепление геркона к трубке

Рис. 7.33. Внешний вид герконов

Рис. 7.34. Игрушка в действии

Чтобы запустить игрушку, нужно быстро помахать ею в воздухе. Она начнет показывать запрограммированное сообщение (рис. 7.34).

Программирование

Откомпилированный исходный код (вместе с файлом MAKEFILE) можно скачать по ссылке: www.avrgenius.coin/tinyavrl.

Формирование отображаемой картинки— это важная функция программы. Шаблон кодируется побайтно и записывается в массив msg[]. Размер массива (который зависит от длины отображаемого текста) определяется как константа maxchar. Наша программа формирует сообщение "Make:*", поэтому размер msg — 45 байтов. Поскольку в массиве равно 45 элементов, то константа maxchar устанавливается в значение 45. Если вы захотите, то сможете запрограммировать свое собственное сообщение, но тогда вам придется установить константу maxchar в соответствии с числом элементов массива msg [ ].

Программа ждет сигнала синхронизации от геркона и, когда он появляется, начинает отправлять элементы массива msg [ ] на подключенные к PortA светодиоды. Каждый шаблон свечения длится несколько миллисекунд. Затем все светодиоды выключаются (перед отображением следующего байта массива). Так продолжается до полной выдачи массива на светодиоды. Затем программа ждет следующего сигнала синхронизации от геркона (листинг 7.6).

//Make: Η

const char MSG[] PROGMEM= {0x80, Oxfd,

Oxfb, 0xf7, Oxfb, Oxfd, 0x80, Oxff,

Oxdd, Oxae, 0xb6, 0xb6, 0xb9, 0xc3,

Oxbf, Oxff, 0x80, Oxf7, Oxeb, Oxdd,

Oxbe, Oxff, 0xe3, Oxcd, Oxad, Oxad,

0xb3, Oxff, Oxff, 0x93, 0x93, Oxff,

0xf3, Oxel, QxcO, OxcO, Oxcl, 0x87,

0x87, Oxcl, OxcO, OxcO, Oxel, 0xf3,

Oxff, Oxff};

//размер: 45 байтов #de f ine,maxchar 45 ^ void main(void)

{

unsigned char temp;

DDRA= 0x7 f;

PORTA=255; while(1)

{

PORTA = 255;

while( (PINA&0x80) == 0x80); while ( (PINA&0x80) == 0);

_delay_loop_2(3 О О О);

while( (ΡΙΝΑ&ΟχβΟ) == 0) ;

_delay_loop_2(1000);

for (temp=0; tempcmaxchar; temp++)

{

PORTA= pgm_read_byte(&MSG[temp]); _delay_loop__2 (150) ;

PORTA= Oxf f;

_delay_loop_2(50);

}

}

}

Работа устройства

Запустить игрушку несложно. Самое главное — правильно запрограммировать микроконтроллер, чтобы он отображал сообщение. Пример кодирования сообщения приведен на рис. 7.35. Бит РА7 соответствует входному сигналу от геркона, а РА6-РА0 управляют подключением светодиодов. Как уже упоминалось, для включения светодиода бит должен быть логическим 0. Если бит D7 порта равен 1, то остальные семь битов кодируются так, как показано на рис. 7.34, создавая изображение сообщения.

Рис. 7.35. Кодирование шаблонов светодиодов. Сообщение состоит из 45 байтов

Заключение

В этой главе мы рассмотрели несколько проектов, основанных на генераторе Фарадея. Как видим, этот генератор может дать достаточно энергии для питания различных устройств.

Источник: Гадре, Д., Занимательные проекты на базе микроконтроллеров tinyAVR / Дхананья Гадре, Нигул Мэлхотра: Пер. с англ. — СПб.: БХВ-Петербург, 2012. — 352 с.: ил. — (Электроника)

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты