И так, давайте сначала разберемся, что же такое POV (Persistence Of Vision). Persistence of vision refers to the optical illusion that occurs when visual perception of an object does not cease for some time after the rays of light proceeding from it have ceased to enter the eye. The illusion has also been described as “retinal persistence”, “persistence of impressions”, simply “persistence” and other variations. Если перевести, то дословно выглядит так: Постоянство зрения относится к оптической иллюзии, которая возникает, когда визуальное восприятие объекта не прекращается в течение некоторого времени после того, как лучи света, исходящие от него, перестали проникать в глаз. Иллюзия также была описана как «стойкость к сетчатке», «постоянство впечатлений», просто «упорство» и другие вариации.
Вообщем простым языком POV display это получаемое изображение путем мерцания светодиодов в движении.
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Для реализации нам понадобится:
attiny84a: http://ali.pub/2uqzgp – дешевле купить в магазинах электроники. Например в chipиdip
buttons: http://ali.pub/2v1nq9
switch: http://ali.pub/2v1nuc
dip_cr2032: http://ali.pub/2v1o1x
resistor_330ohm: http://ali.pub/2v1oa3
leds: http://ali.pub/2v1oho
condensator: http://ali.pub/2v1opu
magnetic switch: http://ali.pub/2v1ovv
bearing 608: http://ali.pub/2v1ozr
cr2032: http://ali.pub/2v1q1o
magnet: http://ali.pub/2v1q7i
После приобретения всех элементов нам нужно заказать саму плату, на которой будем это все распаивать. Схему сделанную в KiCad скачать и изменить под свои нужды можно вот тут. А gerber файлы которую будем отправлять на завод для изготовления тут. Я заказывал на сайте www.pcbway.com. Минимальное количество 5 плат. Платы пришли очень аккуратные и красивые, мне очень понравились.
Как паяются элементы будет показано в видео в конце статьи. А мы же здесь разберем основные моменты.
Следующим после напаивания всех элементов на плату, контроллер attiny84a-pu нужно запрограммировать. Программировать будем через Arduino, как настроить программу Arduino IDE для программирования через Arduino микроконтроллер attiny84a я описал вот в этой статье: тут
Единственное при заливке скетча для спиннера нужно будет поменять один параметр, а именно в Инструменты->pin mapping->Clockwise на Counterclockwise. Важно: Если после заливки скетча у Вас горят два светодиода, то значит с этими параметрами напутали, поменяйте их.
Сам скетч можно скачать по данной ссылке: https://yadi.sk/d/S6rFTLnEY0R3WA
По данной ссылке находится архив. Распаковав архив в папку и запустив SMD_spinner_THT_R2b.ino у Вас должно появиться 3 вкладки. Так и должно быть, в таком виде и загружайте скетч в Attiny84a. Выглядеть это должно вот таким образом:
Ну а что касается подключения самого спиннера с напаянным уже контроллером схема выглядит вот таким образом:
Распиновку будем считать с лева на право самый верхний пин левый который + это будет 1 потом 2,3,4,5,6 (456 тоже будут считаться во втором ряду с лева на право)
И таблица подключения будет выглядеть вот так:
spinner | Arduino |
1 | VCC |
2 | D11 |
3 | GND |
4 | D12 |
5 | D13 |
6 | D10 |
А теперь давайте поговорим о том как создавать картинки на нашем POV display.
Для того чтоб это сделать нам понадобится скачать шаблон:
Данный шаблон имеет окружность разбитую на равные части с шагом в 5 градусов. и Того 72 столбца и 8 строк. 8 строк – это количество светодиодов. Окружность представляет собой полный оборот спиннера. Чтоб нам сделать свой рисунок нужно взять этот шаблон и в paint закрасить те квадраты из которых будет состоять рисунок, вот например как сердце показанное в этом примере:
Итак что мы тут имеем, а имеем мы тут изображение сердца. Программировать сердце будем массивами состоящими из 0 и 1 где пустое поле, там будет 0, где закрашенное там 1. Нумерация идет с края к центру. Тоесть чтоб отобразить самый низ сердца мы пойдем по часовой стрелке. Сначала у нас будет: B10000000, Второй столбец будет: B01000000, Третий такой же: B01000000, и так далее. В итоге сердце будет выглядеть следующим образом:
B10000000,
B01000000,
B01000000,
B00100000,
B00100000,
B00100000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00100000,
B00100000,
B00100000,
B00100000,
B01000000,
B01000000,
B01000000,
B10000000,
B10000000,
B10000000,
B10000000,
B10000000,
B01000000,
B00100000,
B00010000,
B00001000,
B00000100,
B00000010,
B00000001,
B00000001,
B00000010,
B00000100,
B00001000,
B00010000,
B00100000,
B01000000,
B10000000,
B10000000,
B10000000,
B10000000,
B10000000,
B01000000,
B01000000,
B01000000,
B00100000,
B00100000,
B00100000,
B00100000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00010000,
B00100000,
B00100000,
B00100000,
B01000000,
B01000000,
B10000000,
Данный массив будем добавлять в textAndShapes.h.
Собственно на этом все. Демонстрация работы спиннера и пайка компонентов в видео: