Inhoudsopgave:

Magic Hercules - Driver voor digitale LED's - Ajarnpa
Magic Hercules - Driver voor digitale LED's - Ajarnpa

Video: Magic Hercules - Driver voor digitale LED's - Ajarnpa

Video: Magic Hercules - Driver voor digitale LED's - Ajarnpa
Video: Magic Hercules - driver for digital LEDs 2024, November
Anonim
Magic Hercules - Driver voor digitale LED's
Magic Hercules - Driver voor digitale LED's

Snel overzicht:

De Magic Hercules module is een converter tussen het bekende en simpele SPI naar het NZR protocol. De module-ingangen hebben een tolerantie van +3,3 V, dus u kunt veilig alle microcontrollers aansluiten die werken op een spanning van +3,3 V.

Het gebruik van het SPI-protocol voor het aansturen van digitale LED's is een innovatieve benadering van de huidige oplossingen, zoals kant-en-klare bibliotheken voor Arduino. Het maakt het echter mogelijk om naar elk platform over te schakelen, ongeacht de microcontroller-familie (zoals ARM: STM / Cypress PSoC, Raspberry Pi, AVR, PIC, Arduino) en ongeacht de programmeertaal (bijv. C, Arduino C ++, Python of een andere dat het SPI-protocol ondersteunt). Deze benadering van het programmeren van digitale LED's is uiterst beginnersvriendelijk, aangezien u alleen kennis van het SPI-protocol nodig hebt.

De MH-module maakt het ook mogelijk om op verschillende manieren digitale LED-strips te testen, waaronder het testen van de kleurvolgorde in de diode (RGB, BGR, RGBW, enz.), het testen van de volledige strips of displays (tot 1024 LED's).

Stap 1: Waarom werk ik aan de Magic Hercules-module?

Waarom werk ik aan de Magic Hercules-module?
Waarom werk ik aan de Magic Hercules-module?

Ik werk al heel lang met digitale LED's zoals WS2812, WS2815 of SK6812, die ik meestal Magic LED noem.

Ik heb veel strips, ringen en displays (zelfs die van mij) getest op basis van Magic LED (zelfs met RGBW-type). Ik gebruikte Arduino, Nucleo (met STM), Raspberry Pi en mijn eigen borden met AVR-microcontrollers.

Ongeacht het platform is het schrijven van een programma om magische LED's te besturen moeilijk (vanwege de behoefte aan NZR-protocolsoftware), tenzij je kant-en-klare bibliotheken gebruikt die het gemakkelijk maken, maar nog steeds niet volledig optimaal zijn in termen van codegebruik, interrupt reacties, of geheugengebruik, en werken alleen op specifieke platforms (porteren naar bijv. Raspberry naar AVR-microcontrollers is onmogelijk).

Omdat ik vaak verschillende platforms gebruik, had ik de behoefte om de programmacode zo compatibel mogelijk te maken met Arduino, Raspberry Pi, ARM / STM (Nucleo) of AVR - vooral als het gaat om lichteffecten.

Ik werk al heel lang aan het YouTube-kanaal en ik heb meer dan één handleiding opgesteld over het programmeren van digitale diodes in C-taal voor AVR-microcontrollers (maar tot nu toe alleen in het Pools). Ik heb vaak contact met beginners die moeite hebben met het programmeren van magische LED's. Natuurlijk kiezen sommigen, afhankelijk van het platform, kant-en-klare bibliotheken voor hun eenmalige projecten. Veel mensen zoeken echter naar andere oplossingen of proberen de geheimen van programmeren te leren en ik ben een van hen.

Stap 2: SPI naar NZR-conversie

SPI naar NZR conversie
SPI naar NZR conversie

Ik besloot een module voor te bereiden die het vuile werk voor de gebruiker zal doen met behulp van het NZR-protocol. De module die als SPI naar NZR-converter zal fungeren en net als SPI met gemak op elk platform kan worden gebruikt. De bovenstaande schermafbeelding toont de conversie van SPI-signalen naar het NZR-protocol in de Magic Hercules-module.

Stap 3: Magic Hercules-module als digitale LED-striptester

Magic Hercules-module als digitale LED-striptester
Magic Hercules-module als digitale LED-striptester

Bij het aansluiten van digitale LED's op verschillende systemen, moet men rekening houden met de juiste spanningstolerantie voor verschillende microcontrollers. De meeste I/O-pinnen van ARM-microcontrollers werken in de +3,3 V-standaard, terwijl de AVR-microcontrollers werken in de TTL-standaard. Hierdoor hebben de ingangspinnen van de Magic Hercules-module een tolerantie van +3,3 V, zodat ze veilig kunnen worden aangesloten op bijvoorbeeld een Raspberry P of een op ARM gebaseerde microcontroller die wordt gevoed met +3,3 V.

Zoals ik al eerder zei, werk ik vaak met verschillende soorten digitale LED's. Afhankelijk van de fabrikant kunnen individuele kleuren in de LED's zich in verschillende posities bevinden, b.v. RGB, BGR, GRB, RGBW, GRBW, enz. Het is niet ongebruikelijk dat de documentatie van de fabrikant de RGB-reeks vermeldt, maar het ziet er in werkelijkheid anders uit. Ik heb de Hercules-module uitgerust met een kleurvolgordetest, zodat het geen probleem is om snel uit te zoeken hoe je een programma schrijft voor de juiste kleurvolgorde. Verschillende extra functies van de tester stellen u in staat om snel te controleren of de digitale LED-strip überhaupt werkt, of alle kleuren in elke LED over de strip (tot 1024 LED's!) correct werken (geen dode pixels). En dit alles zonder een microcontroller aan te sluiten en een programma te schrijven.

Stap 4: Magic Hercules-module - Nieuwe universele oplossing voor digitale LED's

Magic Hercules Module - Nieuwe universele oplossing voor digitale LED's
Magic Hercules Module - Nieuwe universele oplossing voor digitale LED's

Ik denk dat er nog niet zoiets bestond om digitale LED's aan te sturen met behulp van een eenvoudig en algemeen SPI-protocol, dat op elk platform of elke familie van microcontrollers kan worden gebruikt.

Natuurlijk zijn er veel manieren om digitale LED's aan te sturen, sommige zijn meer optimaal en andere zijn minder optimaal. De Magic Hercules-module is een andere optie en erg praktisch voor mij. Ik denk dat iemand deze ongebruikelijke oplossing misschien leuk vindt. Ik ben onlangs begonnen op het crowdfundingplatform - kickstarter, waar ik in verschillende video's een bredere beschrijving van de Magic Hercules-module heb voorbereid, inclusief hoe gemakkelijk het is om ermee te werken op Arduino, Nucleo (STM), Raspberry Pi en op AVR en PIC microcontrollers. Als je het Magic Hercules-project wilt steunen, kijk dan hier:

Mijn Magic Hercules-moduleproject op kickstarter

Ik heb een programma in C-taal voorbereid - een eenvoudig stargate-effect, dat is gebaseerd op tabelbewerkingen en sequentiële verzending van de buffer in de hoofdlus. Dankzij de Magic Hercules-module kon ik de broncode gemakkelijk overbrengen naar andere talen en platforms - zie de volgende stappen - broncodes.

Stap 5: Magic Hercules-module met Atmega32 en C

Video met vereenvoudigd diagram, verbindingspresentatie op ATB 1.05a (AVR Atmega32), broncode (in Eclipse C/C++ IDE) en het uiteindelijke effect in de vorm van een stargate-lichteffect.

Link naar video op youtube

Stap 6: Magic Hercules-module met Arduino en Arduino C++

Video met een vereenvoudigd diagram, verbindingspresentatie op Arduino 2560-bord, broncode in Arduino IDE en het uiteindelijke effect in de vorm van een stargate-lichteffect.

Link naar video op youtube

Stap 7: Magic Hercules-module met PIC en C

Video met vereenvoudigd diagram, verbindingspresentatie op ATB 1.05a met PIC-shield (PIC24FJ64GA004 aan boord), broncode in MPLAB en het uiteindelijke effect in de vorm van een stargate-lichteffect.

Link naar video op youtube

Stap 8: Magic Hercules-module met Raspberry Pi en Python

Video met een vereenvoudigd diagram, verbindingspresentatie op Raspberry Pi 4, broncode in Python en het uiteindelijke effect in de vorm van een stargate-lichteffect.

Link naar video op youtube

Stap 9: Magic Hercules-module met ARM - STM32 Nucleo en C

Video met een vereenvoudigd diagram, verbindingspresentatie op STM32 Nucleo-bord, broncode in STM32CubeIDE en het uiteindelijke effect in de vorm van een stargate-lichteffect.

Link naar video op youtube

Stap 10:

Afbeelding
Afbeelding

Ik denk dat MH een uiterst beginnersvriendelijke module kan zijn, ongeacht het platform en de taal die ze gebruiken. Het is voldoende om het bekende SPI-protocol te kennen, en de mogelijkheid om te gaan checken of de digitale LED-strip überhaupt werkt en welke kleurvolgorde deze heeft is alleen maar een pluspunt.

Als je wilt deelnemen aan mijn project op kickstarter, kijk dan op deze link:

Mijn Magic Hercules-moduleproject op kickstarter

Aanbevolen: