Satura rādītājs:

STONE LCD ar viedo māju: 5 soļi
STONE LCD ar viedo māju: 5 soļi

Video: STONE LCD ar viedo māju: 5 soļi

Video: STONE LCD ar viedo māju: 5 soļi
Video: 5 Способов монтажа ламината на стену. Разбираем от А до Я. Выбираем самый лучший 2024, Jūlijs
Anonim
STONE LCD ar viedo māju
STONE LCD ar viedo māju

Šodien es saņēmu STONE seriālā porta diska displeju, kas var sazināties, izmantojot MCU seriālo portu, un šī displeja lietotāja saskarnes loģisko dizainu var izveidot tieši, izmantojot VGUS programmatūru, kas ir pieejama STONE oficiālajā tīmekļa vietnē, kas mums ir ļoti ērti. Tāpēc es plānoju to izmantot, lai izveidotu vienkāršu ierīces kontrolieri, kurā ietilpst dažādu gaismu vadība (dzīvojamā istaba, virtuve, bērnu istaba, vannas istaba). Tajā pašā laikā var savākt iekštelpu un āra temperatūru, mitrumu un gaisa kvalitāti. Šī ir tikai vienkārša demonstrācija, un jūs varat veikt sekundāro attīstību, izmantojot manu sniegto kodu. Dažas pamata apmācības par STONE ekrānu var apmeklēt vietnē:

Tīmekļa vietnē ir dažāda informācija par modeli, lietotāju un dizaina dokumentāciju, kā arī video pamācības. Šeit es pārāk neiedziļināšos detaļās.

1. darbība: lietotāja saskarnes dizains

UI interfeisa dizains
UI interfeisa dizains
UI interfeisa dizains
UI interfeisa dizains
UI interfeisa dizains
UI interfeisa dizains
UI interfeisa dizains
UI interfeisa dizains

Photoshop

Es izveidoju šādas divas lietotāja interfeisa lapas ar Photoshop:

Šim projektam kopumā ir divas iepriekš minētās lapas. "Gaisma" un "Sensors" augšējā labajā stūrī ir šo divu lapu pārslēgšanas pogas.

Lapā "Gaisma" jūs varat kontrolēt visu veidu gaismas savā mājā. Lapā "Sensors" varat pārbaudīt dažādu sensoru noteiktās vērtības.

Pēc divu iepriekš minēto lapu izstrādes mēs varam veikt pogu loģisko dizainu, izmantojot STONE TOOL programmatūru, kas pieejama STONE oficiālajā tīmekļa vietnē.

Ir vērts atzīmēt, ka laika displejā izmantotais pulksteņa avots ir displeja ekrāna pulksteņa avots, nevis MCU pulksteņa avots.

TAB lapas pārslēgšanas efekts

Programmatūrā STONE TOOL netika atrasts neviens TAB lapu pārslēgšanas komponents, tāpēc es izdomāju citu metodi, kā panākt TAB lapu pārslēgšanas efektu.

Novērojot, es sniedzu divus lietotāja interfeisa attēlus, un var atrast, ka abi iepriekš minētie attēli ir teksts "Gaisma" un "Sensors", atšķirība ir to pikseļu lielums ir atšķirīgs, tāpēc mums tikai jānovieto divu pikseļu pozīcija to pašu tekstu, un pēc tam laika un datuma augšējā kreisajā stūrī varat izmantot tabulēšanas taustiņu, lai pārslēgtos.

Pogas loģika

Kā piemēru ņemiet pogu "Dzīvojamā istaba". Kad lietotājs nospiež šo pogu, STONE sērijas porta displeja ekrāns nosūtīs atbilstošās protokola instrukcijas caur seriālo portu. Pēc šīs instrukcijas saņemšanas lietotāja MCU analizēs protokolu, lai kontrolētu ar MCU savienoto gaismu pārslēgšanās stāvokli.

Sensora iegūšana

Piemēram, “gaisa kvalitāte”: ja vēlaties iegūt iekštelpu gaisa kvalitāti, mums ir jābūt MCU gaisa kvalitātes apkopošanai, gaisa kvalitātes sensoram, kad MCU skaitliskie dati tiek apkopoti, izmantojot algoritmu, kas salīdzina gaisa kvalitātes plusus un mīnusus, un pēc tam MCU, kas nosūtīts, izmantojot seriālo portu, lai parādītu uzglabāšanas apgabalu "Labs" vai "Slikts", lai mainītu "Teksta mainīgais0" displeja saturu, un pēc tam lietotājs var intuitīvi redzēt kvalitātes kontroles priekšrocības. Tie ir izskaidroti vēlāk MCU kodā.

