Satura rādītājs:
- 1. darbība: lietotāja saskarnes dizains
- 2. darbība: MCU komunikācija
- 3. darbība: loģiskā koda rakstīšana
- 4. solis: Sensora iegūšana
- 5. darbība. Faktiskais darbības efekts
Video: STONE LCD ar viedo māju: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Š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
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
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
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
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:
Kā izveidot gudru māju, izmantojot Arduino vadības releja moduli - Mājas automatizācijas idejas: 15 soļi (ar attēliem)
Kā izveidot gudru māju, izmantojot Arduino vadības releja moduli | Mājas automatizācijas idejas: Šajā mājas automatizācijas projektā mēs izstrādāsim viedās mājas releja moduli, kas var kontrolēt 5 sadzīves tehniku. Šo releja moduli var vadīt, izmantojot mobilo vai viedtālruni, IR tālvadības pulti vai televizora tālvadības pulti, manuālo slēdzi. Šis viedais relejs var arī uztvert r
Kā pagatavot SpongeBob ananāsu māju: 12 soļi
Kā izveidot SpongeBob ananāsu māju: kurš dzīvo ananāsā zem jūras? Atbilde uz šo jautājumu (SpongeBob) šodien ir diezgan acīmredzama lielākajai daļai cilvēku. Mūsu komandai tika uzdots izstrādāt un uzbūvēt rekvizītu gaidāmajai izrādes iestudējumam. Ideja, kas uzreiz radās
Iedegiet piparkūku māju: 9 soļi (ar attēliem)
Iededziet piparkūku māju: mēs veidojam iedegtu piparkūku māju, kur, pieskaroties skursteņa virsmai, māja iedegsies iekšpusē. Šis projekts ir patiešām jautrs shēmas ievads, un tas ir paredzēts demonstrēšanai, ieskaitot gan nelielu ķēdes izgatavošanu, gan nelielu
[HASS.IO] Sāciet veidot savu viedo māju bez kodēšanas - mazāk par 100 ASV dolāriem: 6 soļi
[HASS.IO] Sāciet veidot savu viedo māju bez kodēšanas par mazāk nekā 100 ASV dolāriem: pēdējā laikā es ķēros pie mājas un veiksmīgi padarīju savu māju mazāk "idiotisku". Tāpēc es dalīšos, kā izveidot gudras mājas sistēmu ar zemu cenu, augstu saderību, kas darbotos nemanāmi un stabili
Gudri aizsargājiet savu viedo māju: 14 soļi
Gudri nodrošiniet savu viedo māju: es sacenšos par drošu konkursu. Ja jums patīk mana pamācība, lūdzu, balsojiet par to! Es jums parādīšu, kā viegli un lēti pilnībā nodrošināt savu māju un tās vidi. Tajā ir segmenti, kuros jūs uzzināsit, kā: Konfigurēt y