Innehållsförteckning:

Magic Hercules - drivrutin för digitala lysdioder: 10 steg
Magic Hercules - drivrutin för digitala lysdioder: 10 steg

Video: Magic Hercules - drivrutin för digitala lysdioder: 10 steg

Video: Magic Hercules - drivrutin för digitala lysdioder: 10 steg
Video: That should be illegal✨ 2024, November
Anonim
Magic Hercules - Drivrutin för digitala lysdioder
Magic Hercules - Drivrutin för digitala lysdioder

Snabb överblick:

Magic Hercules-modulen är en omvandlare mellan det välkända och enkla SPI till NZR-protokollet. Modulingångarna har en tolerans på +3,3 V, så att du säkert kan ansluta alla mikrokontroller som arbetar med en spänning på +3,3 V.

Användningen av SPI-protokollet för att styra digitala lysdioder är ett innovativt tillvägagångssätt bland nuvarande lösningar, till exempel färdiga bibliotek för Arduino. Det gör det dock möjligt att byta till vilken plattform som helst oavsett mikrokontrollerfamiljen (t.ex. ARM: STM / Cypress PSoC, Raspberry Pi, AVR, PIC, Arduino) och oavsett programmeringsspråk (t.ex. C, Arduino C ++, Python eller annat som stöder SPI -protokoll). Detta tillvägagångssätt för programmering av digitala lysdioder är extremt nybörjarvänligt eftersom allt du behöver är kunskap om SPI-protokollet.

MH -modulen tillåter också flera sätt att testa digitala LED -remsor, inklusive testning av färgordningen i dioden (RGB, BGR, RGBW, etc.), testning av hela remsorna eller skärmarna (upp till 1024 lysdioder).

Steg 1: Varför arbetar jag med Magic Hercules -modulen?

Varför arbetar jag med Magic Hercules -modulen?
Varför arbetar jag med Magic Hercules -modulen?

Jag har länge arbetat med digitala lysdioder som WS2812, WS2815 eller SK6812, som jag brukar kalla Magic LED.

Jag testade många remsor, ringar och skärmar (även min egen) baserad på Magic LED (även med RGBW -typ). Jag använde Arduino, Nucleo (med STM), Raspberry Pi och mina egna kort med AVR -mikrokontroller.

Oavsett plattform är det svårt att skriva ett program för att styra magiska lysdioder (på grund av behovet av NZR-protokollprogramvara), såvida du inte använder färdiga bibliotek som gör det enkelt, men fortfarande inte helt optimalt när det gäller kodanvändning, avbryt svar, eller minnesutnyttjande, och fungerar bara på specifika plattformar (att överföra dem till t.ex. från hallon till AVR -mikrokontroller är omöjligt).

På grund av att jag ofta använder olika plattformar hade jag behov av att programkoden var så kompatibel som möjligt med Arduino, Raspberry Pi, ARM / STM (Nucleo) eller AVR - särskilt när det gäller ljudeffekter.

Jag har arbetat på youtube -kanalen länge och jag har utarbetat mer än en guide för programmering av digitala dioder på C -språk för AVR -mikrokontroller (men hittills bara på polska för tillfället). Jag har ofta kontakt med nybörjare som kämpar med programmering av magiska lysdioder. Naturligtvis väljer vissa, beroende på plattformen, färdiga bibliotek för sina engångsprojekt. Men många letar efter andra lösningar eller försöker lära sig programmens hemligheter och jag är en av dem.

Steg 2: SPI till NZR -konvertering

Konvertering av SPI till NZR
Konvertering av SPI till NZR

Jag bestämde mig för att förbereda en modul som gör det smutsiga arbetet för användaren med hjälp av NZR -protokollet. Modulen som fungerar som SPI till NZR -omvandlare och precis som SPI kan enkelt användas på vilken plattform som helst. Skärmdumpen ovan visar konvertering av SPI -signaler till NZR -protokoll i Magic Hercules -modulen.

Steg 3: Magic Hercules -modul som digital LED Strip Tester

Magic Hercules -modul som digital LED Strip Tester
Magic Hercules -modul som digital LED Strip Tester

När du ansluter digitala lysdioder till olika system bör du komma ihåg lämplig spänningstolerans för olika mikrokontroller. De flesta I / O -stiften på ARM -mikrokontroller fungerar i +3.3 V -standarden, medan AVR -mikrokontroller fungerar i TTL -standarden. På grund av detta har ingångsstiften på Magic Hercules -modulen en tolerans på +3,3 V, så att de säkert kan anslutas till t.ex. en Raspberry P eller någon ARM -baserad mikrokontroller som drivs +3,3 V.

Som jag nämnde tidigare arbetar jag ofta med olika typer av digitala lysdioder. Beroende på tillverkare kan enskilda färger i lysdioderna ha olika positioner, t.ex. RGB, BGR, GRB, RGBW, GRBW, etc. Det är inte ovanligt att tillverkarens dokumentation nämner RGB -sekvensen, men det ser faktiskt annorlunda ut. Jag har utrustat Hercules -modulen med ett färgföljningstest så att det inte är några problem med att snabbt ta reda på hur man skriver ett program för rätt färgordning. Flera ytterligare funktioner hos testaren gör att du snabbt kan kontrollera om den digitala LED -remsan alls fungerar, om alla färger i varje LED tvärs över remsan (upp till 1024 lysdioder!) Fungerar korrekt (inga döda pixlar). Och allt detta utan att ansluta en mikrokontroller och skriva något program.

Steg 4: Magic Hercules Module - Ny universell lösning för digitala lysdioder

Magic Hercules Module - Ny universell lösning för digitala lysdioder
Magic Hercules Module - Ny universell lösning för digitala lysdioder

Jag tror inte att det fanns något sådant ännu, att styra digitala lysdioder med hjälp av ett enkelt och vanligt SPI -protokoll, som kan användas på alla plattformar eller familjer av mikrokontroller.

Naturligtvis finns det många sätt att styra digitala lysdioder, vissa är mer optimala och andra är mindre optimala. Magic Hercules -modulen är ett annat alternativ och mycket praktiskt för mig. Jag tror att någon kanske gillar den här ovanliga lösningen. Jag tog nyligen fart på crowdfunding -plattformen - kickstarter, där jag utarbetade en bredare beskrivning av Magic Hercules -modulen i flera videor, inklusive hur lätt det är att arbeta med det på Arduino, Nucleo (STM), Raspberry Pi och på AVR och PIC mikrokontroller. Om du vill stödja Magic Hercules -projektet, kolla in det här:

My Magic Hercules -modulprojekt på kickstarter

Jag förberedde ett program på C -språk - en enkel stargate -effekt, som är baserad på tabelloperationer och sekventiell sändning av bufferten i huvudslingan. Tack vare Magic Hercules -modulen kunde jag enkelt överföra källkoden till andra språk och plattformar - kolla nästa steg - källkoder.

Steg 5: Magic Hercules -modul med Atmega32 och C

Video som innehåller ett förenklat diagram, anslutningspresentation på ATB 1.05a (AVR Atmega32), källkod (i Eclipse C/C ++ IDE) och sluteffekten i form av en stargate ljuseffekt.

Länk till video på youtube

Steg 6: Magic Hercules -modul med Arduino och Arduino C ++

Video som innehåller ett förenklat diagram, anslutningspresentation på Arduino 2560 -kort, källkod i Arduino IDE och sluteffekten i form av en stargate -ljuseffekt.

Länk till video på youtube

Steg 7: Magic Hercules -modul med PIC och C

Video som innehåller ett förenklat diagram, anslutningspresentation på ATB 1.05a med PIC -skärm (PIC24FJ64GA004 ombord), källkod i MPLAB och sluteffekten i form av en stargate -ljuseffekt.

Länk till video på youtube

Steg 8: Magic Hercules -modul med Raspberry Pi och Python

Video som innehåller ett förenklat diagram, anslutningspresentation på Raspberry Pi 4, källkod i Python och sluteffekten i form av en stargate -ljuseffekt.

Länk till video på youtube

Steg 9: Magic Hercules -modul med ARM - STM32 Nucleo och C

Video som innehåller ett förenklat diagram, anslutningspresentation på STM32 Nucleo -kort, källkod i STM32CubeIDE och sluteffekten i form av en stargate -ljuseffekt.

Länk till video på youtube

Steg 10:

Bild
Bild

Jag tror att MH kan vara en extremt nybörjarvänlig modul, oavsett plattform och språk de använder. Det räcker att känna till det välkända SPI-protokollet, och möjligheten att börja kontrollera om den digitala LED-remsan överhuvudtaget fungerar och vilken färgföljd den har är bara ett plus.

Om du vill delta i mitt projekt på kickstarter - kolla den här länken:

My Magic Hercules -modulprojekt på kickstarter

Rekommenderad: