Orodha ya maudhui:

Jiwe LCD Pamoja na Smart Home: 5 Hatua
Jiwe LCD Pamoja na Smart Home: 5 Hatua

Video: Jiwe LCD Pamoja na Smart Home: 5 Hatua

Video: Jiwe LCD Pamoja na Smart Home: 5 Hatua
Video: Inside One of the Best Architectural Homes in Southern California 2024, Juni
Anonim
Jiwe LCD Pamoja na Smart Home
Jiwe LCD Pamoja na Smart Home

Leo, nimepata onyesho la gari la bandari la STONE, ambalo linaweza kuwasiliana kupitia bandari ya serial ya MCU, na muundo wa mantiki ya UI wa onyesho hili unaweza kutengenezwa moja kwa moja kwa kutumia programu ya VGUS iliyotolewa kwenye wavuti rasmi ya STONE, ambayo ni rahisi sana kwetu. Kwa hivyo nina mpango wa kuitumia kutengeneza kidhibiti rahisi cha vifaa, ambayo ni pamoja na udhibiti wa taa anuwai (sebule, jikoni, chumba cha watoto, bafuni). Wakati huo huo, joto la ndani na nje, unyevu, na ubora wa hewa zinaweza kukusanywa. Hili ni onyesho rahisi tu, na unaweza kufanya maendeleo ya sekondari kupitia nambari niliyotoa. Mafunzo kadhaa ya kimsingi kuhusu skrini ya JIWE yanaweza kwenda kwenye wavuti:

Tovuti ina habari anuwai juu ya mfano, nyaraka za mtumiaji, na muundo, na pia mafunzo ya video. Sitakwenda kwa undani sana hapa.

Hatua ya 1: Uundaji wa Kiolesura cha UI

Ubunifu wa Uso wa UI
Ubunifu wa Uso wa UI
Ubunifu wa Uso wa UI
Ubunifu wa Uso wa UI
Ubunifu wa Kiolesura cha UI
Ubunifu wa Kiolesura cha UI
Ubunifu wa Uso wa UI
Ubunifu wa Uso wa UI

Picha

Nimeunda kurasa mbili zifuatazo za UI na picha ya picha:

Mradi huu una kurasa mbili zilizo hapo juu kwa jumla. "Mwanga" na "Sensor" kwenye kona ya juu kulia ni vitufe vya ubadilishaji wa kurasa hizi mbili.

Katika ukurasa wa "Mwanga", unaweza kudhibiti kila aina ya taa nyumbani kwako. Katika ukurasa wa "Sensor", unaweza kuangalia maadili yaliyogunduliwa na sensorer anuwai.

Baada ya muundo wa kurasa mbili zilizo hapo juu, tunaweza kufanya muundo wa mantiki ya kitufe kupitia programu ya JIWE la KIJITO lililotolewa kwenye wavuti rasmi ya JIWE.

Ikumbukwe kwamba chanzo cha saa kinachotumiwa kwa onyesho la wakati hapa ni chanzo cha saa ya skrini ya kuonyesha, sio chanzo cha saa ya MCU.

Athari ya kubadilisha ukurasa wa TAB

Hakuna sehemu ya kubadilisha ukurasa wa TAB iliyopatikana katika programu ya STONE TOOL, kwa hivyo nilifikiria njia nyingine ya kufikia athari ya ubadilishaji wa ukurasa wa TAB.

Kupitia uchunguzi mimi hutoa picha mbili za UI zinaweza kupatikana kuwa picha mbili hapo juu ni maandishi ya "Nuru" na "Sensor", tofauti ni saizi yao ya saizi ni tofauti, kwa hivyo tunahitaji tu kuweka msimamo wa pikseli mbili umewekwa kwa maandishi sawa, na kisha kupitia kona ya juu kushoto ya wakati na tarehe ya kumbukumbu, unaweza kufikia TAB kubadili athari.

Mantiki ya kitufe

Chukua kitufe cha "Sebule" kama mfano. Mtumiaji anapobofya kitufe hiki, skrini ya kuonyesha jiwe la bandari la Jiwe litatuma maagizo ya itifaki inayolingana kupitia bandari ya serial. Baada ya kupokea maagizo haya, MCU ya mtumiaji itachanganua itifaki kudhibiti hali ya taa inayounganishwa na MCU.

Upataji wa sensorer

Chukua "ubora wa hewa" kwa mfano: ikiwa unataka kupata ubora wa hewa ya ndani, lazima tuwe na MCU kukusanya ubora wa hewa, sensa ya ubora wa hewa wakati nambari ya MCU ilikusanywa kupitia hesabu ikilinganisha faida na hasara za ubora wa hewa, na kisha MCU ilitumwa kupitia bandari ya serial kuonyesha eneo la uhifadhi wa "Mzuri" au "Mbaya", kubadilisha "Matini ya kutofautisha0" yaliyomo kwenye onyesho, na kisha mtumiaji anaweza kuona kwa usawa sifa za udhibiti wa ubora. Hizi zinaelezewa baadaye katika nambari ya MCU.

