Sisällysluettelo:

DIY -ohjaus RGB -LED -väri Bluetoothin kautta: 5 vaihetta
DIY -ohjaus RGB -LED -väri Bluetoothin kautta: 5 vaihetta

Video: DIY -ohjaus RGB -LED -väri Bluetoothin kautta: 5 vaihetta

Video: DIY -ohjaus RGB -LED -väri Bluetoothin kautta: 5 vaihetta
Video: Вместо Ауди А8/Audi A8? Самый мощный дизельный V10 Фольксваген Фаэтон / Фэатон / Volkswagen Phaeton 2024, Marraskuu
Anonim
DIY -ohjaus RGB -LED -väri Bluetoothin kautta
DIY -ohjaus RGB -LED -väri Bluetoothin kautta

Älylamppujen suosio on kasvanut viime aikoina, ja niistä on jatkuvasti muodostumassa keskeinen osa älykkään kodin työkalupakkia. Älykkäät lamput antavat käyttäjälle mahdollisuuden hallita valoaan käyttäjän älypuhelimessa olevan erikoissovelluksen kautta; lamppu voidaan kytkeä päälle ja pois ja väri voidaan muuttaa sovellusliittymästä. Tässä projektissa rakensimme älykkään polttimo -ohjaimen, jota voidaan ohjata manuaalisella painikkeella tai mobiilisovelluksella Bluetoothin kautta. Jotta voisimme lisätä hohtoa tähän projektiin, olemme lisänneet joitain ominaisuuksia, joiden avulla käyttäjä voi valita valaistusvärin sovellusliittymän väriluettelosta. Se voi myös aktivoida "automaattisen sekoituksen", joka luo värejä ja muuttaa valaistusta puolen sekunnin välein. Käyttäjä voi luoda oman värisekoituksensa PWM -ominaisuuden avulla, jota voidaan käyttää myös himmentimenä kolmelle perusvärille (punainen, vihreä, sininen). Lisäsimme piiriin myös ulkoisia painikkeita, jotta käyttäjä voi vaihtaa manuaaliseen tilaan ja muuttaa valon väriä ulkoisesta painikkeesta.

Tämä ohjekirja koostuu kahdesta osasta; GreenPAK ™ -suunnittelu ja Android -sovellusten suunnittelu. GreenPAK -suunnittelu perustuu UART -rajapinnan käyttöön viestinnässä. UART on valittu, koska sitä tukevat useimmat Bluetooth -moduulit ja useimmat muut oheislaitteet, kuten WIFI -moduulit. Näin ollen GreenPAK -mallia voidaan käyttää monissa yhteystyypeissä.

Tämän projektin rakentamiseen käytämme SLG46620 CMIC: tä, Bluetooth -moduulia ja RGB -LEDiä. GreenPAK IC tulee olemaan tämän hankkeen ohjausydin; se vastaanottaa tietoja Bluetooth -moduulista ja/tai ulkoisista painikkeista ja aloittaa sitten tarvittavat toimenpiteet oikean valaistuksen näyttämiseksi. Se myös tuottaa PWM -signaalin ja lähettää sen LEDille. Alla oleva kuva 1 esittää lohkokaaviota.

Tässä projektissa käytetty GreenPAK -laite sisältää SPI -yhteysrajapinnan, PWM -lohkot, FSM: n ja paljon muita hyödyllisiä lisälohkoja yhdessä IC: ssä. Sille on ominaista myös sen pieni koko ja alhainen energiankulutus. Tämä mahdollistaa valmistajien rakentaa pienen käytännön piirin yhdellä IC: llä, jolloin tuotantokustannukset minimoidaan vastaaviin järjestelmiin verrattuna.

Tässä projektissa ohjaamme yhtä RGB -LEDiä. Jotta projekti olisi kaupallisesti kannattava, järjestelmän olisi todennäköisesti lisättävä kirkkaustasoa liittämällä useita LED -valoja rinnakkain ja käyttämällä asianmukaisia transistoreita. virtapiiri on myös otettava huomioon.

Voit käydä läpi kaikki vaiheet ymmärtääksesi, miten GreenPAK -siru on ohjelmoitu ohjaamaan RGB -LED -väriä Bluetoothin kautta. Jos kuitenkin haluat vain ohjelmoida IC: n helposti ymmärtämättä kaikkia sisäpiirejä, lataa GreenPAK -ohjelmisto nähdäksesi jo valmistuneen GreenPAK -suunnittelutiedoston. Liitä GreenPAK -kehityssarja tietokoneeseesi ja napsauta ohjelmaa luodaksesi mukautetun IC: n ohjaamaan RGB -LED -väriä Bluetoothin kautta.

GreenPAK -rakenne koostuu UART -vastaanottimesta, PWM -yksiköstä ja alla kuvatuissa vaiheissa kuvatusta ohjausyksiköstä.

Vaihe 1: UART -vastaanotin

UART -vastaanotin
UART -vastaanotin

Ensinnäkin meidän on asennettava Bluetooth -moduuli. Useimmat Bluetooth -IC: t tukevat UART -yhteyskäytäntöä. UART tarkoittaa yleistä asynkronista vastaanotinta / lähetintä. UART voi muuntaa tietoja edestakaisin rinnakkais- ja sarjamuotojen välillä. Se sisältää sarja -rinnakkaisvastaanottimen ja rinnakkais -sarja -muuntimen, jotka molemmat kellotetaan erikseen.

Bluetooth -moduulissa vastaanotetut tiedot lähetetään GreenPAK -laitteeseemme. Pin10: n valmiustila on KORKEA. Jokainen lähetetty merkki alkaa loogisella LOW -aloitusbitillä, jota seuraa konfiguroitava määrä databittejä ja yksi tai useampi looginen HIGH -pysäytysbitti.

UART -lähetin lähettää 1 START -bitin, 8 databittiä ja yhden STOP -bitin. Yleensä UART Bluetooth -moduulin siirtonopeus on oletusarvoisesti 9600. Lähetämme datatavun Bluetooth -IC: ltä GreenPAK ™ SLG46620: n SPI -lohkoon.

Koska GreenPAK SPI -lohkossa ei ole START- tai STOP -bittiohjausta, käytämme näitä bittejä SPI -kellosignaalin (SCLK) ottamiseen käyttöön ja poistamiseksi käytöstä. Kun Pin10 laskee LOW -asentoon, tiedämme, että olemme saaneet START -bitin, joten käytämme PDLY -putoavan reunan ilmaisinta tiedonsiirron alkamisen tunnistamiseen. Tämä putoavan reunan ilmaisin kelloaa DFF0, mikä mahdollistaa SCLK -signaalin kelloamaan SPI -lohkon.

Siirtonopeutemme on 9600 bittiä sekunnissa, joten SCLK -jaksomme on oltava 1/9600 = 104 μs. Siksi asetimme OSC -taajuudeksi 2 MHz ja käytimme CNT0: ta taajuusjakajana.

2 MHz-1 = 0,5 μs

(104 μs / 0,5 μs) - 1 = 207

Siksi haluamme, että CNT0 -laskurin arvo on 207. Varmistaaksemme, ettemme menetä mitään tietoja, meidän on viivästytettävä SPI -kelloa puoli kellosykliä, jotta SPI -lohko kellotetaan oikeaan aikaan. Saavutimme tämän käyttämällä CNT6: ta, 2-bittistä LUT1: tä ja OSC-lohkon ulkoista kelloa. CNT6: n teho nousee korkealle vasta 52 μs DFF0: n kellon jälkeen, mikä on puolet 104 μs SCLK -jaksostamme. Kun CNT6 on korkea, 2-bittinen LUT1 AND -portti sallii 2 MHz: n OSC-signaalin siirtymisen EXT-liitäntään. CLK0 -tulo, jonka lähtö on kytketty CNT0: een.

Vaihe 2: PWM -yksikkö

PWM -yksikkö
PWM -yksikkö

PWM -signaali luodaan käyttämällä PWM0: ta ja siihen liittyvää kellopulssigeneraattoria (CNT8/DLY8). Koska pulssin leveys on käyttäjän hallittavissa, käytämme FSM0: ta (joka voidaan liittää PWM0: een) käyttäjätietojen laskemiseksi.

SLG46620: ssa 8-bittistä FSM1: tä voidaan käyttää PWM1: n ja PWM2: n kanssa. Bluetooth -moduulin on oltava kytkettynä, mikä tarkoittaa, että SPI -rinnakkaislähtöä on käytettävä. SPI -rinnakkaislähtöbittejä 0-7 sekoitetaan DCMP1: llä, DMCP2: lla ja LF OSC CLK: n OUT1: llä ja OUT0: lla. PWM0 saa lähtöään 16-bittisestä FSM0: sta. Muuttumattomana tämä aiheuttaa pulssin leveyden ylikuormituksen. Laskurin arvon rajoittamiseksi 8 bitillä lisätään toinen FSM; FSM1: tä käytetään osoittimena, kun laskuri saavuttaa joko 0 tai 255. FSM0: ta käytetään PWM -pulssin muodostamiseen. FSM0 ja FSM1 on synkronoitava. Koska molemmissa FSM -laitteissa on esiasetetut kellovaihtoehdot, CNT1: tä ja CNT3: ta käytetään välittäjinä välittämään CLK molemmille FSM: ille. Molemmat laskurit on asetettu samaan arvoon, joka on 25 tämän ohjeen kohdalla. Voimme muuttaa PWM -arvon muutosnopeutta muuttamalla näitä laskuriarvoja.

FSM: ien arvoa lisäävät ja pienentävät signaalit "+" ja "-", jotka ovat peräisin SPI-rinnakkaisulostulosta.

Vaihe 3: Ohjausyksikkö

Ohjausyksikkö
Ohjausyksikkö

Ohjausyksikössä vastaanotettu tavu viedään Bluetooth -moduulista SPI -rinnakkaislähtöön ja siirretään sitten siihen liittyviin toimintoihin. Aluksi PWM CS1- ja PWM CS2 -lähdöt tarkistetaan, onko PWM -kuvio aktivoitu vai ei. Jos se on aktivoitu, se määrittää, mikä kanava lähettää PWM: n LUT4: n, LUT6: n ja LUT7: n kautta.

LUT9, LUT11 ja LUT14 ovat vastuussa kahden muun LEDin tilan tarkistamisesta. LUT10, LUT12 ja LUT13 tarkistavat, onko manuaalinen painike aktivoitu vai ei. Jos manuaalinen tila on aktiivinen, RGB -lähdöt toimivat D0-, D1-, D2 -lähtötilojen mukaisesti, jotka vaihtuvat aina, kun väripainiketta painetaan. Se muuttuu nousevan reunan kanssa, joka tulee CNT9: stä, jota käytetään nousevan reunan poistona.

Nasta 20 on määritetty tuloksi ja sitä käytetään vaihtamaan manuaalisen ja Bluetooth -ohjauksen välillä.

Jos manuaalinen tila on poistettu käytöstä ja automaattinen sekoitustila on aktivoitu, väri muuttuu 500 ms: n välein, kun nouseva reuna tulee CNT7: stä. 4-bittistä LUT1: tä käytetään estämään '000' -tila D0 D1 D2: lle, koska tämä tila saa valon sammumaan automaattisen sekoitustilan aikana.

Jos manuaalinen tila, PWM -tila ja automaattinen sekoitustila eivät ole käytössä, punainen, vihreä ja sininen SPI -komento kulkevat nastoihin 12, 13 ja 14, jotka on määritetty ulostuloiksi ja yhdistetty ulkoiseen RGB -LED -valoon.

DFF1, DFF2 ja DFF3 käytetään 3-bittisen binäärilaskurin rakentamiseen. Laskurin arvo kasvaa CNT7 -pulsseilla, jotka kulkevat P14: n läpi automaattisessa sekoitustilassa, tai väripainikkeen (PIN3) signaaleista manuaalisessa tilassa.

Vaihe 4: Android -sovellus

Android -sovellus
Android -sovellus
Android -sovellus
Android -sovellus
Android -sovellus
Android -sovellus
Android -sovellus
Android -sovellus

Tässä osassa aiomme rakentaa Android -sovelluksen, joka valvoo ja näyttää käyttäjän ohjausvalinnat. Käyttöliittymä koostuu kahdesta osasta: ensimmäinen osa sisältää joukon painikkeita, joissa on ennalta määritellyt värit, joten kun mitä tahansa näistä painikkeista painetaan, vastaavanvärinen LED palaa. Toinen osa (MIX -neliö) luo käyttäjälle sekoitetun värin.

Ensimmäisessä osassa käyttäjä valitsee LED -nastan, jonka kautta PWM -signaalin halutaan kulkea. PWM -signaali voidaan siirtää vain yhdelle nastalle kerrallaan. Alempi luettelo ohjaa kahta muuta väriä loogisesti päälle/pois PWM -tilan aikana.

Automaattisen sekoittimen painike on vastuussa automaattisesta valonvaihtomallista, jossa valo vaihtuu puolen sekunnin välein. MIX -osio sisältää kaksi valintaruutuluetteloa, jotta käyttäjä voi päättää, mitkä kaksi väriä sekoitetaan keskenään.

Rakensimme sovelluksen MIT -sovellusten keksijän verkkosivuston avulla. Se on sivusto, joka mahdollistaa Android -sovellusten rakentamisen ilman aiempaa ohjelmistokokemusta graafisten ohjelmistolohkojen avulla.

Aluksi suunnittelimme graafisen käyttöliittymän lisäämällä joukon painikkeita, jotka vastaavat ennalta määritettyjen värien näyttämisestä, lisäsimme myös kaksi valintaruutuluetteloa, ja jokaisessa luettelossa on 3 elementtiä; jokainen elementti on piirretty erilliseen laatikkoonsa kuvan 5 mukaisesti.

Käyttöliittymän painikkeet on linkitetty ohjelmistokomentoihin: kaikki sovellukset, jotka sovellus lähettää Bluetoothin kautta, ovat tavumuotoja ja jokainen bitti vastaa tietystä toiminnosta. Taulukko 1 näyttää GreenPAK: lle lähetettyjen komentokehysten muodon.

Kolme ensimmäistä bittiä, B0, B1 ja B2, pitävät RGB -LEDien tilan suoraan ohjaustilassa ennalta määritettyjen värien painikkeilla. Kun napsautat mitä tahansa niistä, painikkeen vastaava arvo lähetetään taulukon 2 mukaisesti.

Biteillä B3 ja B4 on komento '+' ja '-', jotka vastaavat pulssin leveyden lisäämisestä ja pienentämisestä. Kun painiketta painetaan, bitin arvo on 1 ja kun painike vapautetaan, bitin arvo on 0.

B5- ja B6 -bitit ovat vastuussa PWM -signaalin kulkevan nastan (värin) valinnasta: näiden bittien värimerkinnät on esitetty taulukossa 3. Viimeinen bitti, B7, vastaa automaattisekoittimen aktivoinnista.

Kuviot 6 ja 7 esittävät painikkeiden linkittämisen ohjelmointilohkoihin, jotka vastaavat edellisten arvojen lähettämisestä.

Voit katsoa sovelluksen koko suunnittelun lataamalla liitetiedoston.aia projektitiedostoineen ja avaamalla sen pääsivustolla.

Alla oleva kuva 8 esittää ylätason piirikaaviota.

Vaihe 5: Tulokset

Ohjain testattiin onnistuneesti ja värisekoitus yhdessä muiden ominaisuuksien kanssa osoitettiin toimivan asianmukaisesti.

Johtopäätös

Tässä Instructable -ohjelmassa älykäs polttimo -piiri rakennettiin ohjattavaksi langattomasti Android -sovelluksella. Tässä projektissa käytetty GreenPAK CMIC auttoi myös lyhentämään ja upottamaan useita valonohjauksen olennaisia komponentteja yhdeksi pieneksi IC: ksi.

Suositeltava: