Talaan ng mga Nilalaman:

Wakeup Light: 7 Hakbang (na may Mga Larawan)
Wakeup Light: 7 Hakbang (na may Mga Larawan)

Video: Wakeup Light: 7 Hakbang (na may Mga Larawan)

Video: Wakeup Light: 7 Hakbang (na may Mga Larawan)
Video: 187 MOBSTAZ - WE DONT DIE WE MULTIPLY (WDDWM) Official Music Video 2024, Disyembre
Anonim
Gumising ng Liwanag
Gumising ng Liwanag

Habang sinusulat ko ang itinuturo na ito ay kalagitnaan ng taglamig sa Hilagang hemisphere at nangangahulugan ito ng maikling araw at mahabang gabi. Sanay na akong bumangon ng 06:00 at sa Tag-araw ang araw ay sisikat na. Gayunpaman, sa Taglamig, magaan ang ilaw sa 09:00 kung mapalad tayo na magkaroon ng isang araw na hindi maulap (na kung saan ay … hindi madalas).

Ilang oras ang nakakaraan nabasa ko ang tungkol sa isang "ilaw ng gising" na ginawa ng Philips na ginamit sa Norway upang gayahin ang isang maaraw na umaga. Hindi ako bumili ng isa, ngunit patuloy kong iniisip ang tungkol sa paggawa ng isa sapagkat ang paggawa ng isa sa iyong sarili ay mas masaya kaysa sa pagbili lamang nito.

Mga Pantustos:

Larawan frame na "Ribba" 50 x 40 cm mula sa IKEA

butas-butas na hardboard mula sa tindahan ng hardware

Ang STM8S103 development board sa pamamagitan ng Ebay o iba pa

DS1307 Real Time Clock (Mouser, Farnell, Conrad, atbp)

32768 Hz kristal na panonood (Mouser, Farnell, Conrad, atbp)

3V lithium nagkatugma + magkasunod na may-ari

BUZ11 o IRLZ34N N-channel MOSFETs (3x)

BC549 (o anumang iba pang NPN transistor)

maraming mga puti, pula, asul, berde, atbp na mga leds ayon sa gusto mo

ilang mga resistors at capacitor (tingnan ang eskematiko)

Powerbrick, 12V hanggang 20V, 3A o higit pa (hal. Old laptop powerupply)

Hakbang 1: Ginagawang Mas Madaling Gumawa (Isang Maliit)

Ginagawang Mas Madaling Gumawa (Isang Maliit)
Ginagawang Mas Madaling Gumawa (Isang Maliit)

Ang ideya ay mahirap makawala sa kama sa umaga kung madilim pa. At kung nakatira ka malapit o kahit na sa itaas ng bilog ng arctic ito ay madilim na napakahaba. Sa mga lugar bilang Tromsö sa Noruwega ay hindi ito makakagaan ng ilaw dahil doon lumubog ang araw kalahating Nobyembre lamang upang muling lumitaw sa kalagitnaan ng Enero.

Kaya ang ginawa ng Philips ay gayahin ang pagsikat ng araw.

Dahan-dahang pinatataas ng Philips ang ningning ng isang lampara, na marahil ay gawa sa maraming mga leds ngunit nakatago sa likod ng isang solong diffuser. Ang kanilang oras mula sa hanggang sa buong ningning ay tumatagal ng 30 minuto.

Ang mga ilaw ng Philips wakeup ay hindi ganon kamahal ngunit mayroon itong isang solong kulay at mukhang maliit ito. Sa palagay ko mas makakagawa ako ng mas mahusay.

Hakbang 2: Higit pang Kulay

Marami pang Kulay
Marami pang Kulay

Gumagamit ang aking ilaw ng paggising ng apat na kulay, puti, pula, asul at berde. Unahin ang mga puting leds, pagkatapos ay darating ang mga pula, at magtatagal ng ilang asul at berdeng mga leds. Ang aking ideya ay maaari kong gayahin hindi lamang ang pagdaragdag ng ningning ngunit ang paglilipat din ng kulay na ilaw ng umaga, sa pamamagitan ng pagsisimula ng kaunting puti, pagdaragdag ng pula ng kaunti kalaunan at paghahalo ng asul at berde sa huli. Hindi ako sigurado na talaga itong kahawig ng aktwal na ilaw sa umaga, ngunit gusto ko ang makulay na display tulad ng ngayon.

Ang minahan ay mas mabilis din kaysa sa Philips wakeup light, sa halip na 30 minuto ng ilaw ng Philips, ang minahan ay 0% hanggang 100% na ningning sa mas mababa sa 5 minuto. Kaya't ang aking araw ay sumisikat ng mas mabilis.

TANDAAN:

Napakahirap gawin ang mga larawan ng aking paggising na ilaw, sinubukan ko gamit ang maraming mga camera at smartphone ngunit lahat ng mga larawang ginawa ko ay hindi gumagawa ng totoong bagay na hustisya.

Hakbang 3: Sigmoid Curve, Flickering at "resolusyon"

Sigmoid Curve, Flickering at
Sigmoid Curve, Flickering at

Siyempre nais kong gawing makinis ang maliwanag hangga't maaari. Ang mga mata ng tao ay logarithmic sa pagiging sensitibo, nangangahulugan na sa kabuuang kadiliman mas sensitibo sila kaysa sa buong liwanag ng araw. Ang isang napakaliit na pagtaas ng ningning kapag ang mga antas ay mababa "nararamdaman" katulad ng isang mas malaking hakbang kung ang ilaw ay sinasabi na 40% na ningning. Upang makamit ito, gumamit ako ng isang espesyal na kurba na tinatawag na Sigmoid (o S-curve) na nagsisimula ang curve na ito bilang isang exponential curve na humigit-kumulang na mga antas ng off muli. Natagpuan ko na ito ay isang napakagandang paraan ng pagtaas (at pagbawas) ng tindi.

Ang dalas ng orasan ng microcontroller (at ang mga timer) ay 16 MHzand Ginagamit ko ang maximum na resolusyon ng TIMER2 (65536) upang lumikha ng tatlong mga signal ng lapad ng pulso (PWM). Samakatuwid ang mga pulso ay dumating 16000000/65536 = 244 beses bawat segundo. Iyon ay malayo sa itaas ng limitasyon ng mga mata upang makita ang anumang kumikislap.

Kaya't ang mga leds ay pinakain ng isang signal ng PWM na ginawa gamit ang 16 bittimer ng STM8S103 microcontroller. Sa pinakamaliit na signal ng PWM na ito ay maaaring maging ON ay 1 haba ng pulso at ang natitirang 65535 pulse haba ng off.

Kaya't ang mga leds na konektado sa signal ng PM ay magiging ON 1/65536-th ng oras: 0.0015%

Sa maximum sila ay SA 65536/65536-ika ng oras: 100%.

Hakbang 4: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Microcontroller

Ang utak ng ilaw ng paggising ay isang STM8S103 microcontroller mula sa STMicroelectronics. Gusto kong gumamit ng mga bahagi na may sapat na mga kakayahan para sa isang trabaho. Para sa isang simpleng gawain dahil hindi ito kinakailangan upang gumamit ng mga microcontroller ng STM32 (aking iba pang mga paborito) ngunit ang isang Arduino UNO ay hindi sapat dahil nais ko ng tatlong mga signal ng PWM na may 16 bit na resolusyon at walang timer na may tatlong mga output channel sa isang UNO.

Realtime Clock

Ang oras ay nabasa mula sa isang DS1307 real time na orasan na gumagana sa isang 32768 Hz na kristal at may 3V backup na baterya.

Ang pagtatakda ng kasalukuyang oras, araw at oras ng paggising ay tapos na may dalawang mga pindutan at ipinapakita ng isang 16 x 2 LCD character display. Upang mapanatiling madilim ang aking silid sa gabi, ang backlight ng display ng LCD ay nakabukas lamang kapag ang mga leds ay mas maliwanag kaysa sa backlight at kapag itinatakda mo ang oras, araw at oras ng paggising.

Lakas

Ang lakas ay nagmula sa isang lumang laptop power supply, ang minahan ay gumagawa ng 12V at maaaring maghatid ng 3A. Kapag mayroon kang ibang suplay ng kuryente maaaring kinakailangan upang ayusin ang mga resistors sa serye gamit ang mga led-string. (Tingnan sa ibaba)

Mga Leds

Ang mga leds ay konektado sa supply ng 12V, ang natitirang mga electronicsworks sa 5V na ginawa gamit ang isang 7805 linear regulator. Sa eskematiko sinabi nito na gumagamit ako ng isang TO220 regulator, na hindi kinakailangan bilang microcontroller, display at real time na paggamit ng ilang milliamp lamang. Gumagamit ang aking orasan ng isang mas maliit na bersyon ng TO92 ng 7805 na may kakayahang magbigay ng 150mA.

Ang paglipat ng mga led-string ay tapos na sa mga N-channel MOSFET. Muli, sa eskematiko nagpapakita ito ng iba pang mga aparato kaysa sa ginamit ko. Nagkataon na mayroon akong eksaktong tatlong napakatandang BUZ11 MOSFET sa halip na ang mas bagong mga IRLZ34N MOSFET. Mabuti ang trabaho nila

Siyempre maaari kang maglagay ng maraming mga leds hangga't gusto mo, hangga't ang MOSFETs at ang powerupply ay maaaring hawakan ang kasalukuyang. Sa eskematiko na iginuhit ko ang isang string lamang ng anumang kulay, sa katunayan maraming mga bawat kulay na kahilera sa iba pang mga string ng kulay na iyon.

Hakbang 5: Mga Resistor (para sa Leds)

Mga Resistor (para sa Leds)
Mga Resistor (para sa Leds)

Tungkol sa mga resistors sa humantong mga string. Ang mga puti at asul na leds ay karaniwang may boltahe na 2.8V sa kanila kapag nasa ganap na ningning ang mga ito.

Ang mga red leds ay may 1.8V lamang, ang aking mga berdeng leds ay may 2V sa kanila sa ganap na ningning.

Ang isa pang bagay ay ang kanilang buong ningning ay hindi pareho. Kaya't tumagal ng ilang eksperimento upang gawing pantay ang ilaw ng mga ito (sa aking mga mata). Sa pamamagitan ng paggawa ng pantay na maliwanag ng mga leds sa buong ningning, magkakaroon din sila ng hitsura ng pantay na maliwanag sa mas mababang mga antas, ang signal ng lapad ng pulso ay laging binubuksan ang mga ito sa buong brighness ngunit sa mas mahaba at mas maikli na oras, alagaan ng iyong mga mata ang average.

Magsimula sa isang pagkalkula tulad nito. Ang power supply ay naghahatid (sa aking kaso) 12V.

Ang apat na puting leds sa serye ay nangangailangan ng 4 x 2.8V = 11.2V, umalis ito ng 0.8V para sa risistor.

Nalaman ko na ang mga ito ay sapat na maliwanag sa 30mA kaya ang risistor ay dapat na:

0.8 / 0.03 = 26.6 ohm Sa eskematiko nakikita mo na inilalagay ko sa isang 22 ohm risistor, na ginagawang mas maliwanag ang mga leds.

Ang mga asul na leds ay masyadong maliwanag sa 30mA, ngunit kumpara sa maganda sa mga puting leds sa 15 mA, mayroon din silang 2.8V sa kanila sa 15mA kaya't ang pagkalkula ay 4 x 2.8V = 11.2V na muling iniiwan ang 0.8V

0.8 / 0.015 = 53.3 ohm kaya pumili ako ng 47 ohm resistor.

Ang aking mga red leds ay kailangan din ng ilang 15 mA te na pantay na maliwanag tulad ng iba, ngunit mayroon lamang silang 1.8V sa kanila sa kasalukuyang ito. Kaya't maaari akong maglagay ng higit pa sa serye at mayroon pa ring "silid" para sa risistor.

Anim na red leds ang nagbigay sa akin ng 6 x 1.8 = 10.8V, kaya higit sa resistor ay 12 - 10.8 = 1.2V

1.2 / 0.015 = 80 ohm, ginawa ko itong 68 ohm. Tulad ng iba, medyo maliit na mas maliwanag.

Ang mga berdeng leds na ginamit ko ay kasing-ilaw ng iba sa mga 20mA. Kailangan ko lamang ng ilang (tulad ng mga asul) at pinili kong maglagay ng apat sa serye. Sa 20mA mayroon silang 2, 1V sa kanila, na nagbibigay ng 3 x 2.1 = 8.4V

12 - 8.4 = 3.6V para sa risistor. At 3.6 / 0.02 = 180 ohm.

Kung itatayo mo ang ilaw ng paggising na ito ay malamang na hindi ka magkaroon ng parehong supply ng kuryente, kakailanganin mong ayusin ang bilang ng mga leds sa serye at mga resistors na kinakailangan.

Isang maliit na halimbawa. Sabihin na mayroon kang isang powerupply na nagbibigay sa 20V. Mas pipiliin kong itakda ang 6 na asul (at puti) na mga leds sa serye, 6 x 3V = 18V kaya 2V para sa risistor. At sasabihin nating gusto mo ang ningning sa 40mA. Ang risistor pagkatapos ay kailangang maging 2V / 0.04 = 50 ohm, ang isang 47 ohm risistor ay magiging maayos.

Pinapayuhan ko na huwag pumunta sa anumang mas mataas sa 50mA na may ordinaryong (5mm) leds. Ang ilan ay maaaring hawakan ang higit pa, ngunit nais kong maging sa ligtas na bahagi.

Hakbang 6: Software

Maaaring ma-download ang lahat ng code mula sa:

gitlab.com/WilkoL/wakeup_light_stm8s103

panatilihing bukas ang source code, sa tabi ng natitirang tagubilin na ito kung nais mong sundin ang paliwanag.

Pangunahin.c

Ang Main.c ay unang nagtatakda ng orasan, timer at iba pang mga peripheral. Karamihan sa mga "driver" ay isinulat ko gamit ang Standard Library mula sa STMicroelectronics at kung mayroon kang anumang mga katanungan tungkol sa kanila, isulat ito sa isang puna sa ibaba ng itinuturo.

Eeprom

Iniwan ko ang code na "teksto upang ipakita" na ginamit ko upang maglagay ng mga teksto sa eeprom ng STM8S103 bilang mga komento. Hindi ako sigurado na mayroon akong sapat na memorya ng flash para sa lahat ng aking code kaya sinubukan kong ilagay hangga't maaari sa eeprom upang magkaroon ng lahat ng flash para sa programa. Sa huli pinatunayan na hindi kinakailangan at inilipat ko ang teksto sa flash. Ngunit iniwan ko ito bilang nagkomento ng teksto sa main.c file. Masarap na magkaroon nito, kapag kailangan kong gumawa ng katulad na bagay sa paglaon (sa ibang proyekto)

Ginagamit pa rin ang eeprom, ngunit para lamang sa pagtatago ng oras ng paggising.

Minsan sa isang segundo

Matapos i-set up ang mga peripheral susuriin ng code kung ang isang segundo ay lumipas (tapos na sa isang timer).

Menu

Kung iyon ang kaso suriin nito kung ang isang pindutan ay pinindot, kung gayon pumapasok ito sa menu kung saan maaari mong itakda ang kasalukuyang oras, ang araw ng linggo at ang oras ng paggising. Tandaan na tatagal ng humigit-kumulang 5 minuto upang umalis mula sa ganap na ningning, kaya't itakda nang mas maaga ang oras ng paggising.

Ang oras ng paggising ay nakaimbak sa eeprom upang kahit na matapos ang isang pagkawala ng kuryente ay "malalaman" nito kung gisingin ka. Ang kasalukuyang oras ay naka-imbak sa real time na orasan syempre.

Paghahambing sa kasalukuyang oras at paggising

Kapag walang pinindot na pindutan sinusuri nito ang kasalukuyang oras at inihambing ito sa oras ng paggising at araw ng linggo. Ayokong gisingin ako nito sa katapusan ng linggo:-)

Karamihan sa mga oras ay walang kailangang gawin kaya itinakda nito ang variable na "leds" sa OFF na iba pa sa ON. Ang variable na ito ay nasuri kasama ang signal na "change_intensity", na nagmumula rin sa isang timer at aktibo nang 244 beses bawat segundo. Kaya't kapag ang variable na "leds" ay ON ang tindi ay nadagdagan ng 244 beses bawat segundo at kapag NAKA-OFF ay bumababa ng 244 beses bawat segundo. Ngunit ang pagtaas ay napupunta sa mga solong hakbang kung saan ang pagbawas ay nasa mga hakbang ng 16 na nangangahulugang kapag ang ilaw ng paggising ay inaasahan na nagawa ang trabaho nito, naka-off ito ng 16 beses na mas mabilis ngunit maayos pa rin.

Smoothness at OUT OF MEMORY

Ang kinis ay nagmula sa pagkalkula ng kurso ng Sigmoid. Ang pagkalkula ay medyo simple ngunit kailangan itong gawin sa mga lumulutang variable point (doble) dahil sa exp () na pag-andar, tingnan ang file na sigmoid.c.

Sa karaniwang sitwasyon ang Cosmic compiler / linker ay walang suporta para sa mga variable na lumulutang na punto. Ang paglipat nito ay madali (kapag nahanap mo na ito) ngunit may pagtaas sa laki ng code. Ang pagtaas na ito ay labis upang gawing fit ang code sa flash memory kapag isinama sa pagpapaandar ng sprintf (). At ang pagpapaandar na iyon ay kinakailangan para sa pag-convert ng mga numero sa teksto para sa display.

Itoa ()

Upang malunasan ang problemang ito nilikha ko ang pagpapaandar ng itoa (). Ito ay isang pagpapaandar na Integer To Ascii na karaniwan, ngunit hindi kasama sa pamantayang aklatan ng STMicroelectronics, ni sa mga aklatan ng Cosmic.

Hakbang 7: IKEA (Ano ang Gagawin Namin Nang Wala Sila)

IKEA (Ano ang Gagawin Namin Nang Wala Sila)
IKEA (Ano ang Gagawin Namin Nang Wala Sila)
IKEA (Ano ang Gagawin Namin Nang Wala Sila)
IKEA (Ano ang Gagawin Namin Nang Wala Sila)
IKEA (Ano ang Gagawin Namin Nang Wala Sila)
IKEA (Ano ang Gagawin Namin Nang Wala Sila)

Ang larawan mula sa ay binili mula sa IKEA. Ito ay isang frame ng Ribba na 50 x 40cm. Ang frame na ito ay medyo makapal at na ginagawang mahusay para sa pagtatago ng mga electronics sa likuran nito. Sa halip na isang poster o larawan ay naglagay ako sa isang piraso ng butas na hardboard. Maaari mo itong bilhin sa tindahan ng hardware kung saan minsan ito ay tinatawag na "bed board" Mayroon itong maliit na butas dito na naging perpekto para sa paglalagay ng mga leds. Sa kasamaang palad ang mga butas sa aking board ay medyo mas malaki kaysa sa 5 mm kaya kailangan kong gumamit ng hot-glue upang "i-mount" ang mga leds.

Gumawa ako ng isang hugis-parihaba na butas sa gitna ng hard board para sa display na 16x2 at pinindot ito. Ang PCB na may lahat ng electronics na nakabitin sa display na ito, hindi ito naka-mount sa anupaman.

Ang butas na hardboard ay spray na pininturahan ng itim at ngunit sa likod ng banig. Nag-drill ako ng dalawang butas sa frame para sa mga pindutan upang maitakda ang oras at petsa, dahil ang frame ay mas makapal kailangan kong palawakin ang mga butas sa loob ng frame upang gawin ang mga pindutan na dumikit nang sapat.

Inirerekumendang: