Sisällysluettelo:

LightMeUp! a Reaaliaikainen ristialustainen LED-nauhaohjaus: 5 vaihetta (kuvilla)
LightMeUp! a Reaaliaikainen ristialustainen LED-nauhaohjaus: 5 vaihetta (kuvilla)

Video: LightMeUp! a Reaaliaikainen ristialustainen LED-nauhaohjaus: 5 vaihetta (kuvilla)

Video: LightMeUp! a Reaaliaikainen ristialustainen LED-nauhaohjaus: 5 vaihetta (kuvilla)
Video: LazuLight - Light Me Up (Official Music Video)|NIJISANJI EN 2024, Heinäkuu
Anonim
LightMeUp! reaaliaikainen ristialustainen LED-nauhaohjaus
LightMeUp! reaaliaikainen ristialustainen LED-nauhaohjaus
LightMeUp! reaaliaikainen ristialustainen LED-nauhaohjaus
LightMeUp! reaaliaikainen ristialustainen LED-nauhaohjaus
LightMeUp! reaaliaikainen ristialustainen LED-nauhaohjaus
LightMeUp! reaaliaikainen ristialustainen LED-nauhaohjaus

LightMeUp! on järjestelmä, jonka keksin RGB-LED-nauhan ohjaamiseen reaaliajassa pitäen kustannukset alhaisina ja suorituskyvyn korkeana.

Palvelin on kirjoitettu Node.js-muodossa ja sen vuoksi cross-platformable.

Esimerkissäni käytän Raspberry Pi 3B: tä pitkäaikaiseen käyttöön, mutta Windows -tietokonettani esittelyn ja virheenkorjauksen vuoksi.

4-napaista nauhaa ohjaa Arduino Nano -tyyppikortti, joka suorittaa sarjaan annetut komennot lähettää PWM-signaaleja kolmelle transistorille, jotka kytkevät +12 VDC: n nauhan vastaavaan värinastaan.

LightMeUp! järjestelmä tarkistaa myös oman lämpötilan, kun se on yli 60 ° C (140 ° F), se käynnistää kaksi koteloon rakennettua 12 VDC: n tietokoneen tuuletinta jäähtyäkseen ja pidentää piirin käyttöikää.

Toinen LightMeUp -ominaisuus! on valaista Bombay-Sapphire Gin -pullo, mutta se ei ole tämän ohjeen painopiste.

Nauti lukemisesta:)

Tarvikkeet

  • Arduino Nano (tai mikä tahansa muu ATmega328 / korkeampi mikro-ohjain)
  • Raspberry Pi 3 Model B, johon on asennettu Node.js (tai mikä tahansa muu tietokone)
  • 12 V RGB 4-nastainen LED-nauha
  • 12V 3A virtalähde
  • Hyppyjohdot (uros-uros, jos käytät leipälautaa, tietysti)
  • Leipälauta (valinnainen)
  • 2 12 V DC -tietokoneen tuuletinta (valinnainen)
  • 3x TIP120 Darlington -transistori jäähdytyselementillä (4, jos haluat sisällyttää jäähdytyspuhaltimet)
  • 2 tilan LEDiä punainen ja vihreä (valinnainen)
  • 6, 7K NTC lämpötilapohjainen vastus + 6,7K vastus (valinnainen)
  • USB-Mini-USB 2.0 -kaapeli (Raspberry Pi kommunikoi Arduinon kanssa)
  • Ulkoisesti toimiva USB-keskitin (valinnainen, vain Raspberry Pi)

Vaihe 1: Ymmärrä järjestelmä

Ymmärrä järjestelmä
Ymmärrä järjestelmä

LightMeUp! perustuu hyvin yksinkertaiseen elektroniseen piiriin.

Meillä on jonkinlainen tietokone (tässä tapauksessa Raspberry Pi), joka kommunikoi sarjaan mikrokorttimme kanssa. Tämä kortti suorittaa sitten tiettyjä sarjakomentoja, kuten "RGB (255, 255, 255)", jotka muuttavat LED-nauhan valkoiseksi.

Kun olemme saaneet kolme arvoa PUNAINEN, VIHREÄ ja SININEN, jotka ovat välttämättömiä 4-nastaiselle LED-nauhallemme, suoritamme analogWrite (nasta, arvo) voidaksemme toimittaa TIP120-transistorimme PWM-signaalilla.

Tämän PWM -signaalin avulla transistori voi vaihtaa vastaavan värisen nastan, johon keräilijä on kytketty maahan, tietyssä määrin tai kokonaan päälle / pois. Kyllä, paljon "to" -merkkejä:)

Sekoittamalla kolme transistorilähtöä LED -nauhojen värinappeihin voimme luoda pohjimmiltaan haluamamme värin!

Nyt tämän ymmärryksen avulla voimme hyökätä tämän projektin suurimpaan haasteeseen, websocketserveriin ja sen sarjayhteyteen Arduinoomme.

Vaihe 2: WebSocketServerin kirjoittaminen

WebSocketServerin kirjoittaminen
WebSocketServerin kirjoittaminen

Nyt meidän on luotava erityinen verkkopalvelin, jonka avulla voimme siirtää tietoja edestakaisin ilman päivittämistä, jotta voimme saavuttaa reaaliaikaisen LED -nauhaohjauksen.

Huomaa, että reaaliaikainen kommunikointi on tietysti mahdotonta, sillä on aina vähintään muutaman millisekunnin viive, mutta ihmissilmälle se on huomattavaa reaaliajassa.

Tämä voidaan helposti saavuttaa käyttämällä socket.io -kirjastoa, jos käytät Node.js -kirjainta kuten minä. Tietysti voit aina pitää kiinni suosikkiohjelmointikielestäsi.

Käsittelemme verkkoliitäntäyhteyttä, jonka avulla voimme siirtää syöttötietoja, kuten minkä värin haluat asettaa LED-nauhan, tai tilatietoja, kuten "LED ON", kaksisuuntaisesti ilman päivitystä.

Toinen erittäin tärkeä ominaisuus, jonka palvelimella pitäisi olla, mutta ei tarvitse, on yksinkertainen kirjautuminen. Perustin kirjautumiseni pois yksinkertaisesta käyttäjätunnus- ja salasanakentästä. Nämä tiedot lähetetään sitten palvelimen /kirjautumisreitille, joka sitten vertaa käyttäjätunnusta käyttäjäluetteloon (.txt-tiedosto) ja sitä vastaavaan salasanaan SHA256-salatussa muodossa. Et halua naapureidesi sekoittavan LED -nauhaasi, kun nautit suosikkijuomastasi mukavimmalla istuimellasi, eikö?

Nyt tulee palvelimen sydän, sarjaliikenne.

Palvelimesi on voitava kommunikoida sarjassa - Node.js -sivustossa tämä voidaan saavuttaa avaamalla portti "serialport" -kirjaston avulla. Mutta ensin määritä arduino -porttisi nimi tietokoneessa, joka isännöi palvelinta. Käyttöjärjestelmästä riippuen porteilla on eri nimet, esim. Windowsissa nämä portit on nimetty "COMx" -portteiksi, kun taas linuxissa niiden nimi on "/dev/ttyUSBx", missä x on USB -portin numero.

Vaihe 3: Määritä sarjakomentojen protokolla

Määritä sarjakomentojen protokolla
Määritä sarjakomentojen protokolla

Yllä olevassa kuvassa näet todellisen Arduino IDE -koodin, joka vastaa RGB -ohjauksesta. Tämän vaiheen tavoitteena on saada itse kirjoittamasi palvelin ja Arduino-kortti puhumaan keskenään onnistuneesti.

Kun olet avannut sarjaporttisi onnistuneesti, sinun on voitava lähettää komentoja taululle, joka huolehtii toiveistasi. Jos esimerkiksi vedämme sormen HTML -verkkosivun värinvalitsimen yläpuolelle, RGB -koodi lähetetään palvelimelle, joka lähettää sen sitten Arduino -laitteellesi, jotta se käsittelee asetetut arvot.

Käytin jscoloria, heillä on loistava toteutus korkealaatuisesta värinvalintaelementistä, joka omistaa "onFineChange" -tapahtuman, jonka avulla värinvalitsimen prosessitiedot saadaan heti, kun niiden arvot muuttuvat.

Suositeltava: