Съдържание:

Magic Hercules - Драйвер за цифрови светодиоди: 10 стъпки
Magic Hercules - Драйвер за цифрови светодиоди: 10 стъпки

Видео: Magic Hercules - Драйвер за цифрови светодиоди: 10 стъпки

Видео: Magic Hercules - Драйвер за цифрови светодиоди: 10 стъпки
Видео: A Day with Particles 2024, Ноември
Anonim
Magic Hercules - Драйвер за цифрови светодиоди
Magic Hercules - Драйвер за цифрови светодиоди

Бърз Преглед:

Модулът Magic Hercules е конвертор между добре познатия и прост SPI към NZR протокола. Входовете на модула имат толеранс от +3,3 V, така че можете безопасно да свържете всички микроконтролери, работещи при напрежение +3,3 V.

Използването на SPI протокола за управление на цифрови светодиоди е иновативен подход сред настоящите решения, като например готови библиотеки за Arduino. Той обаче позволява превключване към всяка платформа, независимо от семейството на микроконтролерите (като ARM: STM / Cypress PSoC, Raspberry Pi, AVR, PIC, Arduino) и независимо от езика за програмиране (напр. C, Arduino C ++, Python или друг който поддържа SPI протокол). Този подход към програмирането на цифрови светодиоди е изключително лесен за начинаещи, тъй като всичко, от което се нуждаете, е познаване на SPI протокола.

MH модулът позволява и няколко режима на тестване на цифрови LED ленти, включително тестване на цветовия ред в диода (RGB, BGR, RGBW и др.), Тестване на цели ленти или дисплеи (до 1024 светодиода).

Стъпка 1: Защо работя върху модула Magic Hercules?

Защо работя върху модула Magic Hercules?
Защо работя върху модула Magic Hercules?

Дълго работя с цифрови светодиоди като WS2812, WS2815 или SK6812, които обикновено наричам Magic LED.

Тествах много ленти, пръстени и дисплеи (дори моите собствени) на базата на Magic LED (дори с тип RGBW). Използвах Arduino, Nucleo (със STM), Raspberry Pi и собствени платки с AVR микроконтролери.

Независимо от платформата, писането на програма за управление на магически светодиоди е трудно (поради необходимостта от софтуер за протокол NZR), освен ако не използвате готови библиотеки, които улесняват, но все още не са напълно оптимални по отношение на използването на код, прекъсвайте отговори или използване на паметта и работят само на конкретни платформи (пренасянето им например от микроконтролери на Raspberry към AVR е невъзможно).

Поради факта, че често използвам различни платформи, имах нужда програмният код да бъде възможно най -съвместим с Arduino, Raspberry Pi, ARM / STM (Nucleo) или AVR - особено що се отнася до светлинни ефекти.

Работя по youtube канала от дълго време и съм подготвил повече от едно ръководство за програмиране на цифрови диоди на език C за AVR микроконтролери (но засега само на полски). Често имам контакт с начинаещи, които се борят с програмирането на вълшебни светодиоди. Разбира се, някои, в зависимост от платформата, избират готови библиотеки за своите еднократни проекти. Много хора обаче търсят други решения или се опитват да научат тайните на програмирането и аз съм един от тях.

Стъпка 2: Преобразуване на SPI в NZR

Конвертиране на SPI в NZR
Конвертиране на SPI в NZR

Реших да подготвя модул, който ще върши мръсната работа за потребителя, използвайки протокола NZR. Модулът, който ще действа като SPI към NZR конвертор и точно като SPI, може да се използва с лекота на всяка платформа. Снимката по -горе показва конвертирането на SPI сигнали в NZR протокол в модула Magic Hercules.

Стъпка 3: Модул Magic Hercules като цифров тестер за LED ленти

Модул Magic Hercules като цифров тестер за LED ленти
Модул Magic Hercules като цифров тестер за LED ленти

Когато свързвате цифрови светодиоди към различни системи, трябва да помните за подходящия толеранс на напрежението за различните микроконтролери. Повечето от входно -изходните щифтове на ARM микроконтролерите работят в +3.3 V стандарт, докато AVR микроконтролерите работят в TTL стандарта. Поради това входните щифтове на модула Magic Hercules имат толеранс от +3,3 V, така че те могат да бъдат безопасно свързани, например с Raspberry P или всеки ARM базиран микроконтролер, захранван с +3,3 V.

Както споменах по -рано, често работя с различни видове цифрови светодиоди. В зависимост от производителя отделните цветове в светодиодите могат да бъдат в различни позиции, напр. RGB, BGR, GRB, RGBW, GRBW и др. Не е необичайно документацията на производителя да споменава RGB последователността, но всъщност изглежда различно. Оборудвах модула на Херкулес с тест за цветова последователност, така че да няма проблем с бързото измисляне как да напиша програма за правилния ред на цветовете. Няколко допълнителни функции на тестера ви позволяват бързо да проверите дали цифровата LED лента работи изобщо, дали всички цветове във всеки светодиод по лентата (до 1024 светодиода!) Работят правилно (няма мъртви пиксели). И всичко това без свързване на микроконтролер и писане на каквато и да е програма.

Стъпка 4: Модул Magic Hercules - Ново универсално решение за цифрови светодиоди

Модул Magic Hercules - Ново универсално решение за цифрови светодиоди
Модул Magic Hercules - Ново универсално решение за цифрови светодиоди

Не мисля, че все още е имало такова нещо, за да се управляват цифровите светодиоди с помощта на прост и общ SPI протокол, който може да се управлява на всяка платформа или семейство микроконтролери.

Разбира се, има много начини за управление на цифровите светодиоди, някои са по -оптимални, а други са по -малко оптимални. Модулът Magic Hercules е друг вариант и много практичен за мен. Мисля, че това необичайно решение може да се хареса на някого. Наскоро стартирах платформата за краудфандинг - kickstarter, където подготвих по -широко описание на модула Magic Hercules в няколко видеоклипа, включително колко лесно е да работите с него на Arduino, Nucleo (STM), Raspberry Pi и на AVR и PIC микроконтролери. Ако искате да подкрепите проекта Magic Hercules, проверете това:

Моят проект за модул My Magic Hercules на kickstarter

Подготвих програма на език C - прост ефект на звездата, който се основава на операции с таблици и последователно изпращане на буфера в основния цикъл. Благодарение на модула Magic Hercules успях лесно да прехвърля изходния код на други езици и платформи - проверете следващите стъпки - изходни кодове.

Стъпка 5: Модул Magic Hercules с Atmega32 и C

Видео, съдържащо опростена диаграма, представяне на връзката на ATB 1.05a (AVR Atmega32), изходен код (в Eclipse C/C ++ IDE) и крайния ефект под формата на светлинен ефект на звездата.

Линк към видео в youtube

Стъпка 6: Модул Magic Hercules с Arduino и Arduino C ++

Видео, съдържащо опростена диаграма, представяне на връзка на платка Arduino 2560, изходен код в Arduino IDE и краен ефект под формата на светлинен ефект на звездата.

Линк към видео в youtube

Стъпка 7: Модул Magic Hercules с PIC и C

Видео, съдържащо опростена диаграма, представяне на връзка на ATB 1.05a с PIC щит (PIC24FJ64GA004 на борда), изходен код в MPLAB и краен ефект под формата на светлинен ефект на звездата.

Връзка към видео в youtube

Стъпка 8: Модул Magic Hercules с Raspberry Pi и Python

Видео, съдържащо опростена диаграма, представяне на връзката на Raspberry Pi 4, изходен код в Python и крайния ефект под формата на светлинен ефект на звездата.

Линк към видео в youtube

Стъпка 9: Модул Magic Hercules с ARM - STM32 Nucleo и C

Видео, съдържащо опростена диаграма, представяне на връзката на STM32 Nucleo платка, изходен код в STM32CubeIDE и крайния ефект под формата на светлинен ефект на звездата.

Линк към видео в youtube

Стъпка 10:

Образ
Образ

Мисля, че МЗ може да бъде изключително удобен за начинаещи модул, независимо от платформата и езика, който използват. Достатъчно е да познавате добре познатия SPI протокол, а възможността да започнете да проверявате дали цифровата LED лента работи изобщо и каква цветова последователност има, е само плюс.

Ако искате да участвате в моя проект на kickstarter - проверете тази връзка:

Моят модулен проект на Magic Hercules на kickstarter

Препоръчано: