Tartalomjegyzék:
- Kellékek
- 1. lépés: Ismerje meg a rendszert
- 2. lépés: A WebSocketServer írása
- 3. lépés: Készítse el a soros parancsok protokollját
Videó: Világosíts fel! a Valós idejű, többplatformos LED szalagvezérlés: 5 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Világosíts fel! egy olyan rendszer, amelyet az RGB LED-szalag valós idejű vezérlésére találtam ki, miközben alacsonyan tartom a költségeket és magas a teljesítmény.
A szerver Node.js formátumban van írva, és ezért platformon keresztüli.
Példámban Raspberry Pi 3B -t használok hosszú távú használatra, de a Windows PC -t a demonstráció és a hibakeresés érdekében.
A 4 tűs csíkot egy Arduino Nano típuslap vezérli, amely sorozatosan adott parancsokat hajt végre, hogy PWM jeleket küldjön három tranzisztornak, amelyek a +12VDC-t a szalag megfelelő színű tűjébe kapcsolják.
A LightMeUp! A rendszer ellenőrzi a saját hőmérsékletét is, ha 60 ° C fölött van, bekapcsol két, a házba épített 12 V egyenáramú számítógép -ventilátort, hogy lehűtse magát, hogy javítsa az áramkör élettartamát.
A LightMeUp másik jellemzője! célja egy Bombay-Sapphire Gin palack megvilágítása, de ez nem az útmutató része.
Élvezd az olvasást:)
Kellékek
- Arduino Nano (vagy bármely más ATmega328 / magasabb szintű mikrokontroller)
- Raspberry Pi 3 B modell Node.js telepítéssel (vagy bármely más számítógéppel)
- 12V RGB 4 tűs LED szalag
- 12V 3A tápegység
- Jumper kábelek (természetesen férfi-férfi, ha kenyérlapot használ)
- Kenyeretábla (opcionális)
- 2 db 12V DC számítógép ventilátor (opcionális)
- 3x TIP120 Darlington tranzisztor hűtőbordával (4, ha hűtőventilátorokat szeretne beépíteni)
- 2 állapotjelző LED piros és zöld (opcionális)
- 6, 7K NTC hőmérséklet-alapú ellenállás + 6, 7K ellenállás (opcionális)
- USB-Mini-USB 2.0 adatkábel (a Raspberry Pi számára, hogy kommunikáljon az Arduino-val)
- Külső tápellátású USB-hub (opcionális, csak a Raspberry Pi esetében)
1. lépés: Ismerje meg a rendszert
Világosíts fel! nagyon egyszerű elektronikus áramkörön alapul.
Van valamilyen számítógépünk (ebben az esetben egy Raspberry Pi), amely soros kommunikációt folytat a mikrokontroller táblánkkal. Ez a tábla ezután bizonyos soros parancsokat hajt végre, mint például az "RGB (255, 255, 255)", amelyek a LED-csíkot fehéredik.
Miután megkaptuk a 4-es LED-szalagunkhoz szükséges három értéket: PIROS, ZÖLD és KÉK, végrehajtjuk az analóg írást (tű, érték) annak érdekében, hogy a TIP120 tranzisztorunkat PWM jellel láthassuk el.
Ez a PWM jel lehetővé teszi a tranzisztornak, hogy a megfelelő színű tűt, amelyhez a gyűjtője a földhöz van csatlakoztatva, bizonyos fokig vagy teljesen be / ki kapcsolja. Igen, sok a "to":)
Ha összekeverjük a három tranzisztoros kimenetet a LED csíkok színű csapjaival, akkor alapvetően bármilyen színt hozhatunk létre!
Most ezzel a megértéssel támadhatjuk meg a projekt legnagyobb kihívását, a websocketservert és annak soros kapcsolatát az Arduino -val.
2. lépés: A WebSocketServer írása
Most létre kell hoznunk egy speciális webszervert, amely lehetővé teszi számunkra, hogy frissítés nélkül továbbítsuk az adatokat oda -vissza, hogy valós idejű LED szalagvezérlést érjünk el.
Kérjük, vegye figyelembe, hogy a valós idejű kommunikáció természetesen lehetetlen, legalább néhány ezredmásodperces késleltetéssel kell számolni, de emberi szemmel ez valós időben is jelentős.
Ezt könnyen elérheti a socket.io könyvtár használatával, ha a Node.js -t használja, mint én. Természetesen mindig ragaszkodhat kedvenc programozási nyelvéhez.
Websocket kapcsolattal lesz dolgunk, amely lehetővé teszi számunkra a bemeneti adatok, például a LED-szalag színének beállítását, vagy az állapotadatok, például a "LED ON" kétirányú átvitelét frissítés nélkül.
Egy másik nagyon fontos szolgáltatás, amellyel a szervernek rendelkeznie kell, de nem szükséges, az egyszerű bejelentkezés. A bejelentkezésemet egy egyszerű felhasználónév és jelszó mezőre alapozom. Ezeket az információkat ezután közzéteszik a szerver /bejelentkezési útvonalán, amely aztán összehasonlítja a felhasználónevet a felhasználók listájával (.txt fájl) és a megfelelő jelszóval az SHA256 titkosított formában. Nem akarod, hogy szomszédaid összezavarják a LED szalagodat, miközben kedvenc italodat a legkényelmesebb üléseden fogyasztod, igaz?
Most jön a szerver szíve, a soros kommunikáció.
A szervernek képesnek kell lennie soros kommunikációra - a Node.js fájlban ezt úgy érheti el, hogy megnyit egy portot a "serialport" könyvtár használatával. De először határozza meg az arduino port nevét a számítógépen, amely a szervert fogadja. Az operációs rendszertől függően a portok különböző neveket kapnak, pl. Windows rendszeren ezeket a portokat "COMx" portoknak nevezik, míg linuxon "/dev/ttyUSBx", ahol x az USB -port száma.
3. lépés: Készítse el a soros parancsok protokollját
A fenti képen az RGB vezérlésért felelős Arduino IDE kód látható. Ennek a lépésnek az a célja, hogy az ön által írt szerver és az Arduino tábla sikeresen beszéljen egymással.
Miután sikeresen megnyitotta a soros portot, képesnek kell lennie parancsok küldésére a táblára, amely gondoskodik a kívánságairól. Például, ha ujját húzzuk a színválasztó fölé a HTML weboldalon, akkor az RGB -kódot el kell küldeni a szervernek, amely elküldi azt az Arduino -nak, hogy feldolgozza a beállított értékeket.
Én a jscolor -t használtam, remekül megvalósítják a kiváló minőségű színfelvételi elemet, amelynek van egy "onFineChange" nevű eseménye, amely lehetővé teszi a színválasztóból származó feldolgozási adatok megadását, amint azok értékei megváltoznak.
Ajánlott:
Valós idejű kút vízszintmérő: 6 lépés (képekkel)
Valós idejű kútvízszint-mérő: Ezek az utasítások leírják, hogyan lehet olcsó, valós idejű vízszintmérőt készíteni ásott kutakban való használatra. A vízszintmérőt úgy tervezték, hogy egy ásott kút belsejében lógjon, naponta egyszer mérje a vízszintet, és WiFi -n vagy mobilkapcsolaton keresztül küldje el az adatokat
Valós idejű kútvíz-hőmérséklet, vezetőképesség és vízszintmérő: 6 lépés (képekkel)
Valós idejű kútvíz-hőmérséklet-, vezetőképesség- és vízszintmérő: Ezek az utasítások leírják, hogyan lehet olcsó, valós idejű vízmérőt készíteni a hőmérséklet, az elektromos vezetőképesség (EC) és a vízszint figyelésére ásott kutakban. A mérőt úgy tervezték, hogy egy ásott kút belsejében lógjon, mérje a víz hőmérsékletét, EC és
SCARA Robot: Tanulás a foward és inverz kinematikáról !!! (Plot Twist Ismerje meg, hogyan lehet valós idejű interfészt készíteni ARDUINO -ban a FELDOLGOZÁS segítségével !!!!): 5 lépés (képekkel)
SCARA Robot: Ismerkedés a foward és inverz kinematikával !!! (Plot Twist Ismerje meg, hogyan lehet valós idejű interfészt készíteni ARDUINO -ban FELDOLGOZÁSSAL !!!!): A SCARA robot nagyon népszerű gép az iparban. A név mind a szelektíven megfelelõ szerelõ robotkarra, mind a szelektív megfelelõ csuklós robotkarra vonatkozik. Ez alapvetően három szabadságfokú robot, az első kettő
Valós idejű arcfelismerés a RaspberryPi-4-en: 6 lépés (képekkel)
Valós idejű arcfelismerés a RaspberryPi-4 készüléken: Ebben az utasításban valós idejű arcfelismerést hajtunk végre a Raspberry Pi 4 rendszeren Shunya O/S rendszerrel a Shunyaface Library segítségével. Ezt az oktatóanyagot követve elérheti a 15-17 észlelési képkockasebességet a RaspberryPi-4 készüléken
Valós idejű MPU-6050/A0 adatnaplózás Arduino és Android segítségével: 7 lépés (képekkel)
Valós idejű MPU-6050/A0 adatnaplózás Arduino és Android segítségével: Érdekel az Arduino használata gépi tanuláshoz. Első lépésként egy valós idejű (vagy ahhoz közel álló) adatkijelzőt és naplózót szeretnék felépíteni egy Android -eszközzel. Gyorsulásmérő adatokat szeretnék rögzíteni az MPU-6050-ből, így tervezem