Проект tinyAVR 15. Игрушка Тэнгу с графическим дисплеем

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

На самом деле Тэнгу — это сказочный персонаж из японского фольклора. Но Тэнгу — это еще и популярная игрушка, в которой общение с игроком происходит с помощью разнообразных звуков и шумов. Предлагаемое устройство является аудиоигрой и не имеет ничего общего со сверхъестественными существами. В нашей игрушке Тэнгу представляет собой лицо с глазами, носом и ртом. В зависимости от окружающих звуков выражение глаз и лица Тэнгу будет меняться. На рис. 4.16 изображена блок-схема этого устройства. Микрофон, подключенный к аудиоусилителю, предназначен для улавливания звуков. Лицо отображается на графическом дисплее Nokia. Микропроцессор tinyAVR анализирует звук и меняет выражение лица. Устройство питается от батареи, и его можно носить с собой.

Рис, 4.16. Блок-схема игрушки Тэнгу

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

Цель проекта— создать питающийся от батареи вариант игрушки Тэнгу, который реагирует на внешние звуки, музыку и шум (изменением выражения лица).

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

На рис. 4.17 изображена схема игрушки Тэнгу. Устройство питается от батарейки 9 В, но будет хорошо работать даже от четырех щелочных батареек по 1,5 В. Напряжение подается через разъем SL2. Диод D2 обеспечивает защиту от неправильной полярности подключения батарей. Напряжение от источника питания подано на операционный усилитель LM358 и на вход преобразователя LP2950, который выдает напряжение Vcc (3,3 В) для работы микроконтроллера и дисплея Nokia. Дисплей подключен к схеме через разъем LCD1, микрофон — через SL4. При подключении конденсаторного микрофона необходимо соблюдать полярность. Питание на микрофон подается через резистор R7. Аналоговый сигнал с микрофона через конденсатор С5 емкостью. 10 мкФ поступает на операционный усилитель.

Рис. 4.17. Принципиальная схема игрушки Тэнгу

Микросхема включена как неинвертирующий усилитель постоянного тока с высоким усилением. Резисторы R10 и R11 обеспечивают постоянное смещение, равное половине входного напряжения. Поскольку резистор R10 зашунтирован конденсатором С6, то по переменному току точка соединения R10 и R11 оказывается заземлена. Полезный сигнал приложен ко входу усилителя (контакт 3).

За первым каскадом усилителя следует второй (собранный на второй половине операционного усилителя), включенный тоже как неинвертирующий. К выходу (контакт 7 микросхемы) подключен резистор R15 и стабилитрон D1 (2,7 В), поэтому выходное напряжение ограничивается до 2,7 В. Далее сигнал поступает на входной контакт РА4 микроконтроллера Tiny44. Усиление двух каскадов так велико (25 000), что сигнал на выходе представляет собой меандр с частотой исходного аудиосигнала. Задача микроконтроллера— определить частоту этого сигнала и затем изменить выражение лица на графическом дисплее. Микроконтроллер постоянно замеряет частоту аудиосигнала.

Операционный усилитель питается напрямую от батарей. Для LM358 нужно напряжение не менее 5 В, поэтому схема должна питаться либо от четырех батареек по 1,5 В, либо от батареи 9 В. Микроконтроллер и дисплей Nokia 3310 питаются от стабилизатора LP2950, который дает выходное напряжение 3,3 В.

Конструкция

Компоновку платы в программе EAGLE (и принципиальную схему) можно скачать по ссылке: www.avrgenius.com/tiiiyavrl.

Плата односторонняя (на стороне компонентов есть всего несколько перемычек). Стороны печатной платы изображены на рис. 4.18 и 4.19. Работающий образец устройства показан на рис. 4.20.

Рис. 4.18. Печатная плата игрушки Тэнгу (сторона компонентов)

Рис. 4.20. Работающий образец игрушки Тэнгу

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

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

Тактовая частота равна 8 МГц. Контроллер запрограммирован при помощи STK500 в режиме программирования ISP. Самые важные фрагменты кода иллюстрирует листинг 4.5.

void check (void)

{

TIFRO = 1«TOVO;

TCNTO = 255-125;

TCCROB = 1«CS00 11«CS01;

count = 0;

freq = 0;

stop_check=0 ;

while(count<200)

{

while ( (PINA& (1«4)) && (stop_check==0)

) ;

while ( ( ! (PINA& (1«4 )))&&( stop_check===0) ) ‘ if (PINA& (1«4) )

/ {

freq++;

}

}

freq = freq*5; if(freq>=1900) face = 9;

else if(freq>=1700) face = 7;

else if(freq>=1500) face = 6;

else if(freq>=1200) face = 1;

else if(freq>=900) face = 0;

else if (freq>=650) face = 5;

else if(freq>=350) face = 2;

else if(freq>=200) face = 4; else if(freq<200) face = 3;

TCCROB = OxOO; //Остановить таймер }

Это функция, которая измеряет частоту входного сигнала на контакте РА4 микроконтроллера. Она инициализирует TimerO таким образом, что прерывание по его переполнению возникает каждую миллисекунду. Эта процедура увеличивает переменную count до 200 (это и есть интервал в 200 мс). В течение этого времени каждое изменение состояния контакта РА4 записывается в переменную freq. Она затем умножается на 5 (чтобы получить число изменений за одну секунду), что и дает частоту входного сигнала. Далее, исходя из полученного результата, методом проб и ошибок переменной face присваивается определенный номер лица, который функция putface использует для формирования выражения лица на дисплее LCD (извлекая отображаемые байты из памяти программ микроконтроллера). Она также отображает подмигивающие глаза (вызывая функцию puteye).

Главная процедура нашего кода сначала инициализирует LCD, а затем попеременно вызывает функции check и putface (в бесконечном цикле).

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

Для работы с игрушкой Тэнгу вам нужно сначала подключить питание, а затем разместить ее так, чтобы микрофон не был закрыт. Вы увидите лицо на дисплее, а когда появится какой-нибудь звук, глаза мигнут, и изменится выражение рта. Если вы включите громкую музыку, то рот будет постоянно меняться — как будто Тэнгу поет.

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

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

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