вторник, 21 июля 2015 г.

Colorshield. 8x8 RGB светодиодная матрица + Arduino

Заказал поиграться пару вот таких светодиодных индикаторов (8x8, RGB). И заодно Ардуино-шилды (ColorShield) к ним.

Индикатор и Shield-драйвер

Особо не разбирался во внутренностях, нашёл библиотеку Colorduino, с которой всё сразу заработало. С библиотекой поставляется пример Plasma (переливающиеся разноцветные полосы).

Пример "Плазма"


API Colorduino чрезвычайно простое. Используется два буфера: один в данный момент отображается, во втором (внеэкранном) можно рисовать. Затем можно поменять местами буферы. Таким образом осуществляется двойная буферизация. Поддерживаются следующие функции:



Взяв за основу пример с "плазмой" я написал простенький скетч, который перебирает цифры 0-9, отображая их разными цветами. Для этого я использовал шрифты размером 8x8 пикселей из проекта font8x8, просто скопировав "кусочек" с цифрами:





Чтобы рисовать символы я написал такую функцию:

Вот что получилось:

Остальные цифры тоже показываются :)

Полные исходники скетча можно посмотреть в GitHub.