Sadržaj:
- Pribor
- Korak 1: Shvatite sustav
- 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 promjena: 2024-01-30 09:33
LightMeUp! je sustav koji sam izumio za kontrolu RGB LED trake u stvarnom vremenu, uz održavanje niske cijene i visokih performansi.
Poslužitelj je napisan u Node.js i stoga se može cross-platformatirati.
U mom primjeru koristim Raspberry Pi 3B za dugotrajnu upotrebu, ali svoje Windows računalo radi demonstracije i ispravljanja pogrešaka.
4-polna traka kontrolirana je tipskom pločom Arduino Nano, koja izvršava serijski zadane naredbe za slanje PWM signala na tri tranzistora prebacujući +12VDC u odgovarajuću bojnu iglu trake.
LightMeUp! sustav 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 značajka LightMeUpa! je osvijetliti bocu Bombay-Sapphire Gin, ali to nije fokus ovog Instructable-a.
Uživaj čitajući:)
Pribor
- Arduino Nano (ili bilo koji drugi mikrokontroler na bazi ATmega328 / više)
- Raspberry Pi 3 Model B s instaliranim Node.js (ili bilo kojim drugim računalom)
- 12V RGB 4-pinska LED traka
- 12V 3A Napajanje
- Kratki kabeli (muško-muški ako koristite ploču, naravno)
- Oglasna ploča (izborno)
- 2 12V DC ventilatora za računalo (opcionalno)
- 3x TIP120 Darlington tranzistor s 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)
- Podatkovni kabel USB-Mini na USB 2.0 (za komunikaciju Raspberry Pi s Arduinom)
- USB-čvorište sa vanjskim napajanjem (opcionalno, samo za Raspberry Pi)
Korak 1: Shvatite sustav
LightMeUp! temelji se na vrlo jednostavnim elektroničkim sklopovima.
Imamo neku vrstu računala (u ovom slučaju Raspberry Pi) koje 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 smo dobili 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ćuje tranzistoru da uključi odgovarajući pin boje na koji je kolektor spojen na masu, u određenom stupnju ili potpuno uključen / isključen. Da, puno "za":)
Miješanjem tri izlaza tranzistora na pinove 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 knjižnice 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ćuje prijenos dvosmjernih ulaznih podataka poput boje na koju želite postaviti LED traku ili podataka o statusu poput "LED ON" bez osvježavanja.
Još jedna vrlo važna značajka koju bi poslužitelj trebao imati, ali i ne mora, je jednostavna prijava. Svoju prijavu temeljio sam na jednostavnom polju za korisničko ime i zaporku. Ti se podaci zatim objavljuju na /login ruti poslužitelja, koji zatim uspoređuje korisničko ime s popisom korisnika (.txt datoteka) i odgovarajućom lozinkom u svom SHA256-šifriranom obliku. Ne želite da vam susjedi petljaju s LED trakom dok uživate u omiljenom piću na svom najudobnijem sjedalu, zar ne?
Sada dolazi srce poslužitelja, 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čunalu na kojem je poslužitelj. Ovisno o vašem operativnom sustavu, portovi će imati različita imena, npr. u sustavu Windows ti se portovi nazivaju "COMx" portovi, dok se u linuxu nazivaju "/dev/ttyUSBx", gdje je x broj USB priključka.
Korak 3: Uspostavite protokol serijskih naredbi
Na gornjoj slici vidite stvarni Arduino IDE kod odgovoran za RGB kontrolu. Cilj ovog koraka je postići da vaš vlastiti pisač poslužitelj i Arduino ploča uspješno razgovaraju jedni s drugima.
Nakon što ste uspješno otvorili serijski port, morate moći 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 izvrsnu implementaciju visokokvalitetnog elementa za odabir boje, koji posjeduje događaj pod nazivom "onFineChange" koji omogućuje vaše podatke o procesu iz alata za odabir boje čim se promijene vrijednosti.
Preporučeni:
Mjerač razine vode u bunaru u stvarnom vremenu: 6 koraka (sa slikama)
Mjerač razine vode u stvarnom vremenu: Ove upute opisuju kako izgraditi jeftino mjerač razine vode u stvarnom vremenu za upotrebu u iskopanim bunarima. Mjerač razine vode dizajniran je tako da visi unutar iskopanog bunara, mjeri razinu vode jednom dnevno i šalje podatke putem WiFi -a ili mobilne veze
Mjerač temperature vode, vodljivosti i razine vode u bunaru u stvarnom vremenu: 6 koraka (sa slikama)
Mjerač temperature vode, vodljivosti i razine vode u zdencu u stvarnom vremenu: Ove upute opisuju kako izgraditi jeftin mjerač vode u stvarnom vremenu za praćenje temperature, električne vodljivosti (EC) i razine vode u iskopanim bunarima. Mjerač je dizajniran da visi unutar iskopanog bunara, 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 jako
SCARA Robot: Učenje o unaprijed i obrnutoj kinematici !!! (Plot Twist Naučite kako napraviti ARTUINO sučelje u stvarnom vremenu pomoću PROCESINGA !!!!): 5 koraka (sa slikama)
SCARA Robot: Učenje o unaprijed i obrnutoj kinematici !!! (Plot Twist Saznajte kako stvoriti sučelje u stvarnom vremenu u ARDUINU pomoću PROCESINGA !!!!): SCARA robot je vrlo popularan stroj u svijetu industrije. Naziv znači i selektivna sukladna montažna robotska ruka ili selektivna usklađena zglobna robotska ruka. To je u osnovi robot s tri stupnja slobode, prva dva displ
Prepoznavanje lica u stvarnom vremenu na RaspberryPi-4: 6 koraka (sa slikama)
Detekcija lica u stvarnom vremenu na RaspberryPi-4: U ovom Instructableu izvršit ćemo detekciju lica u stvarnom vremenu na Raspberry Pi 4 pomoću Shunya O/S koristeći knjižnicu Shunyaface. Slijedom ovog vodiča možete postići brzinu snimanja od 15 do 17 na RaspberryPi-4