Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Forstå systemet
- Trin 2: Skrivning af WebSocketServer
- Trin 3: Opret en protokol for serielle kommandoer
Video: Lys mig op! en LED-stripkontrol i realtid på tværs af platforme: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Lys mig op! er et system, jeg opfandt til styring af en RGB LED-strip i realtid, samtidig med at omkostningerne blev holdt lave og ydeevnen høj.
Serveren er skrevet i Node.js og derfor på tværs af platforme.
I mit eksempel bruger jeg en Raspberry Pi 3B til langtidsbrug, men min Windows -pc til demonstration og fejlfinding.
4pin-strimlen styres af et Arduino Nano-typeskilt, der udfører kommandoer i serie for at sende PWM-signaler til tre transistorer, der skifter +12VDC til den tilsvarende farvepind på strimlen.
LightMeUp! systemet kontrollerer også sin egen temperatur, når den først er over 60 ° C (140 ° F), tænder den to 12VDC computerblæsere indbygget i kabinettet for at afkøle sig selv for at forbedre kredsløbets levetid.
En anden funktion i LightMeUp! er at belyse en Bombay-Sapphire Gin-flaske, men det er ikke fokus for denne Instructable.
God fornøjelse med at læse:)
Forbrugsvarer
- Arduino Nano (eller enhver anden ATmega328 / højere-baseret mikrokontroller)
- Raspberry Pi 3 Model B med Node.js installeret (eller enhver anden computer)
- 12V RGB 4-benet LED-strimmel
- 12V 3A Strømforsyning
- Jumperkabler (han-han, hvis du selvfølgelig bruger et brødbræt)
- Brødbræt (valgfrit)
- 2 12V DC computerblæsere (valgfrit)
- 3x TIP120 Darlington Transistor m/ heatsink (4 hvis du vil inkludere køleblæsere)
- 2 status -LED'er røde og grønne (valgfrit)
- 6, 7K NTC temperaturbaseret modstand + 6, 7K modstand (valgfri)
- USB-Mini til USB 2.0 datakabel (for at Raspberry Pi kan kommunikere med Arduino)
- Ekstern strømforsynet USB-hub (valgfri, kun til Raspberry Pi)
Trin 1: Forstå systemet
Lys mig op! er baseret på meget enkle elektroniske kredsløb.
Vi har en form for computer (i dette tilfælde en Raspberry Pi), der kommunikerer serielt med vores mikrokontrolkort. Dette kort udfører derefter specifikke serielle kommandoer som "RGB (255, 255, 255)", som ville gøre vores LED-strip hvid.
Når vi har fået vores tre værdier for RØD, GRØN og BLÅ, der er nødvendige for vores 4-pins LED-strip, udfører vi analogWrite (pin, værdi) for at forsyne vores TIP120-transistor med et PWM-signal.
Dette PWM -signal gør det muligt for transistoren at skifte den tilsvarende farvepind, den er kollektor tilsluttet til jorden, i en bestemt grad eller helt til / fra. Ja, mange "to" s:)
Ved at blande de tre transistors output til LED -stripsens farvepinde kan vi stort set skabe enhver farve, vi ønsker!
Nu med denne forståelse kan vi angribe den største udfordring ved dette projekt, websocketserveren og dens serielle forbindelse til vores Arduino.
Trin 2: Skrivning af WebSocketServer
Nu skal vi oprette en bestemt slags webserver, der giver os mulighed for at overføre data frem og tilbage uden at opdatere en gang for at opnå en realtime LED -stripkontrol.
Bemærk, at kommunikation i realtid naturligvis er umulig, der vil altid være mindst et par milisekunder forsinkelse involveret, men for det menneskelige øje er det betydeligt som realtid.
Dette kan let opnås ved at bruge socket.io -biblioteket, hvis du bruger Node.js som jeg gjorde. Men du kan selvfølgelig altid holde dig til dit foretrukne programmeringssprog.
Vi har at gøre med en websocket-forbindelse, som giver os mulighed for at overføre inputdata, f.eks. Hvilken farve du vil indstille LED-stripen til, eller statusdata som "LED ON" tovejs uden at blive opdateret.
En anden meget vigtig funktion, serveren skal have, men ikke behøver, er et simpelt login. Jeg baserede mit login på et simpelt felt for brugernavn og adgangskode. Disse oplysninger sendes derefter til serverens /login-rute, som derefter sammenligner brugernavnet med en liste over brugere (.txt-fil) og den tilhørende adgangskode i sin SHA256-krypterede form. Du vil ikke have, at dine naboer skal rode med din LED -strip, mens du nyder din yndlingsdrik på dit mest behagelige sæde, ikke?
Nu kommer serverens hjerte, den serielle kommunikation.
Din server skal være i stand til at kommunikere serielt - i Node.js kan dette opnås ved at åbne en port ved hjælp af "serialport" -biblioteket. Men først bestem navnet på din arduino -port på din computer, der er vært for serveren. Afhængigt af dit operativsystem vil portene have forskellige navne, dvs. i Windows hedder disse porte "COMx" -porte, mens de på linux hedder "/dev/ttyUSBx", hvor x er nummeret på USB -porten.
Trin 3: Opret en protokol for serielle kommandoer
På billedet ovenfor ser du den faktiske Arduino IDE -kode, der er ansvarlig for RGB -kontrollen. Målet med dette trin er at få din selvskrevne server og Arduino-bord til at tale med succes.
Når du har åbnet din serielle port med succes, skal du kunne sende kommandoer til tavlen, der tager sig af dine ønsker. For eksempel, hvis vi trækker en finger over farvevælgeren på HTML -websiden, skal RGB -koden sendes til serveren, som derefter sender den til din Arduino, så den behandler de indstillede værdier.
Jeg brugte jscolor, de har en fantastisk implementering af et farveplukkelement af høj kvalitet, som ejer en begivenhed kaldet "onFineChange", som lader dine procesdata fra farvevælgeren, så snart dens værdier ændres.
Anbefalede:
MicroPython-program: Opdater data om coronavirus (COVID-19) i realtid: 10 trin (med billeder)
MicroPython-program: Opdater data om Coronavirus-sygdom (COVID-19) i realtid: I de sidste par uger er antallet af bekræftede tilfælde af coronavirus-sygdom (COVID 19) på verdensplan overskredet 100.000, og verdenssundhedsorganisationen (WHO) har erklæret nyt coronavirus lungebetændelse udbrud for at være en global pandemi. Jeg var meget
Trafiklys på tværs af vejen: 3 trin
Trafiklys på krydsvejen: https://create.arduino.cc/editor/sharonchen/4c96c2..formål at lade børnene lære at krydse vejen! -Imiteret lyskryds på kryds, der er 4 lyskryds på hver sektion og to par af de modsatte trafiklys lyser
Lys mig op !: 20 trin (med billeder)
Light Me Up !: projektgruppemedlemmer (Hyewon Shin, Eunjeong Ko, Junsung Yi) Hvad hvis du kunne røre og designe lyset? Hvordan ville det føles, hvis du havde et smukt lysmønster, som du selv designede med en interessant animation? Lys mig op, vil være et i
Musikreaktivt lys -- Sådan laves superenkelt musikreaktivt lys til at gøre skrivebordet fantastisk: 5 trin (med billeder)
Music Reactive Light || Sådan laver du Super Simple Music Reactive Light for Making Desktop Awsome .: Hey whats up guys, I dag vil vi bygge et meget interessant projekt. I dag bygger vi musik reaktivt lys. LED'en ændrer dens lysstyrke iht. basen, der faktisk er lavfrekvent lydsignal. Det er meget enkelt at bygge.Vi vil
Dødens bold: eller hvordan jeg lærte at stoppe med at bekymre mig og elske Apple Pro -højttalere: 11 trin (med billeder)
Dødens bold: eller hvordan jeg lærte at stoppe med at bekymre mig og elske Apple Pro -højttalere: Jeg har altid sagt, at siden jeg bortskaffede den " beige æske " har Apple altid været førende inden for det industrielle designområde. Integrationen af form og funktion kan ikke berøres af nogen anden producent i nogen branche (Porsche kommer tæt på). Det er