Innholdsfortegnelse:

Magic Hercules - driver for digitale lysdioder: 10 trinn
Magic Hercules - driver for digitale lysdioder: 10 trinn

Video: Magic Hercules - driver for digitale lysdioder: 10 trinn

Video: Magic Hercules - driver for digitale lysdioder: 10 trinn
Video: How to make a LED digital counter using 7- Segment Display 2024, November
Anonim
Magic Hercules - driver for digitale lysdioder
Magic Hercules - driver for digitale lysdioder

Raskt Overblikk:

Magic Hercules-modulen er en omformer mellom den velkjente og enkle SPI-en til NZR-protokollen. Modulinngangene har en toleranse på +3,3 V, slik at du trygt kan koble til alle mikrokontrollere som opererer med en spenning på +3,3 V.

Bruken av SPI-protokollen for å kontrollere digitale lysdioder er en innovativ tilnærming blant dagens løsninger, for eksempel ferdige biblioteker for Arduino. Det tillater imidlertid bytte til hvilken som helst plattform uavhengig av mikrokontrollerfamilien (for eksempel ARM: STM / Cypress PSoC, Raspberry Pi, AVR, PIC, Arduino) og uansett programmeringsspråk (f.eks. C, Arduino C ++, Python eller et annet som støtter SPI -protokollen). Denne tilnærmingen til programmering av digitale lysdioder er ekstremt nybegynnervennlig, ettersom alt du trenger er kunnskap om SPI-protokollen.

MH -modulen tillater også flere måter å teste digitale LED -strimler på, inkludert testing av fargerekkefølgen i dioden (RGB, BGR, RGBW, etc.), testing av hele stripene eller skjermene (opptil 1024 lysdioder).

Trinn 1: Hvorfor jobber jeg med Magic Hercules -modulen?

Hvorfor jobber jeg med Magic Hercules -modulen?
Hvorfor jobber jeg med Magic Hercules -modulen?

Jeg har jobbet med digitale lysdioder som WS2812, WS2815 eller SK6812 i lang tid, som jeg vanligvis kaller Magic LED.

Jeg testet mange strimler, ringer og skjermer (selv min egen) basert på Magic LED (selv med RGBW -type). Jeg brukte Arduino, Nucleo (med STM), Raspberry Pi og mine egne brett med AVR -mikrokontrollere.

Uansett plattform er det vanskelig å skrive et program for å kontrollere magiske lysdioder (på grunn av behovet for NZR-protokollprogramvare), med mindre du bruker ferdige biblioteker som gjør det enkelt, men fortsatt ikke fullt optimalt når det gjelder kodebruk, avbryt svar eller minnebruk, og fungerer bare på spesifikke plattformer (det er umulig å portere dem til f.eks. fra bringebær til AVR -mikrokontrollere).

På grunn av at jeg ofte bruker forskjellige plattformer, hadde jeg behov for at programkoden var så kompatibel som mulig med Arduino, Raspberry Pi, ARM / STM (Nucleo) eller AVR - spesielt når det gjelder lyseffekter.

Jeg har jobbet på youtube -kanalen i lang tid, og jeg har utarbeidet mer enn én guide for programmering av digitale dioder på C -språk for AVR -mikrokontrollere (men foreløpig bare på polsk). Jeg har ofte kontakt med nybegynnere som sliter med å programmere magiske lysdioder. Selvfølgelig, noen, avhengig av plattformen, velger klare biblioteker for sine engangsprosjekter. Imidlertid ser mange mennesker etter andre løsninger eller prøver å lære hemmelighetene til programmering, og jeg er en av dem.

Trinn 2: Konvertering av SPI til NZR

Konvertering av SPI til NZR
Konvertering av SPI til NZR

Jeg bestemte meg for å forberede en modul som vil gjøre det skitne arbeidet for brukeren ved hjelp av NZR -protokollen. Modulen som vil fungere som SPI til NZR -omformer og akkurat som SPI, kan enkelt brukes på hvilken som helst plattform. Skjermbildet ovenfor viser konvertering av SPI -signaler til NZR -protokoll i Magic Hercules -modulen.

Trinn 3: Magic Hercules -modul som digital LED -stripetester

Magic Hercules -modul som digital LED -stripetester
Magic Hercules -modul som digital LED -stripetester

Når du kobler digitale lysdioder til forskjellige systemer, bør du huske om passende spenningstoleranse for forskjellige mikrokontrollere. De fleste I / O -pinnene til ARM -mikrokontrollere fungerer i +3.3 V -standarden, mens AVR -mikrokontrollerne fungerer i TTL -standarden. På grunn av dette har inngangspinnene til Magic Hercules -modulen en toleranse på +3,3 V, slik at de trygt kan kobles til f.eks. En Raspberry P eller en hvilken som helst ARM -basert mikrokontroller drevet +3,3 V.

Som jeg nevnte før, jobber jeg ofte med forskjellige typer digitale lysdioder. Avhengig av produsent kan individuelle farger i lysdiodene være i forskjellige posisjoner, f.eks. RGB, BGR, GRB, RGBW, GRBW, etc. Det er ikke uvanlig at produsentens dokumentasjon nevner RGB -sekvensen, men det ser faktisk annerledes ut. Jeg har utstyrt Hercules -modulen med en fargesekvens -test, slik at det ikke er noe problem med å raskt finne ut hvordan du skriver et program for riktig fargerekkefølge. Flere tilleggsfunksjoner til testeren lar deg raskt kontrollere om den digitale LED -stripen fungerer i det hele tatt, om alle fargene i hver LED på tvers av stripen (opptil 1024 lysdioder!) Fungerer som de skal (ingen døde piksler). Og alt dette uten å koble til en mikrokontroller og skrive noe program.

Trinn 4: Magic Hercules Module - Ny universell løsning for digitale lysdioder

Magic Hercules Module - Ny universell løsning for digitale lysdioder
Magic Hercules Module - Ny universell løsning for digitale lysdioder

Jeg tror ikke det var noe slikt ennå, å kontrollere digitale lysdioder ved hjelp av en enkel og vanlig SPI -protokoll, som kan betjenes på hvilken som helst plattform eller familie av mikrokontrollere.

Selvfølgelig er det mange måter å kontrollere digitale lysdioder på. Noen er mer optimale og andre er mindre optimale. Magic Hercules -modulen er et annet alternativ og veldig praktisk for meg. Jeg tror at noen kan like denne uvanlige løsningen. Jeg tok nylig av på crowdfunding -plattformen - kickstarter, hvor jeg utarbeidet en bredere beskrivelse av Magic Hercules -modulen i flere videoer, inkludert hvor enkelt det er å jobbe med det på Arduino, Nucleo (STM), Raspberry Pi og på AVR og PIC mikrokontrollere. Hvis du ønsker å støtte Magic Hercules -prosjektet, kan du sjekke dette ut:

My Magic Hercules modulprosjekt på kickstarter

Jeg forberedte et program på C -språk - en enkel stargate -effekt, som er basert på bordoperasjoner og sekvensiell sending av bufferen i hovedløkken. Takket være Magic Hercules -modulen klarte jeg enkelt å overføre kildekoden til andre språk og plattformer - sjekk de neste trinnene - kildekoder.

Trinn 5: Magic Hercules -modul med Atmega32 og C

Video som inneholder et forenklet diagram, tilkoblingspresentasjon på ATB 1.05a (AVR Atmega32), kildekode (i Eclipse C/C ++ IDE) og slutteffekten i form av en stargate lyseffekt.

Link til video på youtube

Trinn 6: Magic Hercules -modul med Arduino og Arduino C ++

Video som inneholder et forenklet diagram, tilkoblingspresentasjon på Arduino 2560 -kort, kildekode i Arduino IDE og slutteffekten i form av en stargate -lyseffekt.

Link til video på youtube

Trinn 7: Magic Hercules -modul med PIC og C

Video som inneholder et forenklet diagram, tilkoblingspresentasjon på ATB 1.05a med PIC -skjerm (PIC24FJ64GA004 om bord), kildekode i MPLAB og slutteffekten i form av en stargate lyseffekt.

Link til video på youtube

Trinn 8: Magic Hercules -modul med Raspberry Pi og Python

Video som inneholder et forenklet diagram, tilkoblingspresentasjon på Raspberry Pi 4, kildekode i Python og slutteffekten i form av en stargate -lyseffekt.

Link til video på youtube

Trinn 9: Magic Hercules -modul med ARM - STM32 Nucleo og C

Video som inneholder et forenklet diagram, tilkoblingspresentasjon på STM32 Nucleo -kort, kildekode i STM32CubeIDE og slutteffekten i form av en stargate -lyseffekt.

Link til video på youtube

Trinn 10:

Bilde
Bilde

Jeg tror MH kan være en ekstremt nybegynnervennlig modul, uansett plattform og språk de bruker. Det er nok å kjenne den velkjente SPI-protokollen, og muligheten til å begynne å sjekke om den digitale LED-stripen fungerer i det hele tatt, og hvilken fargesekvens den har, er bare et pluss.

Hvis du vil delta i prosjektet mitt på kickstarter - sjekk denne lenken:

My Magic Hercules modulprosjekt på kickstarter

Anbefalt: