В Интернете я обратил внимание на несколько устройств, основанных на инерции зрительного восприятия и подумал, что должен собрать своё собственное устройство, чтобы опробовать необычную идею. Для этого был выделен выходной день, чтобы построить свой первый прототип. Устройство может писать текст, рисовать маленькие изображения и показывать узоры, в то время как вы будете его вращать. Оно оказывает воздействие на зрительное восприятие при вращении на верёвке или жгуте и становится похожим на огненный шар, состоя из 8 светодиодов. В одном вращении содержится примерно 600 виртуальных пикселей. С 8 пикселями по оси Y и 600-ми на оси Х (ось вращения), насчитывается 4800 пикселей на дисплее. Устройство ведёт себя, как воздушный дисплей, паря перед вами благодаря эффекту инерции зрительного восприятия.
Файлы к проекту:
POV++_Project.zip (2.5 МБ) В zip-архиве находятся: исходный код для проекта, написанный в программе MikroC Pro для PIC, редактор таблиц в формате Excel, список деталей и схема в формате PDF.
Фотографии пои
Принципиальная схема и печатная плата
Код
Код для этого проекта был написан на языке C с помощью программы MikroC Pro для PIC18F2685. Самой долгой частью этого проекта является время, которое я провел, используя редактор таблиц для проектирования каждого знака. Хитрость при создании дисплея, в подключении светодиодной дорожки к микроконтроллеру. Так как восемь светодиодов соединены с портом А микроконтроллера, мы можем использовать двоичные значения для включения / выключения каждого светодиода. Если вам нужно получить знания о двоичной системе счисления посмотрите тему на Wolfram MathWorld. Примечание: В микроконтроллере PIC18, значение для 8 светодиодов, вписанное в 8-разрядную шину данных с беззнаковой переменной, имеет числовой диапазон от 0 до 255. ( 8-битная шина данных позволяет контролировать все 8 выходов с порта.)
Использование редактора таблиц
Содержащий в себе знаки — ”Набор символов. xls”- проектируемые редактором таблиц, делает легче создание нового символа, позволяя сделать видимым двоичные значения для каждого из 8 светодиодов. Давайте рассмотрим процесс создания буквы А.
1 | const char letter_A[8]= {31,36,68,132,68,36,31}; |
Затем мы могли бы создать простую функцию, чтобы написать символы, называемые printChar. Для простоты, я показал printChar действующий только с кодом, чтобы набрать символ А. (исходный код с загруженным проектом имеет гораздо больший набор символов.)
1
2 3 4 5 6 7 8 9 10 11 |
void printChar(char letter){
int n; digit_counter++; for(n=0;n>8;n++){ if(letter == ‘A’) PORTA = letter_A[n]; } // 2 пустые строки пикселей PORTA = 0; Delay_ms(2); // настроить обороты в минуту
} //конец функции printChar |
Затем мы могли бы создать простую функцию main, которая использует функцию printChar функция.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
void main() {
/* Установить внутренний RC генератор PIC18F2685 на 32 МГц */ OSCCON.IDLEN = 0 ; OSCCON.IRCF2 = 1 ; OSCCON.IRCF1 = 1 ; OSCCON.IRCF0 = 1 ; OSCTUNE.PLLEN = 1 ;
TRISA = 0x00; // Установить TRIS А для вывода PORTA = 0x00; // Выключить светодиоды порта А /* Всегда писать букву А на экране
*/ while (1) { printChar(‘A’); }
} |
Устройства пользователей
Несколько читателей блога построили свои собственные устройства инерции зрительного восприятия, основываясь на этот блог. Очень лестно слышать читателей со всего мира, которые работали над созданием собственных проектов. Я считаю, что это действительно приносит удовлетворение, когда получаешь шанс увидеть фотографии выполненных ими устройств.
Луи из Венгрии
Луи добавил несколько интересных возможностей для своего проекта. Он адаптировал код для микроконтроллера PIC18F2620 и вырезал окно в печатной плате вокруг каждого светодиода. Это сделало светодиоды видимыми с обеих сторон печатной платы. Он также сделал прямоугольное углубление в печатной плате 9-ти вольтовой батарейки. Это уравновешивает устройство во время вращения.
Шафи из Малайзии
Шафи использует внешний программатор для обновления прошивки своего устройства. Как только новая прошивка заливается на микроконтроллер, он вставляет перепрограммированный pic в dip гнездо устройства.
Перевод Павла Блинкова (grayling3000) по заказу сайта Меандр