2. darbība: MCU komunikācija

MCU komunikācija
MCU komunikācija
MCU komunikācija
MCU komunikācija
MCU komunikācija
MCU komunikācija
MCU komunikācija
MCU komunikācija

STM32 ir MCU, kas visiem ir pazīstama, un tas ir izplatīts MCU modelis starptautiskā mērogā. Tāpēc šajā projektā izmantotais īpašais STM32 MCU I modelis ir STM32F103RCT6.

Ir daudzas STM32 sērijas, kas var apmierināt dažādas tirgus prasības. Kodolu var iedalīt garozā-m0, M3, M4 un M7, un katru kodolu var iedalīt galvenajā, augstas veiktspējas un zemā enerģijas patēriņā.

Tīri no mācīšanās viedokļa jūs varat izvēlēties F1 un F4, F1 ir pamata tips, pamatojoties uz garozas-m3 kodolu, galvenā frekvence ir 72 MHz, F4 apzīmē augstu veiktspēju, pamatojoties uz garozas-m4 kodolu, galvenais frekvence ir 180 miljoni.

Kas attiecas uz F1, F4 (429 sērijas un jaunākas versijas), neatkarīgi no dažādiem kodoliem un galvenās frekvences uzlabošanas, acīmredzamā jauninājuma iezīme ir LCD kontrolieris un kameras saskarne, SDRAM atbalsts, šī atšķirība tiks izvēlēta projektu atlasē. Tomēr no universitātes mācīšanas un lietotāju sākotnējās mācīšanās viedokļa F1 sērija joprojām ir pirmā izvēle. Pašlaik F1 sērijas STM32 ir vislielākais materiālu un produktu daudzums tirgū.

Par STM32 SCM izstrādes vides instalēšanas un programmu lejupielādes metodi es ievadu neveicu.

GPIO inicializācija

Šajā projektā mēs kopā izmantojām 4 GPIO, no kuriem viens ir PWM izejas tapa. Vispirms apskatīsim trīs parasto GPIO portu inicializēšanu:

Šī funkcija inicializē STM32F103C8 PB0 / PB1 / PB2 kā izejas tapu un izsauc to no galvenās funkcijas. Pēc inicializācijas mums ir jābūt loģikai, lai kontrolētu šī GPIO izvades stāvokli, augstu un zemu līmeni, tāpēc es uzrakstīju funkciju šādi:

Šī ir funkcija, kuru jūs varat intuitīvi saprast pēc mainīgā nosaukuma.

Sērijas porta inicializācija

Sērijas porta inicializācijas daļa ir uart.c:

Pēc tam galvenajā funkcijā zvaniet uart_init, lai inicializētu sērijas porta pārraides ātrumu 115200. Tapas izmanto PA9/PA10

PWM inicializācija

Īpašas darbības:

1. Iestatiet RCC pulksteni;

2. Iestatiet GPIO pulksteni; GPIO režīmam jābūt iestatītam uz GPIO_Model_AF_PP vai uz funkciju GPIO_PinRemapConfig (), ja ir nepieciešama pin pārveidošana.

3. Iestatiet atbilstošus TIMx taimera reģistrus;

4. Iestatiet ar PWM saistīto TIMx taimera reģistru;

A. Iestatiet PWM režīmu

B. Iestatiet darba ciklu (formulas aprēķins)

C. Iestatiet izvades salīdzināšanas polaritāti (iepriekš ieviesta)

D. Vissvarīgākais ir iespējot TIMx izvades stāvokli un iespējot TIMx PWM izvadi; Kad attiecīgie iestatījumi ir pabeigti, TIMx_Cmd () ieslēdz TIMx taimeri, lai iegūtu PWM izvadi. Izsauciet šo TIM3_PWM_Init no galvenās funkcijas.

3. darbība: loģiskā koda rakstīšana

Loģiskā koda rakstīšana
Loģiskā koda rakstīšana
Loģiskā koda rakstīšana
Loģiskā koda rakstīšana
Loģiskā koda rakstīšana
Loģiskā koda rakstīšana

Parādīt komponenta adreses definīciju

Displeja komponentiem ir atsevišķas adreses, un šeit es tos visus esmu uzrakstījis kā makro definīcijas: Sērijas datu uztveršana

Aplūkojot informāciju par STONE displeju, jūs varat redzēt, ka, nospiežot pogu, displeja seriālais ports nosūta atbilstošā formāta protokolus, kurus lietotājs MCU var saņemt un parsēt. Nospiežot pogu, displeja seriālais ports nosūta deviņus baitus datu, ieskaitot lietotāja datus. Sērijas datu saņemšana ir ierakstīta apstrādātājā: saņemtie dati tiek glabāti masīvā "USART_RX_BUF". Šajā projektā saņemšanas ilgums ir fiksēts. Ja uztveršanas garums ir lielāks par 9 baitiem, tiek novērtēts saņemšanas gals.

Kontrolējiet luktura pārslēgšanās stāvokli

Galvenajā funkcijā es uzrakstīju kādu loģisko kodu, lai kontrolētu luktura slēdža stāvokli: Kā redzam, kods vispirms nosaka, vai tiek saņemti seriālā porta dati, un, kad tiek saņemti seriālā porta dati, nosaka, kuru pogu lietotājs nospiež uz displeja ekrāna. Dažādām displeja pogām ir dažādas adreses, kuras var redzēt programmatūrā STONE TOOL: Kad lietotājs nospiež pogu "Dzīvojamā istaba", displeja ekrāna sērijas porta nosūtīto datu ceturtais un piektais bits ir pogas adrese. Tā kā visu šeit iestatīto pogu ceturtais bits ir 0x00, mēs varam spriest, kuru pogu lietotājs nospiež, tieši vērtējot piektā bita datus. Pēc tam, kad ir iegūta lietotāja nospiesta poga, mums jāizvērtē lietotāja dati, kas saņemti, nospiežot pogu, kas ir astotais cipars no displeja ekrāna nosūtītajiem datiem. Tāpēc mēs veicam šādu vadību: ierakstiet pogas adreses parametru un lietotāja datus funkcijā "Light_Contral", lai kontrolētu gaismas ieslēgšanas-izslēgšanas stāvokli. Light_Contral funkciju vienība ir šāda: kā redzat, ja pogas adrese ir "Dzīvojamā istaba" un lietotāja dati ir "LightOn", tad MCU PB0 tapa ir iestatīta uz augsta līmeņa izvadi un gaisma ir ieslēgta. Pārējās trīs pogas ir līdzīgas, bet es šeit neturpināšu.

PWM izeja

Manis izstrādātajā lietotāja saskarnē ir bīdāms regulators, kas tiek izmantots, lai kontrolētu "Bērnu istabas" gaismas spilgtumu. MCU īsteno PWM. PWM izejas tapa ir PB5. Kods ir šāds: bīdāmā regulētāja minimālā vērtība ir 0x00 un maksimālā vērtība 0x64. Bīdot, displeja ekrāna seriālais ports sūtīs arī atbilstošās adreses un datus un pēc tam iestatīs PWM izejas darba attiecību, izsaucot šādu funkciju:

4. solis: Sensora iegūšana

Sensora iegūšana
Sensora iegūšana
Sensora iegūšana
Sensora iegūšana
Sensora iegūšana
Sensora iegūšana

Displeja ekrāna "Sensora" lapā ir četri sensora dati.

Datiem displejā ir arī krātuves adrese, un mēs varam mainīt reālo saturu, vienkārši ierakstot datus uz šīm adresēm, izmantojot MCU seriālo portu.

Šeit es izveidoju vienkāršu koda ieviešanu:

Displeja dati tiek atjaunināti ik pēc 5 sekundēm, un es uzrakstīju tikai vienkāršu attiecīgās sensoru savākšanas funkcijas demonstrāciju, jo man rokā nav šo sensoru.

Īstā projekta izstrādē šie sensori var būt ADC savākti dati vai IIC, UART un SPI sakaru saskarņu savāktie dati. Viss, kas jums jādara, ir ierakstīt šos datus atbilstošajā funkcijā kā atgriešanas vērtību.

5. darbība. Faktiskais darbības efekts

Ieteicams: