Пропонований пристрій засноване на інерційному сприйнятті світла людським оком. Око “пам’ятає” зображення протягом приблизно 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 с .: іл. – (Електроніка)