Sisukord:

Juhtmeta kiirendusmõõturi juhitavad Rgb-LED-id: 4 sammu
Juhtmeta kiirendusmõõturi juhitavad Rgb-LED-id: 4 sammu

Video: Juhtmeta kiirendusmõõturi juhitavad Rgb-LED-id: 4 sammu

Video: Juhtmeta kiirendusmõõturi juhitavad Rgb-LED-id: 4 sammu
Video: 🟡 POCO X5 PRO – KÕIGE ÜKSIKASJALIK ÜLEVAADE ja TESTID 2024, Juuli
Anonim
Juhtmeta kiirendusmõõturiga juhitavad Rgb-LED-id
Juhtmeta kiirendusmõõturiga juhitavad Rgb-LED-id
Juhtmeta kiirendusmõõturiga juhitavad Rgb-LED-id
Juhtmeta kiirendusmõõturiga juhitavad Rgb-LED-id

MEMS (mikroelektromehaanilised süsteemid) kiirendusmõõturid on laialdaselt kasutusel mobiiltelefonide ja kaamerate kallutusanduritena. Lihtsad kiirendusmõõturid on saadaval nii ic-chip'i kui ka odavate arendusplaatide kujul.

Juhtmevabad kiibid on samuti taskukohased ja saadaval kokkupandud vooluahelates koos sobiva antennivõrgu ja lahtiühenduskorkidega. Ühendage nii traadita plaat kui ka kiirendusmõõtur jadaliidese kaudu mikrokontrolleriga ja teil on Nintendo-wii funktsioonidega juhtmevaba kontroller. Seejärel ehitage vastuvõtja, millel on sama tüüpi traadita kiip ja pwm-juhitavad rgb-LED-id, voila, teil on traadita, kallutatava juhtimisega värviline toavälk. Hoidke saatjaplaat tasasel kohal, leivaplaat ülespoole ja LED on jahedalt sinine, ainult sinine LED on aktiivne. Seejärel kallutage saatjat ühes suunas ja segate punast või rohelist värvi sõltuvalt sellest, millises suunas seda kallutate. Kallutage lõpuni 90 kraadini ja liigute läbi kõigi punase ja sinise või rohelise ja sinise segu, kuni 90 -kraadise kalde korral on aktiivne ainult punane või roheline. Kallutage veidi nii x kui ka y suunas ning saate kõikide värvide segu. 45 kraadi juures on valgus võrdne punase, rohelise ja sinise, teisisõnu valge valguse seguga. Kasutatavad osad on saadaval Interneti-hobi-elektroonika kauplustes. Peaks olema mõne pildi järgi tuvastatav.

Samm: saatja kiirendusmõõturiga

Kiirendusmõõturiga saatja
Kiirendusmõõturiga saatja
Kiirendusmõõturiga saatja
Kiirendusmõõturiga saatja
Kiirendusmõõturiga saatja
Kiirendusmõõturiga saatja
Kiirendusmõõturiga saatja
Kiirendusmõõturiga saatja

Saatja põhineb mikrokontrolleril Atmel avr168. Mugav punane tahvel koos 168-ga on pingeregulaatori ja lähtestamisahelaga arduino-plaat. Kiirendusmõõtur on avr-ga ühendatud bitti põrutatud i2c siiniga ja traadita plaat on ühendatud riistvara SPI-ga (Serial Peripheral Interface).

Leibalaud on täiesti juhtmevaba, 4,8 V akupakk on rihma all. Juhtmevaba plaat ja arduino wee võtavad vastu kuni 9 V ja neil on pardal lineaarne pingeregulaator, kuid kiirendusmõõtur vajab 3, 3 V reguleeritud rööbastee juurest.

2. samm: RGB-LED-ga vastuvõtja

RGB-LED-ga vastuvõtja
RGB-LED-ga vastuvõtja
RGB-LED-ga vastuvõtja
RGB-LED-ga vastuvõtja
RGB-LED-ga vastuvõtja
RGB-LED-ga vastuvõtja

Vastuvõtja põhineb atmel avr169 demoboardil nimega liblikas. Tahvlil on palju funktsioone, mida selles projektis ei kasutata. Juhtmevaba transiiver on ühendatud PortB-ga ja pwm-juhitav LED on ühendatud PortD-ga. Toide tarnitakse Interneti-teenuse pakkuja päises, piisab 4,5 V-st. Juhtmeta plaat talub 5 V sisend-/väljundpistikutel, kuid vajab 3,3 V toiteallikat, mis on varustatud pardal oleva regulaatoriga.

RF tranceiveri modifitseeritud päisekaabel on tõesti mugav ja ühendab juhtmevaba plaadi liblika toite- ja riistvara spi-kontrolleriga. Shiftbright on rgb-juhitud impulsi laiuse moduleerimise kontroller, mis võtab vastu 4-baidise käsu, mis lukustatakse sisse ja seejärel lukustatakse väljundtihvtidele. Tõesti lihtne järjestikku ühendada. Lihtsalt nihutage paljud käsusõnad välja ja esimene nihutatud jõuab lingiliini viimasesse ühendatud LED-i.

3. samm: C-programmeerimine

Kood on kirjutatud C -vormingus, sest ma ei hoolinud sellest, et õppida "lihtsamat" töötluskeelt, millel arduino põhineb. Kirjutasin õpikogemuse jaoks ise SPI ja rf tranceiver liidese, kuid laenasin i2c assembleri koodi avrfreaks.netist. Shiftbrighti liides on C-koodis bitipangaga. Üks probleem, millega ma kokku puutusin, olid kiirendusmõõturi väljundi väikesed irraadilised variatsioonid, mis muutis LED-i värelemise palju. Lahendasin selle tarkvara madalpääsfiltriga. Kiirendusmõõturi väärtuste liikuva kaalutud keskmine. RF-tranceiver toetab riistvara crc ja ack koos automaatse uuesti edastamisega, kuid selle projekti jaoks oli LED-ide reaalajas sujuv värskendamine olulisem. Iga kiirendusmõõturi väärtustega pakett ei pea vastuvõtjani puutumatult jõudma, kui rikutud paketid ära visatakse. Mul polnud probleeme kaotatud raadiosageduslike pakettidega 20 meetri ulatuses. Kuid kaugemal muutus link ebastabiilseks ja LED-e ei värskendatud pidevalt. Saatja peamine silmus pseudokoodis: initsialiseeri (); samas (tõene) {Väärtused = abs (saada x, y, z kiirendusmõõturi väärtused ()); RF_send (Väärtused); viivitus (20 ms);} Vastuvõtja peamine silmus pseudokoodis: initsialiseeri (); samas (tõene) {newValues = blokeeriv_saadaRF ()); rgbValues = rgbValues + 0,2*(newValues-rgbValues); kirjuta rgbValues to shiftbrigth;}

4. samm: tulemus

Tulemus
Tulemus
Tulemus
Tulemus
Tulemus
Tulemus
Tulemus
Tulemus

Olin üllatunud, kui sujuv ja täpne oli kontroll. Teil on tõesti värvi kontroll sõrmede otsas. Pwm-LED-kontrolleril on iga värvi jaoks 10-bitine eraldusvõime, mis annab miljoneid võimalikke värve. Kahjuks on kiirendusmõõturil ainult 8 -bitine eraldusvõime, mis vähendab teoreetiliste värvide arvu tuhandeteni. Kuid ikkagi ei ole võimalik tajuda värvimuutuse samme. Panin vastuvõtja IKEA lampi ja pildistasin allpool erinevaid värve. Seal on ka video (jube kvaliteet)

Soovitan: