Kazalo:
- 1. korak: Senzorji Hallovih učinkov
- 2. korak: Strojna oprema za elektroniko
- 3. korak: App Inventor
- 4. korak: Arduino koda
- 5. korak: Stanovanje
- 6. korak: Montaža/zaključek
Video: Arduino/namizna luč z nadzorom aplikacije: 6 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Za ta projekt sem si želel nekaj, kar bi mi omogočilo, da se naučim več o elektroniki/programski opremi, nekaj, česar se v resnici še nisem spustil. Odločil sem se, da bi bila luč dobra platforma za to.
Zasnova, ki sem jo pripravila, je bila za uplighter, ki ima prilagoditev barve in svetlosti. Na izdelku toplo in hladno belo barvno temperaturo in svetlost nadzirata s pomočjo "ploščice", njen položaj in usmeritev pa se spreminjata neodvisno - precej edinstvena/zabavna interakcija.
Na koncu sem ustvaril tudi aplikacijo (lahko se tudi izzovem), da jih prilagodim, in dodal dodatno funkcijo za nadzor nekaterih LED RGB in nastavil alarm ob sončnem vzhodu. Alarm ob sončnem vzhodu postopoma poveča svetlost za 30 minut, da se zbudite.
Ker je to moj prvi projekt Arduino/App, predvidevam, da bodo zagotovo obstajali boljši načini za izdelavo kode, zato mi olajšajte! Deluje, zato sem zadovoljen. Če imate predloge o izboljšavah itd. Bi bilo dobro slišati..
Vse datoteke tega projekta (koda arduino/izumitelj aplikacije, grafika aplikacije itd.) In apk aplikacije. najdete na tej povezavi.
To sem vpisal v natečaje Raspberry Pi in FULL SPECTRUM LASER, zato mislite, da je vreden glasu, bi bil zelo cenjen !!
Kaj rabiš….
Elec. Sestavine:
- Arduino Micro
- 12 linearnih radiometričnih senzorjev Hall učinka
- DC Jack
- 12V napajalnik
- 2x 1W hladne bele LED diode (6000K)
- 2x 1W topla bela LED dioda (2800K)
- 4x Adapruit RGB neopikslov
- Sparkfun Picobuck 350mA gonilnik konstantnega toka
- Modul Bluetooth HC06
- Prototipna plošča
- Terminalni bloki
- Žice
Materiali:
- Materiali za izdelavo kalupov (karton ali silikon itd.)
- Poliuretanska smola za litje
- Vezan les
Potrošni material:
- Spajkanje
- Barva v spreju
- Brusni papir
- Skodelice za mešanje/mešalniki
Orodja:
- Spajkalnik
- Pištola za lepilo
- Klešče/izvijači/noži itd.
- Laserski rezalnik
Programska oprema:
- Arduino
- MIT App Inventor (brezplačno na spletu)
- Photoshop ali kaj podobnega za ustvarjanje grafike aplikacije
1. korak: Senzorji Hallovih učinkov
Za nadzor/interakcijo izdelka sem želel priti do nečesa drugačnega, ne le klicanja ali česa podobnega.
Po kratkem raziskovanju različnih vrst elektronskih komponent sem odkril linearne radiometrične senzorje za efekt Hall. To so v bistvu senzorji, na izhod vplivajo magnetna polja. Običajno je izhod senzorjev polovica vhodne napetosti. Ko pa magnet približamo, se bo izhod dvignil na vhodno napetost ali pa padel na 0V (meje nasičenosti), odvisno od tega, ali gre za severni ali južni pol magneta.
Spoznal sem, da bi to lahko uporabil, da bi lahko nadzoroval dve različni nastavitvi na enem samem senzorju hale - rodila se je ideja o "ploščku". V lasersko izrezanem ključu je skrit magnet, ki bo nadzoroval svetlost ali barvno temperaturo, odvisno od tega, kateri konec je obrnjen proti senzorjem. Kasneje grem v kodo Arduino, vendar v bistvu preberem te senzorje in iščem, ali se je izhod dvignil nad "visok sprožilec" ali padel pod "nizek sprožilec". Uporabljam več senzorjev Hallovih efektov, ki mi omogočajo, da na vsako preslikam določeno barvno temperaturo in vrednost svetlosti, ki se sprožita, ko drsite ploščico po loku.
2. korak: Strojna oprema za elektroniko
Prvi korak tega projekta je bil povezati elektronsko strojno opremo. Odločil sem se, da bom uporabil Arduino Micro, saj ima veliko število analognih zatičev za branje - kar mi omogoča uporabo več senzorjev za efekte dvorane, da dobim dovolj ločljivosti za prilagoditev nastavitev. Napajanje 12V DC je razdeljeno med napajanje gonilnika Arduino in LED.
Krmilni lok uporablja 11 halnih senzorjev, drugi 1 pa za izklop luči. Ti so bili povezani v zatiče A0-> A5 in 4, 6, 8, 9, 10, 12. Imajo skupno 5v in ozemljitev/zatič.
LED diode, ki sem jih uporabil, so 1 W in potrebujejo gonilnik konstantnega toka. Uporabljen je bil Sparkfun PicoBuck, ki oddaja konstantnih 350 mA do 3 izhodnim kanalom. Napajanje 12V je priključeno na gonilnike Vin pin. Gonilnik ima vhodne zatiče za krmiljenje PWM izhodov, ti so bili priključeni na nožice 3 in 5 Arduina.
Modul bluetooth je bil nato priključen. Bluetooth Rx-> Arduino Tx, Tx-> Rx in 5v.ground.
LED diode so bile nameščene na ločeni plošči. Dve hladni beli LED diodi sta povezani zaporedoma, prav tako topli. Ti se povežejo v izhod 1 in 2 gonilnika. LED diode RGB so Adapruit Neopixel; to so verižni moduli, s katerimi lahko posamezno upravljate barvo in svetlost z enega zatiča Arduino. Ti se povežejo na pin 11 in 5V/ozemljitvene nožice.
3. korak: App Inventor
Za ustvarjanje aplikacije sem uporabil aplikacijo MIT App Inventor, ki je brezplačna in precej enostavna za učenje/uporabo. Najprej sem moral ustvariti zaslone/grafike aplikacij - to je mogoče storiti v Photoshopu itd. V App Inventorju je lažje, če imate vse komponente, ki sestavljajo zaslone kot ločene slike/datoteke.
App Inventor ima dva pogleda, tu sta zavihek »Oblikovalec« za vizualne vsebine sprednjega dela in zavihek »Bloki« za kodo.
Z zavihkom »Oblikovalec« sem ustvaril zaslone aplikacij. Eno od težav, ki sem jih odkril, je, da komponenta bluetooth ne deluje na več zaslonih, zato se po pozdravnem zaslonu vse ostale (povezava, RGB, barvna temperatura, alarm) ustvarijo na istem zaslonu - učinkovito plasti, ki jih vklopim /izklopljeno.
Glavna orodja, ki sem jih uporabil, so za postavitev/poravnavo in platno. Platno je območje, občutljivo na dotik, ki ga lahko prikažete kot sliko.
Ko so vizualni elementi nastavljeni, je čas, da preklopite na zavihek »Bloki« in napišete kodo. Na kratko bom opisal, vendar je verjetno lažje, če uvozite mojo datoteko v App Inventor in se igrate okoli sebe …
Ti prvi bloki so za povezovalne zaslone. Če želite, da se aplikacija poskuša samodejno povezati z modulom Bluetooth Arduinos, ustvarim in spremenljivko nastavim na naslov svojega HC06. Med povezovanjem spreminjam sliko ozadja s časovnikom. Če je povezava uspešna, se naloži zaslon z barvno temperaturo. Če se bluetooth ne uspe samodejno povezati, morate pritisniti gumb »poveži se z napravo«. To bo prikazalo seznam vseh naprav Bluetooth, ki jih lahko vidi vaš telefon. Ukaz 'bluetoothclient1.connect' za povezavo uporablja naslov naprave, ki ga izberete s tega seznama.
Ti bloki nadzorujejo, kaj se zgodi, ko se dotaknete vsake od tipk menija - preklopite med RGB, barvno temperaturo in alarmom. Ko se dotaknete, se ustrezni vizualni sloji vklopijo in izklopijo. Ko pritisnete gumb menija RGB, preklopi sliko ozadja gumbov na temno ikono, vklopi zaslon RGB, drugo pa izklopi.
Nadzor moči in svetlosti je razdeljen med zaslone RGB in barvno temperaturo. Da bi Arduino vedel, katere LED diode nadzoruje, mu moram povedati, kateri zaslon je naložen. Besedilni niz v obliki (zaslon)? pošlje vaš telefon bluetooth z ukazom BluetoothClient1. SendText.
Ta blok pošilja niz (Power)? vsakič, ko pritisnete gumb za vklop.
Ti bloki nadzorujejo nastavitev barvne temperature. Ko se dotaknete platna, se koordinata Y vaše dotične točke uporabi za nastavitev spremenljivke 'kul'. Vrednost Y poganja velikost slikovnih pik platna, zato je v mojem primeru vrednost med 0 in 450. Uporabljam množitelj, da to pretvorim v uporabno vrednost PWM (0-255). Nato pošljem niz s to vrednostjo in identifikatorjem v obliki (Tempvalue) ?.
Podobni bloki kot zgoraj, vendar za nadzor svetlosti. Tokrat z uporabo koordinate X in različnih množiteljev nastavite spremenljivko 'Bright' na vrednost med 10 in 100.
Ti bloki so za nadzor RGB. Obstaja ukaz, imenovan "GetPixelColor", ki ga lahko uporabite za pridobivanje vrednosti RGB pikslov, s katerimi se dotika vaš prst. Iz nekega razloga prikaže vrednost z dodatnimi 255 na koncu, zato se malo potrudim, da vrednost dobim v formatu (RGBredvalue.greenvalue.bluevalue.)? To se nato ponovno pošlje v Arduino, vendar z RGB kot identifikatorjem v nizu.
Naslednji del blokov je namenjen nastavitvam alarma. Prvi blok nadzoruje, kaj se zgodi, ko se dotaknete/povlečete sonce gor in dol. Ponovno se z ukazi 'get current X and Y' dobi vrednost, kje je vaš prst, in spremeni sliko ozadja glede na višino sonca. Položaj sonca vodi tudi, ali je alarm vklopljen ali onemogočen, to se pošlje prek bluetootha.
Ko tapnete ali končate premikanje sonca, se prikaže izbirnik časa, ki vam omogoča nastavitev časa alarma. Glavni del naslednjega bloka je uporaba trenutnega časa za določitev, koliko milisekund je do nastavitve alarma. Ta vrednost se nato pošlje v Arduino
V naslednjem koraku obravnavam, kako Arduino bere in uporablja nize …
4. korak: Arduino koda
Tako kot pri kodi aplikacije bom to na kratko opisal….
Najprej nastavim vse svoje spremenljivke, senzorje in LED dodelim ustreznim zatičem. Izhod iz senzorjev Hallovega učinka bo odčitan s funkcijo analogRead, kar daje vrednost med 0 in 1023. Kot je že opisano, izloči polovico, ko ni magnetov, torej okoli 500. Uporabljam nizke in visoke sprožilne spremenljivke, ki mi omogočajo enostavno prilagodite, ko ve, da je ploščica nad senzorjem.
Za neopiksele je potrebna knjižnica, ki je tukaj definirana.
Nastavitev void zažene serijske publikacije, za Micro Rx/Tx nožice (bluetooth) uporabite Serial1.. Zatiči so nato nastavljeni na vhode ali izhode, LED -diode pa so izklopljene.
Zdaj je to glavna zanka …
Ta prvi razdelek preverja, ali so iz aplikacije prejeti kakršni koli podatki. Serial1.available () bere serijsko številko in dobi število bajtov v nizu. Če je to> 0, poznam vhodne podatke.
Če se spomnite, se vsi nizi, ki jih pošljem iz aplikacije, končajo z vprašajem … t.j. (Bright100)?
Funkcijo.readStringUntil uporabljam za branje serijskih podatkov do vprašaja (Bright100) in na to nastavim spremenljivko BTstring. Preverim, ali se BTstring konča z ')', da se prepričam, ali so prejeti popolni ukazi. Če so, se pokliče zanka programa Bluetooth… to je opisano spodaj.
Ta naslednji bit nadzoruje alarm ob sončnem vzhodu. V bistvu, če je alarm vklopljen in je pravi čas, bo začel utripati LED. Zaradi človeškega očesa, ki logaritmično zaznava svetlobo, je bolje narediti kakršno koli LED bledenje navzgor/navzdol z eksponentno krivuljo in ne linearno. Zato enačba poganja vrednosti PWM …
Da bi preprečili, da bi plošček motil nadzor aplikacije, se pri uporabi aplikacije deaktivira. Če želite ploščico znova aktivirati, jo morate za 5 sekund premakniti z izdelka. Ta del kode najprej preveri, ali vsi senzorji oddajajo vrednost v stanju dinamičnega ravnovesja (brez magneta), nato pa zažene časovnik. Po 5 sekundah je spremenljivka BTinControl nastavljena na false.
Koda za ploščico. Najprej je treba prebrati senzorje.
Če je lučka trenutno izklopljena, bo preverila, ali je kateri od senzorjev nad ali pod sprožilnimi točkami, torej je ploščica postavljena na lok. Če je tako, bodo bele LED diode zbledele do zadnje nastavitve, ne glede na to, kje jih postavite.
Če želite, da so LED -lučke nastavljene na zadnjo nastavitev, namesto da se posodabljajo na vrednosti, povezane s senzorji, ki jih sprožijo, je spremenljivka MovedSinceStandby nastavljena na false. Ta naslednji del kode v bistvu preveri, ali ste plošček premaknili iz začetnega položaja za nastavljeno količino …
Če premikate ploščico, se pokliče 'MainProgram', ki posodobi svetlost/barvno temperaturo. To je opisano spodaj.
Zadnji bit v tej glavni zanki preveri, ali je plošček ponovno postavljen na priklopno postajo - senzor 12 bere vrednost nad/pod sprožilno točko. Če je tako, LED spet ugasne.
Bluetooth zanka:
Kot je opisano zgoraj, ko se podatki prejemajo prek bluetootha, se niz prebere. Zdaj moramo preveriti, kaj pravi ta niz …
Z vsemi nizami, razen svetlosti, barvne temperature in RGB, je precej enostavno ravnati. Preverite, ali je BTstring enak besedilu, poslanemu iz aplikacije.
Če se spomnite, bo vsakič, ko spremenite zaslone v aplikaciji, poslal ukaz bluetooth. Tu sprašujemo o tem in nekatere spremenljivke nastavimo na true ali false, da vemo, na katerem zaslonu ste.
Opomba Na koncu vsakega razdelka spremenljivko BTinControl nastavim na true in počistim vrednost BTstring.
Ko se v aplikaciji dotaknete gumba za vklop, bodo svetleče diode gor ali dol zbledele. Zgornje spremenljivke, na katerih zaslonu se nahajate, se uporabljajo za odločanje, ali naj nadzoruje RGB ali bela LED dioda.
Za svetlost, barvno temperaturo in RGB moram brati strune na nekoliko drugačen način. Ker se bo številčni del niza spreminjal, se sprašujem, ali se niz začne z enim od identifikatorjev in ne s celotnim nizom, zato samo (Svetlo tukaj..
Zdaj moram ločiti dejansko vrednost svetlosti od niza. Oblika niza, poslanega iz aplikacije, je (Brightvalue), zato vem, da bo vrednost svetlosti med "t" in ")". Položaj 't' bo ostal stalen, vedno bo sedmi znak v nizu. Ker pa je vrednost svetlosti lahko med 10 in 100, se bo položaj ')' spremenil. Z ukazom.indexOf določim, kje je ')', kateri znak je, nato pa lahko z ukazom.substring preberem niz med 7. znakom in položajem znaka ')'. To mi daje samo vrednost svetlosti, s katero lahko prilagodim RGB ali bele LED glede na zaslon.
Prilagajanje barvne temperature je podoben zgornjemu, vendar bo tokrat vrednost med 'p' in ')' …
Za prilagoditev RGB moramo iz niza izvleči tri vrednosti, vendar je spet podoben postopek. Iz aplikacije prejemamo nize v obliki (RGBvalue.value.value)
Zato vem, da bo rdeča vrednost med "B" in prvo točko. Zelena vrednost je med 1./2. točko, modra pa med 2. točko in ')'.
Ko imamo vrednosti, so neopixli nastavljeni na novo barvo …
Tu preverimo, ali je alarm vklopljen ali onemogočen. Če spremenite čas alarma, bomo poslali niz s številom milisekund od zdaj do alarma. Ta vrednost se spet izvleče iz niza in da lahko preverimo, ali je čas za začetek sončnega vzhoda, moramo spremenljivko nastaviti na trenutni čas (milis).
Kontrolniki za ploščad:
Kot je opisano že prej, če je ploščica (magnet) v eni smeri navzgor, bo izhod halovega senzorja potisnil pod spodnji sprožilec, v drugo smer pa navzgor nad visokim sprožilcem.
To omogoča nadzor svetlosti in barvne temperature na istem loku.
Vrednosti senzorjev se odčitajo. Če je katera od njih manjša od nizke sprožilne vrednosti, prilagajamo barvno temperaturo. Pod oblokom je 11 senzorjev, katerih izhodi bodo med premikanjem ploščice padli pod sprožilno točko. Vsak senzor ima vrednost PWM za hladne in tople LED diode, začenši s senzorjem 1 pri 100% toplem, 0% hladnem in delujočim do 11. pri 0% toplem, 100% hladnem.
Nadzor svetlosti se izvede na enak način.. preverjanje, ali so izhodi senzorjev tokrat nad visokim sprožilcem, in vsakemu senzorju dajte vrednost tehtanja svetlosti.
To ponderiranje svetlosti se nato pomnoži z vrednostjo barvne temp, da se dobi celotna izhodna vrednost. Omogoča vam, da poljubno barvno temperaturo nastavite na poljubno svetlost …
5. korak: Stanovanje
- Začel sem z izdelavo kalupa iz kartona za spodnji del ohišja. Za izdelavo vdolbin za kontrolno območje sem kos vezanega vezanega laserja izrezal v obliko loka in uporabil kovanec za 5p za priklopno postajo. Ti so bili zlepljeni na kartonski kalup, pri čemer smo bili pozorni, da so v pravilnem položaju, ki bi bil poravnan s senzorji Hallovega učinka.
- Sledilo je mešanje poliuretanske smole. Stvari, ki jih uporabljam, imajo preprosto razmerje 1: 1 in se pozdravijo v približno 20 minutah … zato je treba delati dokaj hitro!
- Začetno vlivanje je bilo zapolniti dno kalupa. Po tem kompletu sem dodal notranjo steno iz kartona, da sem lahko prelil stranske stene.
- Da bi ustvarili zgornji del, v katerega bi sedele LED diode, sem pod kotom izrezala in prilepila plastično cev/skodelico. In spet smo vlili smolo in pustili, da se strdi.
- Zdaj je bilo ohišje vse pripravljeno. Izkopati sem moral nekaj lukenj in mu dati dober pesek.
- Nanesen je bil temeljni premaz in nato poškropljen s končnim premazom barve.
6. korak: Montaža/zaključek
- Iz ohišja je bila izrezana reža za enosmerni priključek. Nato je vtič pritrjen.
- LED ploščo lahko nato privijete v zgornjem delu, žice pa napeljete do spodnjega dela.
- Žice iz vtičnic LED in enosmernega toka so bile nato privijačene v ustrezne priključne bloke.
- Glavna plošča se nato privije v ohišje
- Kos vezanega lesa se nato privije, da pokrije dno ohišja.
- Zadnja stvar je, da zlepite "ploščico" skupaj, pri čemer pazite, da ste položili magnet z ustrezno konico "svetlost" ali "barvna temperatura".
Na splošno svetloba deluje zelo dobro! V programski opremi je nekaj hroščev, ki jih je treba odpraviti, LED diode RGB pa so lahko svetlejše. Lahko dodam tudi senzor zunanje svetlobe za samodejno spreminjanje barvne temperature, tako da se podnevi začne "hladen" in ponoči spremeni v "topel".
Na zdravje za branje!
Priporočena:
Pametna namizna LED luč - Pametna razsvetljava W/ Arduino - Delovni prostor Neopixels: 10 korakov (s slikami)
Pametna namizna LED luč | Pametna razsvetljava W/ Arduino | Delovni prostor Neopixels: Danes preživljamo veliko časa doma, študiramo in virtualno delamo, zakaj torej ne bi povečali svojega delovnega prostora s prilagojenim in pametnim sistemom osvetlitve, ki temelji na LED -diodah Arduino in Ws2812b. Tukaj vam pokažem, kako zgradite svoj pametni Namizna LED luč, ki
Akari namizna luč: 5 korakov (s slikami)
Akari Desk Light: Lansko poletje sem izumil napeti tečajni mehanizem za držanje lesenih moznikov na mestu, ko se vrtijo. Ideje nisem nikoli uporabil, dokler nisem prišel do zasnove namizne luči Akari (akari v japonščini pomeni sijoči vir svetlobe). Z
Robot z nadzorom Wi-Fi z uporabo Wemos D1 ESP8266, Arduino IDE in aplikacije Blynk: 11 korakov (s slikami)
Robot, ki ga nadzira Wi-Fi, z uporabo Wemos D1 ESP8266, Arduino IDE in aplikacije Blynk: V tej vadnici vam pokažem, kako narediti robotski rezervoar, ki ga upravlja Wi-Fi, s pametnim telefonom z aplikacijo Blynk. V tem projektu je bila uporabljena plošča ESP8266 Wemos D1, lahko pa se uporabljajo tudi drugi modeli plošč (NodeMCU, Firebeetle itd.), Pr
DIY LED luč - moderna namizna svetilka za razpoloženje z daljinskim upravljalnikom: 8 korakov (s slikami)
DIY LED Light - Sodobna namizna svetilka za razpoloženje z daljinskim upravljalnikom: V tem članku bom predstavil postopek, ki sem ga uporabil za izdelavo te čudovite LED svetilke za razpoloženje v obliki piramide. Za dodatno strukturo sem uporabil javor, za večjo strukturo pa še nekaj mahagonijevih bodic. Za luči sem uporabil LED luči RGB, ki so na voljo v 16 -metrskem traku
Namizna luč in okras na vratih: 8 korakov (s slikami)
Ornament namizne luči in svetlobni znak na vratih: Ta vadnica vam bo pokazala, kako programirati in zgraditi namizni okras, ki zasveti. Te luči v eni uri spremenijo barve. Naučili se boste tudi, kako programirati in izdelati spremljevalni znak na vratih, ki zasveti. Vrata lahko uporabite