PixelPOI
Увага, початківцям мікроконтролерникам представляю дуже простий 40-піксельний світлопринтер, в народі часто впізнаваний, як pixelpov. Пристрій являє собою невелику лінійку, на якій з певним кроком закріплені світлодіоди. Принцип роботи світлопринтера аналогічний принципам механічної розгортки годинника Боба Бліка.
Спочатку даний пристрій було зроблено іграшкою для племінника, який, до речі, любить все світле, співаюче і котяче на колесах не гірше ніж я.
Напевно, слід зробити невелике відступлення, в якому слід було б викласти основні принципи роботи такої механічної розгортки.
Даний метод відображення графічної інформації в просторі є популярним для багатьох видів побутових «примочок» - годинники, які називаються "propeller clock", світлодіодні 3D глобуси, які також можуть поєднувати в собі функцію відображення реального часу. Сам процес візуального сприйняття простий: наше зір має певну інерційність, завдяки якій неможлива швидка зміна світла. Око має дуже складну будову, запам'ятовує на деякий час освітленість певної зони, і через мілісекунди сприймає відповідну реальному часу освітленість. В телевізорах також застосовують таку технологію «обману» зору, під час якої електронний промінь встигає оббігти весь екран, при цьому ми бачимо лише результат його «пробіжки» - само зображення. Ну а що ж стосується сприйняття, того самого часу «гальмування» ока – людське око вже погано реагує на зміну кадрів частотою 12,5Гц.
Власне, робота світлопринтера заснована на тому ж ефекті: в різні моменти часу, ми запалюємо або гасимо певні світлодіоди, і при маху лінійки цих світлодіодів, буде вимальований растровий малюнок – в даному випадку наше зображення.
Оскільки на момент складання пристрою я не мав мікроконтролера з великим обсягом пам'яті – довелося ставити те, що було. А саме, Attiny2313. Так, не найкращий варіант для pixelpov, адже картинок хочеться зберегти побільше. Але, оскільки мікроконтролери AVR легко сумісні по коду з невеликими програмними доопрацюваннями, переробити програму можна для будь-якого мікроконтролера. Суть роботи світлопринтера залишиться такою ж, а елементна база може варіюватися відповідно до бажаних Вами меж.
Отже, власне кажучи, моя елементна база складається з мікроконтролера та зсувних регістрів 74HC595, в даному пристрої виконуючи функцію розширювачів портів. Загалом використовується 40 білих світлодіодів. Нетрудними арифметичними операціями можна підрахувати, що для здійснення задуманої мети необхідно 5 таких інтегральних схем.
Спочатку, після того, як мікроконтролер ініціалізувався, він зчитує перший байт з вбудованої пам'яті EEPROM. Цей байт він розбиває на 8 біт і передає на інформаційну лінію даних зсувних регістрів. Після того, як дані занесені, мікроконтролер знову приймає дані з EEPROM і передає їх зсувним регістрами. Процес триває, поки даними не заповняться всі 5 регістрів. По закінченні цього процесу, дається імпульс защіпки даних – ми фіксуємо дані в регістрах і виводимо їх на світлодіоди. Далі в програмі передбачена затримка, підібрана досвідченим шляхом «на око», після якої мікроконтролер починає знову виконувати процедуру зчитування 5 байт даних з пам'яті EEPROM з подальшим занесенням їх у зсувні регістри та їх защіпленням-відображенням на світлодіоди.
Оскільки у мікроконтролера Attiny2313 EEPROM пам'ять має обсяг 128 байт, довелося максимально використовувати 25 5-байтних слів для відображення на лінійці. 3 байти залишаться в запасі, вони не будуть використані. При переповненні лічильника адреси даних пам'яті EEPROM програмою передбачений скидання його і відповідно, мікроконтролер знову вказує на дані, починаючи з першого байта.
Отже, виготовлення самої лінійки починається….. з покупки 50см лінійки. Через кожен см пробиваємо 2 отвори під виводи світлодіодів. Виходить ось така конструкція:
Методом ЛУТ була виготовлена друкована плата цього пристрою:
Далі, сам процес зборки:
Усі компоненти, SMD-резистори, мікроконтролер та зсувні регістри, мають корпус для поверхневого монтажу, щоб зменшити загальні габарити пристрою.
А чого це я про габарити-то? Дивимося:
Так, так, це звичайна флешка!
Процес пайки з'єднувальних проводів – зайняв близько 6 годин (почав роботу ввечері – закінчив удень наступного дня, працював 13 годин).
На ранок, була готова от така конструкція:
Обгортаємо це звичайними самоклеючими шпалерами і отримуємо цілком нормальне на вигляд пристрій.
Ну і кілька фотографій роботи pixelPOV:
Отже, куди що підключати.
Зсувні регістри – ланцюжком, перший до мікроконтролера:
PD1 – на вхід регістра защіпки;
PD0 – вхід даних зсувного регістра;
PD2 – вхід синхронізації зсувного регістра.
Схеми, як і ПП, прикладати не має сенсу, оскільки вона буде різнитися в залежності від конструкції та виконання пристрою. Файл прошивки мікроконтролера додається.
Завантажити вихідники і прошивку мікроконтролера ви можете нижче
- led_poi.rar (6 Кб)