Hatua ya 2: Mawasiliano ya MCU

Mawasiliano ya MCU
Mawasiliano ya MCU
Mawasiliano ya MCU
Mawasiliano ya MCU
Mawasiliano ya MCU
Mawasiliano ya MCU
Mawasiliano ya MCU
Mawasiliano ya MCU

STM32 ni MCU ambayo kila mtu anaifahamu, na ni mfano wa kawaida wa MCU katika kimataifa. Kwa hivyo, mfano maalum wa STM32 MCU niliyotumia katika mradi huu ni STM32F103RCT6.

Kuna safu nyingi za STM32, ambazo zinaweza kukidhi mahitaji anuwai ya soko. Kernel inaweza kugawanywa katika gamba-m0, M3, M4, na M7, na kila kernel inaweza kugawanywa katika utendaji wa hali ya juu, wa hali ya juu, na matumizi ya chini ya nguvu.

Kwa mtazamo wa ujifunzaji, unaweza kuchagua F1 na F4, F1 inawakilisha aina ya msingi, kulingana na kernel ya gamba-m3, masafa kuu ni 72MHZ, F4 inawakilisha utendaji wa juu, kulingana na kernel ya gamba-m4, kuu mzunguko ni 180M.

Kwa F1, F4 (safu 429 na hapo juu), mbali na punje tofauti na uboreshaji wa masafa kuu, sifa dhahiri ya uboreshaji ni mtawala wa LCD na kiunga cha kamera, msaada wa SDRAM, tofauti hii itapewa kipaumbele katika uteuzi wa mradi. Walakini, kwa mtazamo wa ufundishaji wa chuo kikuu na ujifunzaji wa awali wa watumiaji, safu ya F1 bado ni chaguo la kwanza. Hivi sasa, STM32 ya safu ya F1 ina idadi kubwa ya vifaa na bidhaa kwenye soko.

Kuhusu usanidi wa mazingira ya maendeleo ya STM32 SCM na njia ya kupakua programu, sitafanya utangulizi.

Uanzishaji wa GPIO

Katika mradi huu, tulitumia jumla ya 4 GPIO, moja ambayo ni pini ya pato ya PWM. Wacha tuangalie uanzishaji wa bandari tatu za kawaida za GPIO:

Kazi hii inaanzisha PB0 / PB1 / PB2 ya STM32F103C8 kama pini ya pato na inaiita kutoka kwa kazi kuu. Baada ya kuanza, tunahitaji kuwa na mantiki kudhibiti hali ya pato, kiwango cha juu na cha chini cha GPIO hii, kwa hivyo niliandika kazi kama ilivyo hapo chini:

Hii ni kazi ambayo unaweza kuelewa kwa intuitively kwa jina la kutofautisha.

Uanzishaji wa bandari ya serial

Sehemu ya uanzishaji wa bandari ya serial iko kwenye uart.c:

Kisha piga simu uart_init katika kazi kuu ili kuanzisha kiwango cha baud cha bandari cha 115200. Pini tumia PA9 / PA10

Uanzishaji wa PWM

Hatua maalum:

1. Weka saa ya RCC;

2. Weka saa ya GPIO, Modi ya GPIO inapaswa kuwekwa kwa GPIO_Model_AF_PP, au kwa kazi ya GPIO_PinRemapConfig () ikiwa urekebishaji wa pini unahitajika.

3. Weka rejista zinazofaa za kipima muda cha TIMx;

4. Weka rejista inayohusiana na PWM ya kipima muda cha TIMx;

A. Weka hali ya PWM

B. Weka mzunguko wa ushuru (hesabu ya fomula)

C. Weka polarity ya kulinganisha pato (iliyoletwa hapo awali)

D. La muhimu zaidi, wezesha hali ya pato la TIMx na uwezesha pato la PWM la TIMx; Baada ya Mipangilio husika kukamilika, kipima muda cha TIMx kimewashwa na TIMx_Cmd () kupata pato la PWM. Piga simu hii TIM3_PWM_Init kutoka kwa kazi kuu.

Hatua ya 3: Uandishi wa Nambari ya Mantiki

Uandishi wa Kanuni za Mantiki
Uandishi wa Kanuni za Mantiki
Uandishi wa Kanuni za Mantiki
Uandishi wa Kanuni za Mantiki
Uandishi wa Kanuni za Mantiki
Uandishi wa Kanuni za Mantiki

Onyesha ufafanuzi wa anwani ya sehemu

