Sadržaj:
- Supplies
- Korak 1: Shvatite sistem
- Korak 2: Pisanje WebSocketServera
- Korak 3: Uspostavite protokol serijskih naredbi
Video: LightMeUp! kontrola LED traka s unakrsnom platformom u stvarnom vremenu: 5 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
LightMeUp! je sistem koji sam izumio za kontrolu RGB LED trake u stvarnom vremenu, uz održavanje niske cijene i visokih performansi.
Poslužitelj je napisan na Node.js i stoga se može cross-platformatirati.
U mom primjeru, ja koristim Raspberry Pi 3B za dugotrajnu upotrebu, ali moj Windows PC radi demonstracije i otklanjanja grešaka.
4pin-trakom upravlja Arduino Nano tipska ploča koja izvršava serijski zadane naredbe za slanje PWM signala na tri tranzistora prebacujući +12VDC u odgovarajuću bojnu iglu trake.
LightMeUp! sistem također provjerava vlastitu temperaturu, nakon što je iznad 60 ° C (140 ° F), uključuje dva računarska ventilatora od 12VDC ugrađena u kućište, kako bi se ohladila kako bi poboljšala vijek trajanja kruga.
Još jedna karakteristika LightMeUp -a! treba osvijetliti bocu bombajsko-safirnog džina, ali to nije fokus ovog uputstva.
Uživajte u čitanju:)
Supplies
- Arduino Nano (ili bilo koji drugi ATmega328 / viši mikrokontroler)
- Raspberry Pi 3 model B sa instaliranim Node.js (ili bilo kojim drugim računarom)
- 12V RGB 4-pinska LED traka
- 12V 3A Napajanje
- Premosni kablovi (muško-muški ako koristite ploču, naravno)
- Oglasna ploča (nije obavezno)
- 2 12V DC ventilatora za računare (opcionalno)
- 3x TIP120 Darlington tranzistor sa hladnjakom (4 ako želite uključiti ventilatore za hlađenje)
- 2 LED diode statusa crvena i zelena (opcionalno)
- 6, 7K NTC otpornik temeljen na temperaturi + 6,7K otpornik (opcionalno)
- USB-Mini na USB 2.0 podatkovni kabel (da Raspberry Pi komunicira s Arduinom)
- USB-čvorište sa vanjskim napajanjem (opcionalno, samo za Raspberry Pi)
Korak 1: Shvatite sistem
LightMeUp! temelji se na vrlo jednostavnim elektroničkim kolima.
Imamo neku vrstu računara (u ovom slučaju Raspberry Pi) koji serijski komunicira s našom pločom mikrokontrolera. Ova ploča tada izvršava posebne serijske naredbe poput "RGB (255, 255, 255)" koje bi našu LED traku postale bijele.
Nakon što dobijemo tri vrijednosti za CRVENU, ZELENU i PLAVU potrebnu za našu 4-polnu LED traku, izvršavamo analogWrite (pin, vrijednost) kako bismo opskrbili naš TIP120 tranzistor PWM signalom.
Ovaj PWM signal omogućava tranzistoru da prebaci odgovarajuću pin boje na koju je kolektor spojen na masu, u određenom stepenu ili potpuno uključivanje / isključivanje. Da, puno "za":)
Miješanjem tri izlaza tranzistora s pinovima u boji LED traka možemo stvoriti u osnovi bilo koju boju koju želimo!
S ovim razumijevanjem možemo napasti najveći izazov ovog projekta, websocketserver i njegovu serijsku vezu s našim Arduinom.
Korak 2: Pisanje WebSocketServera
Sada moramo stvoriti određenu vrstu web poslužitelja koji nam omogućuje prijenos podataka naprijed -natrag bez osvježavanja jednom kako bismo postigli kontrolu LED trake u stvarnom vremenu.
Imajte na umu da je komunikacija u stvarnom vremenu naravno nemoguća, uvijek će doći do kašnjenja od barem nekoliko milisekundi, ali za ljudsko oko to je značajno kao u stvarnom vremenu.
To se lako može postići korištenjem socket.io biblioteke ako koristite Node.js kao i ja. Naravno, uvijek se možete držati svog omiljenog programskog jezika.
Bavit ćemo se websocket vezom koja nam omogućava dvosmjerni prijenos ulaznih podataka, na koju boju želite postaviti LED traku, ili podatke o statusu poput "LED ON" bez osvježavanja.
Još jedna vrlo važna karakteristika koju server treba imati, ali i ne mora, je jednostavno prijavljivanje. Prijavu sam zasnovao na jednostavnom polju za korisničko ime i lozinku. Ti se podaci zatim objavljuju na /login ruti poslužitelja, koja zatim uspoređuje korisničko ime s popisom korisnika (.txt datoteka) i odgovarajućom lozinkom u svom SHA256 šifriranom obliku. Ne želite da se vaši susjedi petljaju sa vašom LED trakom dok uživate u omiljenom piću na svom najudobnijem sjedalu, zar ne?
Sada dolazi srce servera, serijska komunikacija.
Vaš poslužitelj mora imati mogućnost serijske komunikacije - u Node.js to se može postići otvaranjem porta pomoću biblioteke "serialport". Ali prvo odredite naziv svog arduino porta na računaru na kojem se nalazi server. Ovisno o vašem operativnom sistemu, portovi će imati različita imena, npr. na Windowsima se ti portovi nazivaju "COMx" portovi, dok se na linux -u zovu "/dev/ttyUSBx", gdje je x broj USB porta.
Korak 3: Uspostavite protokol serijskih naredbi
Na gornjoj slici vidite stvarni Arduino IDE kod odgovoran za RGB kontrolu. Cilj ovog koraka je da vaš server i Arduino ploča sa vlastitim pismom uspješno razgovaraju jedni s drugima.
Nakon što ste uspješno otvorili serijski port, morate biti u mogućnosti slati naredbe na ploču koja vodi računa o vašim željama. Na primjer, ako povučemo prst iznad birača boja na HTML web stranici, RGB kôd treba poslati poslužitelju koji ga zatim šalje vašem Arduinu kako bi obradio postavljene vrijednosti.
Koristio sam jscolor, oni imaju odličnu implementaciju visokokvalitetnog elementa za odabir boje, koji posjeduje događaj pod nazivom "onFineChange" koji dozvoljava vašim procesnim podacima iz birača boja čim se promijene vrijednosti.
Preporučuje se:
Mjerač nivoa vode u bunaru u stvarnom vremenu: 6 koraka (sa slikama)
Mjerač nivoa bunara u stvarnom vremenu: Ova uputstva opisuju kako izgraditi jeftino mjerač nivoa vode u stvarnom vremenu za upotrebu u iskopanim bunarima. Mjerač nivoa vode je dizajniran da visi unutar iskopanog bunara, mjeri nivo vode jednom dnevno i šalje podatke putem WiFi -a ili mobilne veze
Mjerač temperature vode, vodljivosti i nivoa vode u bunaru u stvarnom vremenu: 6 koraka (sa slikama)
Mjerač temperature vode, vodljivosti i nivoa vode u bušotini u stvarnom vremenu: Ova uputstva opisuju kako izgraditi jeftin mjerač vode u stvarnom vremenu za praćenje temperature, električne provodljivosti (EC) i nivoa vode u iskopanim bunarima. Mjerač je dizajniran da visi u iskopanom bunaru, mjeri temperaturu vode, EC i
Program MicroPython: Ažurirajte podatke o koronavirusnoj bolesti (COVID-19) u stvarnom vremenu: 10 koraka (sa slikama)
Program MicroPython: Ažuriranje podataka o koronavirusnoj bolesti (COVID-19) u stvarnom vremenu: U posljednjih nekoliko tjedana broj potvrđenih slučajeva koronavirusa (COVID 19) u svijetu premašio je 100.000, a Svjetska zdravstvena organizacija (WHO) proglasila je Nova epidemija koronavirusne upale pluća postat će globalna pandemija. Bio sam veoma
SCARA Robot: Učenje o naprednoj i obrnutoj kinematici !!! (Plot Twist Naučite kako napraviti interfejs u stvarnom vremenu u ARDUINO -u KORIŠTENJEM OBRADE !!!!): 5 koraka (sa slikama)
SCARA Robot: Učenje o naprednoj i obrnutoj kinematici !!! (Plot Twist Naučite kako napraviti interfejs u stvarnom vremenu u ARDUINU KORIŠTENJEM PROCESINGA !!!!): SCARA robot je vrlo popularna mašina u svijetu industrije. Naziv označava i selektivnu usklađenu robot -montažnu ruku ili zglobnu robotsku ruku selektivnu kompatibilnost. To je u osnovi robot sa tri stepena slobode, prva dva displa
Prepoznavanje lica u stvarnom vremenu na RaspberryPi-4: 6 koraka (sa slikama)
Detekcija lica u stvarnom vremenu na RaspberryPi-4: U ovom Instructableu ćemo izvršiti detekciju lica u stvarnom vremenu na Raspberry Pi 4 sa Shunya O/S koristeći Shunyaface Library. Prateći ovaj vodič možete postići brzinu kadrova otkrivanja 15-17 na RaspberryPi-4