Компонент Adafruit NeoPXL8 FeatherWing
С тех пор как мы впервые начали использовать NeoPixels в 2012 году, цепные RGB-светодиоды завоевали весь мир. И большая часть этого успеха обусловлена простотой их подключения — всего один провод передачи данных, независимо от того, сколько у вас пикселей. Поэтому неудивительно, что они повсюду, мелькают на художественных выставках, демонстрациях maker faire, стендах ди-джеев, декорациях и костюмах.
Но в какой-то момент каждый пользователь Neopixel’a сталкивается с ограничениями этого единственного канала передачи данных: выбор времени очень требователен, и часто вашему коду приходится полностью останавливаться, чтобы он мог выдавать данные без каких-либо перерывов. Это требование затрудняет создание быстро обновляемых световых эффектов и ограничивает количество пикселей, которые вы можете управлять, прежде чем другие аппаратные периферийные устройства привлекут внимание.
Резидент pixel-pro Paint Your Dragon (который придумал название NeoPixel dont-cha-know!) принял этот вызов и блестяще преуспел. Внимательно изучив спецификацию ATSAMD21, он заметил, что вы могли бы использовать таймер 0 в режиме «форма сигнала» и создать 8 уникальных форм сигнала через DMA, которые обрабатывали бы все пиксельные изменения за вас.
Так родилась библиотека NeoPXL8 Arduino и NeoPXL8 Featherwing! Библиотека работает на наших устройствах Feather M0 (базовый Proto, Adalogger, Bluefruit, Express и других) и обрабатывает все функции неопикселирования за вас, до 8 потоков одновременного вывода DMA, каждый из которых может иметь длину 250 пикселей, в общей сложности 8 x 250 = 2000 пикселей. Это также оставляет вам немного оперативной памяти для запуска вашего кода — теоретический максимум составляет 340 пикселей на строку, но вы бы использовали всю оперативную память на чипе M0.
Чтобы упростить подключение, это устройство Featherwing выполняет за вас переключение уровней и расположение штифтов. Все 8 цепей имеют регулятор уровня, который преобразует логический уровень 3,3 В в логический уровень 5 В, есть небольшой преобразователь с переключателем-колпачком, который генерирует чистый источник питания 5 В для вас. Затем резистор на 100 Ом, подключенный к линии после буфера, уменьшает звон при длительных проводках.
Печатная плата
Схема
Список пинов
| Пин | Тип |
|---|---|
| NEO3 | мама |
| NEO3 | папа |
| NEO2 | мама |
| NEO2 | папа |
| NEO1 | папа |
| NEO1 | мама |
| NEO0 | мама |
| NEO0 | папа |
| RESET | папа |
| RESET | мама |
| 3.3V | папа |
| 3.3V | мама |
| AREF | мама |
| AREF | папа |
| GND | мама |
| GND | мама |
| GND | мама |
| GND | мама |
| GND | мама |
| GND | мама |
| GND | мама |
| GND | мама |
| GND | папа |
| GND | папа |
| GND | папа |
| GND | папа |
| GND | папа |
| GND | папа |
| GND | папа |
| GND | папа |
| GND | папа |
| GND | мама |
| A0 | мама |
| A0 | папа |
| A1 | мама |
| A1 | папа |
| A2 | мама |
| A2 | папа |
| A3 | папа |
| A3 | мама |
| A4 | папа |
| A4 | мама |
| A5 | мама |
| A5 | папа |
| SCK | папа |
| SCK | мама |
| MOSI | папа |
| MOSI | мама |
| MISO | мама |
| MISO | папа |
| RX | папа |
| RX | мама |
| TX | папа |
| TX | мама |
| G | мама |
| G | папа |
| VBAT | папа |
| VBAT | мама |
| EN | мама |
| EN | папа |
| USB | папа |
| USB | мама |
| D13 | мама |
| D13 | папа |
| D12 | папа |
| D12 | мама |
| D11 | мама |
| D11 | папа |
| D10 | папа |
| D10 | мама |
| D9 | мама |
| D9 | папа |
| D6 | мама |
| D6 | папа |
| D5 | мама |
| D5 | папа |
| SCL | мама |
| SCL | папа |
| SDA | мама |
| SDA | папа |
| NEO4 | мама |
| NEO4 | папа |
| NEO5 | папа |
| NEO5 | мама |
| NEO6 | мама |
| NEO6 | папа |
| NEO7 | папа |
| NEO7 | мама |
Нам очень важно получать обратную связь. Пожалуйста, оцените материал. Так мы поймем в какую сторону его стоит изменить.