Vipengele vya onyesho vina anwani tofauti, na hapa nimeziandika zote kama ufafanuzi wa jumla: Upokeaji wa data ya serial

Kuangalia habari juu ya onyesho la JIWE, unaweza kuona kwamba kitufe kinapobanwa, bandari ya serial kwenye onyesho hutuma itifaki katika muundo unaofaa, ambao mtumiaji wa MCU anaweza kupokea na kukagua. Wakati kitufe kinabanwa, bandari ya serial kwenye onyesho hutuma kaiti tisa za data, pamoja na data ya mtumiaji. Upokeaji wa data ya serial umeandikwa katika Handler: Takwimu zilizopokelewa zinahifadhiwa katika safu ya "USART_RX_BUF". Katika mradi huu, urefu wa kupokea umewekwa. Wakati urefu wa kupokea ni zaidi ya ka 9, mwisho wa kupokea huhukumiwa.

Dhibiti hali ya taa

Katika kazi kuu, niliandika nambari fulani ya mantiki kudhibiti hali ya ubadilishaji wa taa: Kama tunaweza kuona, nambari kwanza huamua ikiwa data ya bandari ya serial imepokelewa, na wakati data ya bandari ya serial inapokelewa, huamua kitufe cha mtumiaji mashinikizo kwenye skrini ya kuonyesha. Vifungo anuwai kwenye onyesho vina anwani tofauti, ambazo zinaweza kuonekana kwenye programu ya JIWE LA KITUO: Mtumiaji anapobonyeza kitufe cha "Sebule", kitita cha nne na cha tano cha data iliyotumwa na bandari ya serial ya skrini ya kuonyesha ni anwani ya kitufe. Kwa kuwa kitufe cha nne cha vifungo vyote vilivyowekwa hapa ni 0x00, tunaweza kuhukumu kitufe ambacho mtumiaji anashinikiza kwa kuhukumu moja kwa moja data ya kidogo ya tano. Baada ya kupata kitufe kilichobanwa na mtumiaji, tunahitaji kuhukumu data ya mtumiaji iliyopokelewa wakati kitufe kinabanwa, ambayo ni nambari ya nane ya data iliyotumwa kutoka skrini ya kuonyesha. Kwa hivyo, tunafanya udhibiti ufuatao: andika parameta ya anwani ya kitufe na data ya mtumiaji kwenye kazi ya "Light_Contral" kudhibiti hali ya taa. Taasisi ya kazi ya Light_Contral ni kama ifuatavyo: Kama unaweza kuona, ikiwa anwani ya kitufe ni "Sebule" na data ya mtumiaji ni "LightOn", basi pini ya PB0 ya MCU imewekwa kwenye kiwango cha juu, na taa imewashwa. Vifungo vingine vitatu vinafanana, lakini sitaendelea hapa.

Pato la PWM

Katika UI iliyoundwa na mimi, kuna mdhibiti wa kuteleza, ambayo hutumiwa kudhibiti mwangaza wa nuru ya "Chumba cha watoto". MCU inatekelezwa na PWM. PWM pini ya pato ni PB5. Nambari ni kama ifuatavyo: Kiboreshaji cha kuteleza kimewekwa kwa kiwango cha chini cha 0x00 na kiwango cha juu cha 0x64. Wakati wa kuteleza, bandari ya serial ya skrini ya kuonyesha pia itatuma anwani na data husika, na kisha weka uwiano wa ushuru wa pato la PWM kwa kupiga kazi ifuatayo:

Hatua ya 4: Upataji wa Sensorer

Upataji wa Sensorer
Upataji wa Sensorer
Upataji wa Sensorer
Upataji wa Sensorer
Upataji wa Sensorer
Upataji wa Sensorer

Katika ukurasa wa "Sensor" ya skrini ya kuonyesha, kuna data nne za Sensorer.

Takwimu pia zina anwani ya uhifadhi kwenye onyesho, na tunaweza kubadilisha yaliyomo kwa kuandika data kwa anwani hizi kupitia bandari ya MCU.

Hapa nilifanya utekelezaji rahisi wa nambari:

Data ya kuonyesha inasasishwa kila sekunde 5, na niliandika tu onyesho rahisi la kazi inayofaa ya ukusanyaji wa sensa, kwa sababu sina sensorer hizi mkononi mwangu.

Katika maendeleo halisi ya mradi, sensorer hizi zinaweza kuwa data iliyokusanywa na ADC, au data iliyokusanywa na IIC, UART, na miingiliano ya mawasiliano ya SPI. Unachohitaji kufanya ni kuandika data hizi kwenye kazi inayofanana kama dhamana ya kurudi.

Hatua ya 5: Athari halisi ya Uendeshaji

Ilipendekeza: