Sisällysluettelo:

Magic Hercules - Digitaalisten LEDien ohjain: 10 vaihetta
Magic Hercules - Digitaalisten LEDien ohjain: 10 vaihetta

Video: Magic Hercules - Digitaalisten LEDien ohjain: 10 vaihetta

Video: Magic Hercules - Digitaalisten LEDien ohjain: 10 vaihetta
Video: Sielun avaaminen – mitä New Age -profeetat paljastavat piilotetusta luonnostamme 2024, Marraskuu
Anonim
Magic Hercules - Digitaalisten LEDien ohjain
Magic Hercules - Digitaalisten LEDien ohjain

Nopea katsaus:

Magic Hercules -moduuli on muunnin tunnetun ja yksinkertaisen SPI: n ja NZR-protokollan välillä. Moduulitulojen toleranssi on +3,3 V, joten voit liittää turvallisesti kaikki +3,3 V jännitteellä toimivat mikro -ohjaimet.

SPI-protokollan käyttö digitaalisten LED-valojen ohjaamiseen on innovatiivinen lähestymistapa nykyisiin ratkaisuihin, kuten Arduinon valmiisiin kirjastoihin. Se mahdollistaa kuitenkin siirtymisen mille tahansa alustalle riippumatta mikrokontrolleriperheestä (kuten ARM: STM / Cypress PSoC, Raspberry Pi, AVR, PIC, Arduino) ja ohjelmointikielestä riippumatta (esim. C, Arduino C ++, Python tai muu) joka tukee SPI -protokollaa). Tämä lähestymistapa digitaalisten LEDien ohjelmointiin on erittäin aloittelijaystävällinen, koska tarvitset vain SPI-protokollan tuntemuksen.

MH -moduuli mahdollistaa myös useiden digitaalisten LED -nauhojen testaustilojen, mukaan lukien diodin värijärjestyksen (RGB, BGR, RGBW jne.) Testaamisen, koko nauhan tai näytön testaamisen (jopa 1024 LEDiä).

Vaihe 1: Miksi työskentelen Magic Hercules -moduulin parissa?

Miksi työskentelen Magic Hercules -moduulin parissa?
Miksi työskentelen Magic Hercules -moduulin parissa?

Olen työskennellyt pitkään digitaalisten LEDien, kuten WS2812, WS2815 tai SK6812, kanssa, joita yleensä kutsun Magic LEDiksi.

Testasin monia nauhoja, renkaita ja näyttöjä (jopa omiani) Magic -LED -pohjaisten (jopa RGBW -tyyppisten) perusteella. Käytin Arduinoa, Nucleoa (STM: llä), Raspberry Pi: tä ja omia levyjä AVR -mikrokontrollereilla.

Alusta riippumatta ohjelman kirjoittaminen taika-LEDien ohjaamiseen on vaikeaa (NZR-protokollaohjelmiston tarpeen vuoksi), ellet käytä valmiita kirjastoja, jotka helpottavat, mutta eivät silti ole täysin optimaalisia koodin käytön kannalta, keskeytä vastauksia tai muistin käyttöä ja toimivat vain tietyillä alustoilla (niiden siirtäminen esimerkiksi Raspberry -laitteesta AVR -mikrokontrollereihin on mahdotonta).

Koska käytän usein erilaisia alustoja, tarvitsin ohjelmakoodin olevan mahdollisimman yhteensopiva Arduinon, Raspberry Pi: n, ARM / STM (Nucleo): n tai AVR: n kanssa - etenkin valotehosteiden osalta.

Olen työskennellyt youtube -kanavan parissa pitkään ja olen valmistellut useamman kuin yhden oppaan digitaalisten diodien ohjelmoimisesta C -kielellä AVR -mikrokontrollereille (mutta toistaiseksi vain puolaksi). Olen usein yhteydessä aloittelijoihin, jotka kamppailevat taika -LEDien ohjelmoinnin kanssa. Tietysti jotkut valitsevat alustasta riippuen valmiita kirjastoja kertaluonteisiin projekteihinsa. Monet ihmiset kuitenkin etsivät muita ratkaisuja tai yrittävät oppia ohjelmoinnin salaisuuksia, ja minä olen yksi heistä.

Vaihe 2: SPI -NZR -muunnos

SPI muunnos NZR: ksi
SPI muunnos NZR: ksi

Päätin valmistaa moduulin, joka tekee likaisen työn käyttäjälle NZR -protokollan avulla. Moduulia, joka toimii SPI -NZR -muuntimena ja aivan kuten SPI, voidaan käyttää millä tahansa alustalla helposti. Yllä oleva kuvakaappaus näyttää SPI -signaalien muuntamisen NZR -protokollaksi Magic Hercules -moduulissa.

Vaihe 3: Magic Hercules -moduuli digitaalisena LED -nauhatesterinä

Magic Hercules -moduuli digitaalisena LED -nauhatesterinä
Magic Hercules -moduuli digitaalisena LED -nauhatesterinä

Kun digitaalisia LED -valoja kytketään eri järjestelmiin, on muistettava eri mikro -ohjaimien sopiva jännitetoleranssi. Useimmat ARM -mikro -ohjaimien I / O -nastat toimivat +3,3 V -standardissa, kun taas AVR -mikrokontrollerit toimivat TTL -standardissa. Tämän vuoksi Magic Hercules -moduulin sisääntulonapien toleranssi on +3,3 V, joten ne voidaan liittää turvallisesti esim. Raspberry P -laitteeseen tai mihin tahansa ARM -pohjaiseen +3,3 V.

Kuten aiemmin mainitsin, työskentelen usein erityyppisten digitaalisten LED -valojen kanssa. Valmistajasta riippuen LEDien yksittäiset värit voivat olla eri asennoissa, esim. RGB, BGR, GRB, RGBW, GRBW jne. Ei ole harvinaista, että valmistajan dokumentaatiossa mainitaan RGB -sekvenssi, mutta se näyttää todella erilaiselta. Olen varustanut Hercules -moduulin värisekvenssitestillä, jotta ei ole ongelmaa selvittää nopeasti, kuinka ohjelma kirjoitetaan oikeaan värijärjestykseen. Useiden testerin lisätoimintojen avulla voit nopeasti tarkistaa, toimiiko digitaalinen LED -nauha ollenkaan, toimivatko kaikki värit kussakin LED -valossa (jopa 1024 LEDiä!) Toimivatko oikein (ei kuolleita pikseleitä). Ja kaikki tämä ilman mikrokontrollerin kytkemistä ja minkään ohjelman kirjoittamista.

Vaihe 4: Magic Hercules -moduuli - uusi yleisratkaisu digitaalisille LED -valoille

Magic Hercules -moduuli - uusi universaali ratkaisu digitaalisiin LED -valoihin
Magic Hercules -moduuli - uusi universaali ratkaisu digitaalisiin LED -valoihin

En usko, että sellaista olisi vielä olemassa, ohjata digitaalisia LED -valoja käyttämällä yksinkertaista ja yleistä SPI -protokollaa, jota voidaan käyttää millä tahansa alustalla tai mikrokontrolleriperheellä.

Tietenkin on monia tapoja ohjata digitaalisia LED -valoja, jotkut ovat optimaalisia ja toiset vähemmän optimaalisia. Magic Hercules -moduuli on toinen vaihtoehto ja erittäin käytännöllinen minulle. Luulen, että joku voi pitää tästä epätavallisesta ratkaisusta. Aloitin äskettäin joukkorahoitusalustan - kickstarterin, jossa latasin laajemman kuvauksen Magic Hercules -moduulista useissa videoissa, mukaan lukien kuinka helppoa on työskennellä sen kanssa Arduinolla, Nucleolla (STM), Raspberry Pi: llä ja AVR: llä ja PIC: llä mikro -ohjaimet. Jos haluat tukea Magic Hercules -projektia, tutustu tähän:

My Magic Hercules -moduulihanke kickstarterilla

Valmistin ohjelman C -kielellä - yksinkertainen tähtiporttitehoste, joka perustuu taulukkotoimintoihin ja puskurin peräkkäiseen lähettämiseen pääsilmukassa. Magic Hercules -moduulin ansiosta pystyin helposti siirtämään lähdekoodin muille kielille ja alustoille - tarkista seuraavat vaiheet - lähdekoodit.

Vaihe 5: Magic Hercules -moduuli Atmega32: lla ja C: llä

Video, joka sisältää yksinkertaistetun kaavion, kytkentäesityksen ATB 1.05a: lla (AVR Atmega32), lähdekoodin (Eclipse C/C ++ IDE: ssä) ja lopullisen vaikutuksen tähtiporttivalon muodossa.

Linkki videoon youtubessa

Vaihe 6: Magic Hercules -moduuli Arduinolla ja Arduino C ++: lla

Video, joka sisältää yksinkertaistetun kaavion, liitäntäesityksen Arduino 2560 -kortilla, lähdekoodin Arduino IDE: ssä ja lopullisen vaikutuksen tähtiporttivalon muodossa.

Linkki videoon youtubessa

Vaihe 7: Magic Hercules -moduuli PIC: llä ja C: llä

Video, joka sisältää yksinkertaistetun kaavion, liitäntäesityksen ATB 1.05a -laitteessa PIC -suojauksella (PIC24FJ64GA004 piirilevyssä), lähdekoodin MPLAB -muodossa ja lopullisen tehosteen tähtiportin valotehosteen muodossa.

Linkki videoon youtubessa

Vaihe 8: Magic Hercules -moduuli Raspberry Pi: n ja Pythonin kanssa

Video, joka sisältää yksinkertaistetun kaavion, yhteyden esityksen Raspberry Pi 4 -laitteesta, lähdekoodin Pythonissa ja lopullisen vaikutuksen tähtiportin valotehosteen muodossa.

Linkki videoon youtubessa

Vaihe 9: Magic Hercules -moduuli, jossa ARM - STM32 Nucleo ja C

Video, joka sisältää yksinkertaistetun kaavion, liitäntäesityksen STM32 Nucleo -kortilla, lähdekoodin STM32CubeIDE -ohjelmassa ja lopullisen vaikutuksen tähtiporttivalon muodossa.

Linkki videoon youtubessa

Vaihe 10:

Kuva
Kuva

Mielestäni MH voi olla erittäin aloittelijaystävällinen moduuli käyttämästään alustasta ja kielestä riippumatta. Riittää, että tiedetään tunnettu SPI-protokolla, ja mahdollisuus alkaa tarkistaa, toimiiko digitaalinen LED-nauha ollenkaan ja mikä värijärjestys sillä on, on vain plussaa.

Jos haluat osallistua projektiini kickstarterilla - tarkista tämä linkki:

My Magic Hercules -moduulihanke kickstarterilla

Suositeltava: