Kazalo:
- 1. korak: olajšajte (malo) vstajanje
- 2. korak: Več barve
- 3. korak: Sigmoid krivulja, utripanje in "ločljivost"
- 4. korak: Elektronika
- 5. korak: Upori (za LED)
- 6. korak: Programska oprema
- 7. korak: IKEA (kaj bi brez njih)
Video: Luč za bujenje: 7 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Ko pišem to navodilo, je sredi zime na severni polobli in to pomeni kratke dneve in dolge noči. Navajen sem vstajati ob 06:00 in poleti bo do takrat posijalo sonce. Pozimi pa ob 9:00 začne svetloba, če imamo srečo, da dan ni oblačen (kar … ni pogosto).
Pred časom sem prebral o "luči za prebujanje", ki jo je izdelal Philips, ki so jo na Norveškem uporabljali za simulacijo sončnega jutra. Nikoli ga nisem kupil, vendar sem neprestano razmišljal o tem, da bi ga naredil, ker je bolj zabavno kot samo kupiti.
Zaloge:
Okvir za slike "Ribba" 50 x 40 cm od IKEA
perforirana lesena plošča iz trgovine strojne opreme
Razvojna plošča STM8S103 prek Ebaya ali drugih
Ura v realnem času DS1307 (Mouser, Farnell, Conrad itd.)
32768 Hz kristal ure (Mouser, Farnell, Conrad itd.)
3V litijev coincell + nosilec za coincell
MU-tranzistorji N-kanala BUZ11 ali IRLZ34N (3x)
BC549 (ali kateri koli drug tranzistor NPN)
kolikor želite belih, rdečih, modrih, zelenih itd
nekaj uporov in kondenzatorjev (glej shemo)
Powerbrick, 12V do 20V, 3A ali več (npr. Napajanje starega prenosnika)
1. korak: olajšajte (malo) vstajanje
Ideja je, da je težko vstati iz postelje zjutraj, ko je še tema. In če živite blizu ali celo nad arktičnim krogom, bo zelo dolgo temno. V krajih, kot je Tromsö na Norveškem, sploh ne bo prišlo do svetlobe, saj tam sonce zaide pol novembra, da se ponovno pojavi na polovici januarja.
Philips je torej simuliral vzhod sonca.
Philips počasi povečuje svetlost svetilke, ki je verjetno narejena z več LED diodami, vendar skrita za enim samim difuzorjem. Njihov čas od izklopa do polne svetlosti traja 30 minut.
Zbujalne luči Philips niso tako drage, vendar imajo le eno barvo in so videti nekoliko majhne. Mislim, da bi lahko naredil bolje.
2. korak: Več barve
Moja luč za bujenje uporablja štiri barve, belo, rdečo, modro in zeleno. Najprej bele barve, nato rdeče in nazadnje nekaj modrih in zelenih LED. Moja zamisel je bila, da bi lahko simuliral ne le povečanje svetlosti, temveč tudi spreminjanje barve jutranje svetlobe, tako da bi začel z malo bele barve, kasneje dodal rdečo in na koncu zmešal modro in zeleno. Nisem prepričan, da res spominja na dejansko jutranjo svetlobo, vendar mi je všeč barvit zaslon, kakršen je zdaj.
Moja je tudi hitrejša od luči za prebujanje Philips, namesto 30 minut svetlobe Philips se moja svetlost spremeni v 0 do 100% v manj kot 5 minutah. Tako moje sonce vzhaja veliko hitreje.
OPOMBA:
Zelo težko je narediti slike moje budilne luči, poskusil sem z več fotoaparati in pametnimi telefoni, vendar vse slike, ki sem jih naredil, ne delajo prave pravice.
3. korak: Sigmoid krivulja, utripanje in "ločljivost"
Seveda sem želel narediti posvetlitev čim bolj gladko. Človeške oči so logaritmično občutljive, kar pomeni, da so v popolni temi bolj občutljive kot pri dnevni svetlobi. Zelo majhno povečanje svetlosti pri nizkih ravneh se "počuti" enako kot veliko večji korak, ko je svetloba pri 40% svetlosti. Za dosego tega sem uporabil posebno krivuljo, imenovano Sigmoid (ali S-krivulja), ki se začne kot eksponentna krivulja, ki se na polovici spet izravna. Ugotovil sem, da je to zelo lep način za povečanje (in zmanjšanje) intenzivnosti.
Taktna frekvenca mikrokrmilnika (in časovnikov) je 16 MH in uporabljam največjo ločljivost TIMER2 (65536) za ustvarjanje treh signalov širine impulza (PWM). Zato impulzi prihajajo 16000000 /65536 = 244 krat na sekundo. To je daleč nad mejo oči, da se vidi utripanje.
Tako se LED napaja s PWM signalom, ki je narejen s tem 16 bitnim merilnikom časa mikrokrmilnika STM8S103. Ta signal PWM je lahko VKLOPLJEN najmanj 1 dolžino impulza in preostalih 65535 dolžin impulzov izključeno.
Tako bodo LED diode, povezane s tem PM signalom, vklopljene 1/65536-ti čas: 0,0015%
Največje so ON 65536/65536-ti čas: 100%.
4. korak: Elektronika
Mikrokrmilnik
Možgani budilne luči so mikrokrmilnik STM8S103 podjetja STMicroelectronics. Rad uporabljam dele, ki imajo ravno dovolj zmogljivosti za delo. Za preprosto nalogo, kot je ta, ni treba uporabiti mikrokrmilnikov STM32 (moji drugi priljubljeni), vendar Arduino UNO ni bil dovolj, saj sem želel tri signale PWM s 16 -bitno ločljivostjo in ni časovnika s tremi izhodnimi kanali na UNO.
Ura v realnem času
Čas se bere z ure DS1307 v realnem času, ki deluje s kristalom 32768 Hz in ima 3V rezervno baterijo.
Nastavitev trenutnega časa, dneva in časa prebujanja poteka z dvema gumboma in je prikazana na 16 x 2 LCD -prikazovalniku. Če želite, da je moja spalnica ponoči res temna, se osvetlitev LCD zaslona vklopi le, če so svetleče diode svetlejše od osvetlitve ozadja in ko nastavljate čas, dan in čas bujenja.
Moč
Napajanje prihaja iz starega napajalnika za prenosni računalnik, moj proizvaja 12V in lahko odda 3A. Ko imate drug napajalnik, bo morda treba upor zaporedoma prilagoditi z LED-nizi. (Glej spodaj)
Led
Svetleče diode so priključene na 12V napajanje, preostala elektronika na 5V je narejena z linearnim regulatorjem 7805. Na shemi piše, da uporabljam regulator TO220, ki ni potreben, saj mikrokrmilnik, zaslon in ura v realnem času uporabljajo le nekaj miliamperov. Moja ura uporablja manjšo različico TO92 7805, ki lahko napaja 150mA.
Preklapljanje LED nizov poteka z N-kanalnimi MOSFET-i. Še enkrat, v shemi prikazuje druge naprave, ki jih nisem uporabljal. Slučajno sem imel namesto novejših MOS -tranzistorjev IRLZ34N natanko tri zelo stare MOSFET -e BUZ11. Dobro delajo
Seveda lahko vstavite poljubno število LED diod, kolikor lahko MOSFET -i in napajalnik prenesejo tok. V shemi sem narisal samo en niz katere koli barve, v resnici je več barv vzporednih z drugimi nizi te barve.
5. korak: Upori (za LED)
O uporih v vodilnih nizih. Bele in modre LED diode imajo običajno pri polni svetlosti napetost 2,8 V.
Rdeče svetleče diode imajo samo 1,8 V, moje zelene LED imajo 2 V pri polni svetlosti.
Druga stvar je, da njihova polna svetlost ni enaka. Zato je bilo potrebno nekaj eksperimentiranja, da so bile enako svetle (za moje oči). Če bodo LED diode enako svetle pri polni svetlosti, bodo videti enako svetle tudi pri nižjih nivojih, signal širine impulza jih vedno vklopi s polno svetlostjo, vendar v daljših in krajših časih vaše oči skrbijo za povprečenje.
Začnite s takšnim izračunom. Napajanje daje (v mojem primeru) 12V.
Štiri bele svetleče diode v seriji potrebujejo 4 x 2,8 V = 11,2 V, za upor pa ostane 0,8 V.
Ugotovil sem, da so pri 30 mA dovolj svetli, zato mora biti upor:
0,8 / 0,03 = 26,6 ohma. Na shemi vidite, da sem vstavil 22 ohmski upor, zaradi česar so svetleče diode le nekoliko svetlejše.
Modre svetleče diode so bile pri 30 mA preveč svetle, vendar so bile v primerjavi z belimi LED pri 15 mA lepe, tudi pri 15 mA so imele nad njimi približno 2,8 V, tako da je bil izračun 4 x 2,8 V = 11,2 V, ki je spet pustil 0,8 V
0,8 / 0,015 = 53,3 ohma, zato sem izbral 47 ohmski upor.
Tudi moje rdeče LED diode potrebujejo približno 15 mA, ki so enako svetle kot ostale, vendar imajo pri tem toku le 1,8 V. Tako bi lahko dal več v serijo in imel še nekaj "prostora" za upor.
Šest rdečih LED mi je dalo 6 x 1,8 = 10,8 V, tako da je bilo preko upora 12 - 10,8 = 1,2 V.
1,2 / 0,015 = 80 ohmov, dosegel sem 68 ohmov. Tako kot drugi, nekoliko svetlejši.
Zelene LED diode, ki sem jih uporabil, so svetle kot ostale pri približno 20 mA. Potreboval sem le nekaj (tako kot modrih) in odločil sem se, da bom štiri postavil v serijo. Pri 20mA imajo 2, 1V nad sabo, kar daje 3 x 2,1 = 8,4V
12 - 8,4 = 3,6 V za upor. In 3,6 / 0,02 = 180 ohmov.
Če sestavite to luč za prebujanje, ni verjetno, da imate enako napajanje, boste morali prilagoditi število zaporednih LED in potrebne upore.
Majhen primer. Recimo, da imate napajalnik, ki daje 20V. Odločil bi se, da zaporedoma nastavim 6 modrih (in belih) LED, 6 x 3V = 18V, torej 2V za upor. Recimo, da vam je svetlost pri 40mA všeč. Upor mora biti potem 2V / 0,04 = 50 ohmov, upor 47 ohmov bo v redu.
Svetujem, da z navadnimi (5 mm) LED diodami ne greste višje od 50 mA. Nekateri zmorejo več, jaz pa sem rad na varnem.
6. korak: Programska oprema
Vso kodo lahko prenesete s:
gitlab.com/WilkoL/wakeup_light_stm8s103
pustite izvorno kodo odprto poleg preostalih navodil, če želite slediti razlagi.
Main.c
Main.c najprej nastavi uro, časovnike in drugo zunanjo opremo. Večino "gonilnikov", ki sem jih napisal s standardno knjižnico podjetja STMicroelectronics, in če imate kakršna koli vprašanja o njih, jih zapišite v komentar pod navodili.
Eeprom
Kodo »besedilo za prikaz« sem pustil, da sem besedila vstavil v eeprom STM8S103 kot komentarje. Nisem bil prepričan, da imam dovolj bliskovnega pomnilnika za vso kodo, zato sem poskušal v eeprom vložiti čim več, da je za program na voljo vsa bliskavica. Na koncu se mi to ni zdelo potrebno in besedilo sem premaknil v bliskavico. Vendar sem ga pustil kot komentirano besedilo v datoteki main.c. Lepo ga je imeti, ko moram kasneje narediti kaj podobnega (v drugem projektu)
Eeprom se še vedno uporablja, vendar le za shranjevanje časa bujenja.
Enkrat na sekundo
Po nastavitvi zunanjih naprav koda preveri, ali je minila ena sekunda (s časovnikom).
Meni
V tem primeru preveri, če je bil pritisnjen gumb, vstopi v meni, kjer lahko nastavite trenutni čas, dan v tednu in čas bujenja. Ne pozabite, da traja približno 5 minut, da preklopite na popolno svetlost, zato nastavite čas bujenja nekoliko prej.
Čas bujenja je shranjen v eepromu, tako da bo tudi po izpadu električne energije "vedel", kdaj vas mora zbuditi. Seveda se trenutni čas shrani v uro realnega časa.
Primerjava trenutnega časa in časa prebujanja
Ko ni pritisnjen noben gumb, preveri trenutni čas in ga primerja s časom prebujanja in tednom. Nočem, da me zbudi konec tedna:-)
V večini primerov ni treba storiti ničesar, zato nastavi spremenljivko "leds" na OFF, sicer pa na ON. Ta spremenljivka se preveri skupaj s signalom »change_intensity«, ki prihaja tudi iz časovnika in je aktiven 244 -krat na sekundo. Torej, ko je spremenljivka "LED" vklopljena, se intenzivnost poveča 244 -krat na sekundo, ko pa je izklopljena, se zmanjša 244 -krat na sekundo. Toda povečanje poteka v posameznih korakih, pri čemer je zmanjšanje v korakih 16, kar pomeni, da se, ko je budilka, upajmo, opravila svoje delo, izklopi 16 -krat hitreje, vendar še vedno gladko.
Gladkost in izven spomina
Gladkost izhaja iz izračuna krivulje Sigmoid. Izračun je precej preprost, vendar ga je treba opraviti v spremenljivkah s plavajočo vejico (podvoji) zaradi funkcije exp (), glej datoteko sigmoid.c.
V standardnem primeru prevajalnik / povezovalec Cosmic nima podpore za spremenljivke s plavajočo vejico. Vklop je enostaven (ko ga najdete), vendar pride s povečanjem velikosti kode. To povečanje je bilo preveč, da bi se koda prilegala pomnilniku flash v kombinaciji s funkcijo sprintf (). Ta funkcija je potrebna za pretvorbo številk v besedilo za prikaz.
Itoa ()
Za odpravo te težave sem ustvaril funkcijo itoa (). To je funkcija Integer To Ascii, ki je precej pogosta, vendar ni vključena v standardno knjižnico STMicroelectronics niti v knjižnice Cosmic.
7. korak: IKEA (kaj bi brez njih)
Slika je bila kupljena pri IKEA. To je okvir Ribba 50 x 40 cm. Ta okvir je precej debel, zato je odličen za skrivanje elektronike. Namesto plakata ali slike sem dal kos perforiranega lesa. Lahko ga kupite v trgovini s strojno opremo, kjer ga včasih imenujejo "posteljna deska". V njem so majhne luknjice, zaradi česar je idealen za vgradnjo LED diod. Na žalost so bile luknje na moji plošči nekoliko večje od 5 mm, zato sem moral za vgradnjo LED vroče lepilo.
Naredil sem pravokotno luknjo na sredini trde plošče za zaslon 16x2 in jo pritisnil. PCB z vso elektroniko visi na tem zaslonu, ni pritrjen na nič drugega.
Perforirana lesena plošča je bila pobarvana s črno barvo, vendar znotraj za preprogo. V okvirju sem izvrtal dve luknji za nastavitev časa in datuma, ker je okvir precej debel, sem moral razširiti luknje na notranji strani okvirja, da so gumbi dovolj štrleli.
Priporočena:
Stroj za bujenje: 4 koraki
Wake Up Machine: Razlog, da sem ustvaril ta stroj, je, da bi se zjutraj, ko bi se zbudil ob alarmu, zlahka zaspal, če ne bi nosil kozarca, alarm pa bi se zlahka zaprl s pritiskom na gumb. Zato sem naredil ta stroj, ki bi lahko uporabljal
Samodejni snežni bujenje: 6 korakov (s slikami)
Samodejni snežni klic: Zjutraj izhod iz hiše je lahko naporna dejavnost, potem ko se nekaj centimetrov bele stvari čez noč usede. Ali ne bi bilo lepo, če bi se v teh dneh zbudili malo prej, da bi zjutraj odstranili stres? Ta projektni srn
Enostavno bujenje: pametna lučka za bujenje z Raspberry Pi: 6 korakov
Enostavno bujenje: pametna lučka za bujenje, narejena z Raspberry Pi: Uvod Za projekt kurikuluma1 sem moral nekaj narediti. Vedno sem bil navdušen nad tem, kako vam bo luč za bujenje koristila, ko se zbudite, tako kot tiste iz Philipsa, zato sem se odločil, da naredim lučko za bujenje. Luč za bujenje sem naredil z Raspberrom
Okno za bujenje: 4 koraki
Okno za bujenje: Mnogi ljudje imajo težave z jutranjim vstajanjem iz postelje. Pogosto se zbudi nadležen zvok budilke. S tem navodilom vam želim pokazati, kako lahko naredite ponarejeno okno, s katerim bi lahko prebujanje postalo nekoliko lažje
Intimna video luč/ ročna fotografska luč .: 7 korakov (s slikami)
Intimna video luč/ ročna fotografska luč. Vem, kaj mislite. Z " intimno " Mislil sem od blizu na razsvetljavo v težkih svetlobnih razmerah-ne nujno za " intimne situacije " (Vendar se lahko uporabi tudi za to …) Kot snemalec v New Yorku-ali