Sadržaj:
- Korak 1: Dizajn sučelja korisničkog sučelja
- Korak 2: MCU komunikacija
- Korak 3: Pisanje logičkog koda
- Korak 4: Nabavka senzora
- Korak 5: Stvarni učinak operacije
Video: KAMENI LCD s pametnom kućom: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Danas sam dobio STONE -ov zaslon s serijskim portom, koji može komunicirati preko serijskog porta MCU -a, a logički dizajn sučelja ovog zaslona može se izravno izraditi pomoću softvera VGUS koji se nalazi na službenoj web stranici STONE -a, što nam je vrlo prikladno. Stoga ga namjeravam upotrijebiti za izradu jednostavnog kontrolera uređaja, koji uključuje upravljanje raznim svjetlima (dnevni boravak, kuhinja, dječja soba, kupaonica). Istodobno se mogu prikupljati unutarnja i vanjska temperatura, vlaga i kvaliteta zraka. Ovo je samo jednostavan demo, a sekundarni razvoj možete provesti pomoću koda koji sam dao. Neke osnovne upute o STONE zaslonu mogu se pronaći na web stranici:
Na web stranici nalaze se razne informacije o modelu, korisničkoj i dizajnerskoj dokumentaciji, kao i video vodiči. Ovdje neću ulaziti u previše detalja.
Korak 1: Dizajn sučelja korisničkog sučelja
Photoshop
S Photoshopom sam dizajnirao sljedeće dvije stranice sučelja:
Ovaj projekt ima ukupno gornje dvije stranice. "Svjetlo" i "Senzor" u gornjem desnom kutu su tipke za prebacivanje ove dvije stranice.
Na stranici "Svjetlo" možete kontrolirati sve vrste svjetala u svom domu. Na stranici "Senzor" možete provjeriti vrijednosti koje detektiraju različiti senzori.
Nakon dizajna gornje dvije stranice, možemo izvesti logički dizajn gumba putem softvera STONE TOOL koji se nalazi na službenoj web stranici STONE.
Vrijedi napomenuti da je izvor sata koji se ovdje koristi za prikaz vremena izvor sata na ekranu, a ne izvor sata MCU -a.
Učinak promjene stranice TAB
U softveru STONE TOOL nije pronađena komponenta za promjenu TAB stranice, pa sam smislio drugu metodu za postizanje učinka promjene stranice TAB.
Kroz promatranje koje nudim dvije slike korisničkog sučelja mogu se otkriti da su dvije gornje slike tekst "Svjetlo" i "Senzor", razlika je u tome što im je veličina piksela različita, pa samo moramo postaviti položaj dva piksela postavljen na istim tekstom, a zatim kroz gornji lijevi kut vremena i datuma za referencu možete postići promjenu učinka TAB.
Logika gumba
Uzmite za primjer gumb "Dnevna soba". Kad korisnik pritisne ovaj gumb, zaslon za prikaz STONE serijskog porta će poslati odgovarajuće protokolarne upute kroz serijski port. Nakon primanja ove upute, korisnički MCU će raščlaniti protokol za kontrolu stanja uključivanja svjetla povezanih s MCU -om.
Nabavka senzora
Uzmimo za primjer "kvalitetu zraka": ako želite postići kvalitetu zraka u zatvorenom prostoru, moramo imati MCU za prikupljanje kvalitete zraka, senzor kvalitete zraka kada se MCU numerički prikuplja pomoću algoritma za usporedbu prednosti i nedostataka kvalitete zraka, a zatim MCU poslan preko serijskog porta za prikaz prostora za pohranu "Dobro" ili "Loše", za promjenu prikazanog sadržaja "Tekstualna varijabla0", a zatim korisnik može intuitivno vidjeti prednosti kontrole kvalitete. To je objašnjeno kasnije u MCU kodu.
Korak 2: MCU komunikacija
STM32 je MCU s kojim su svi upoznati, a uobičajen je međunarodni model MCU -a. Stoga je specifični model STM32 MCU -a koji sam koristio u ovom projektu STM32F103RCT6.
Postoje mnoge serije STM32 koje mogu zadovoljiti različite zahtjeve tržišta. Jezgra se može podijeliti na cortex-m0, M3, M4 i M7, a svaka jezgra može se podijeliti na mainstream, visoke performanse i nisku potrošnju energije.
Čisto iz perspektive učenja, možete odabrati F1 i F4, F1 predstavlja osnovni tip, na temelju jezgre cortex-m3, glavna frekvencija je 72MHZ, F4 predstavlja visoke performanse, temeljene na jezgri cortex-m4, glavna frekvencija 180M.
Što se tiče F1, F4 (serija 429 i više), osim različitih jezgri i poboljšanja glavne frekvencije, očita značajka nadogradnje je LCD kontroler i sučelje kamere, podrška za SDRAM, ovoj će razlici biti prioritet pri odabiru projekta. Međutim, iz perspektive sveučilišne nastave i početnog učenja korisnika, serija F1 je i dalje prvi izbor. Trenutno STM32 iz serije F1 ima najveću količinu materijala i proizvoda na tržištu.
O instalaciji razvojnog okruženja STM32 i načinu preuzimanja programa, neću uvoditi.
GPIO inicijalizacija
U ovom smo projektu koristili ukupno 4 GPIO -a, od kojih je jedan PWM izlazni pin. Pogledajmo prvo inicijalizaciju tri obična GPIO porta:
Ova funkcija inicijalizira PB0 / PB1 / PB2 iz STM32F103C8 kao izlazni pin i poziva ga iz glavne funkcije. Nakon inicijalizacije, moramo imati logiku za upravljanje izlaznim stanjem, visokom i niskom razinom ovog GPIO -a, pa sam zapisao funkciju kako slijedi:
Ovo je funkcija koju intuitivno možete razumjeti pod imenom varijable.
Inicijalizacija serijskog porta
Inicijalizacijski dio serijskog porta nalazi se u uart.c:
Zatim pozovite uart_init u glavnoj funkciji za inicijalizaciju brzine prijenosa serijskog porta od 115200. Igle koriste PA9/PA10
PWM inicijalizacija
Konkretni koraci:
1. Postavite RCC sat;
2. Postavite GPIO sat; GPIO način rada treba postaviti na GPIO_Model_AF_PP ili na funkciju GPIO_PinRemapConfig () ako je potrebno ponovno preslikavanje pinova.
3. Postavite relevantne registre TIMx timera;
4. Postavite registar TIMx timera koji se odnosi na PWM;
A. Postavite način rada PWM
B. Postavite radni ciklus (izračun formule)
C. Postavite polaritet usporedbe izlaza (prethodno uveden)
D. Ono što je najvažnije, omogućiti izlazno stanje TIMx -a i omogućiti PWM izlaz TIMx -a; Nakon dovršetka odgovarajućih postavki, TIMx_Cmd () uključuje TIMx timer kako bi se dobio PWM izlaz. Nazovite ovo TIM3_PWM_Init iz glavne funkcije.
Korak 3: Pisanje logičkog koda
Prikaz definicije adrese komponente
Komponente zaslona imaju zasebne adrese, a ovdje sam ih sve zapisao kao makro definicije: Serijski prijem podataka
Gledajući informacije o STONE zaslonu, možete vidjeti da kada se pritisne tipka, serijski port na zaslonu šalje protokole u odgovarajućem formatu, koje korisnički MCU može primiti i raščlaniti. Kada se pritisne tipka, serijski priključak na zaslonu šalje devet bajtova podataka, uključujući podatke korisnika. Prijem serijskih podataka zapisuje se u Handleru: Primljeni podaci pohranjeni su u nizu "USART_RX_BUF". U ovom projektu dužina primanja je fiksna. Kad je dužina primanja veća od 9 bajtova, ocjenjuje se kraj primitka.
Kontrolirajte stanje uključivanja žarulje
U glavnoj funkciji napisao sam neki logički kôd za kontrolu stanja sklopke svjetiljke: Kao što vidimo, kôd prvo određuje jesu li primljeni podaci serijskog porta, a kada se dobiju podaci serijskog porta, određuje koji je gumb korisnik pritisne na zaslonu. Različiti gumbi na zaslonu imaju različite adrese, što se može vidjeti u softveru STONE TOOL: Kada korisnik pritisne gumb "Dnevna soba", četvrti i peti bit podataka koje šalje serijski priključak zaslona su adresa gumba. Budući da je četvrti bit od svih ovdje postavljenih gumba 0x00, možemo procijeniti koju tipku korisnik pritisne izravno procjenjujući podatke petog bita. Nakon što smo dobili gumb koji je korisnik pritisnuo, moramo procijeniti podatke korisnika koji su primljeni kada je gumb pritisnut, što je osma znamenka podataka poslanih s zaslona. Stoga vršimo sljedeću kontrolu: upisujemo parametre adrese gumba i korisničke podatke u funkciju "Light_Contral" za kontrolu stanja uključenosti i isključenosti svjetla. Entitet funkcije Light_Contral je sljedeći: Kao što vidite, ako je adresa gumba "Dnevna soba", a korisnički podaci "LightOn", tada je pin PB0 MCU-a postavljen na izlaz visoke razine, a svjetlo je uključeno. Ostala tri gumba su slična, ali neću dalje.
PWM izlaz
U korisničkom sučelju koje sam dizajnirao nalazi se klizni regulator koji se koristi za kontrolu jačine svjetla "Dječje sobe". MCU provodi PWM. PWM izlazni pin je PB5. Kôd je sljedeći: Klizni regulator je postavljen na minimalnu vrijednost 0x00 i maksimalnu vrijednost 0x64. Prilikom klizanja, serijski port zaslona će također slati relevantne adrese i podatke, a zatim postaviti omjer radne snage PWM izlaza pozivanjem sljedeće funkcije:
Korak 4: Nabavka senzora
Na stranici "Senzor" na zaslonu prikazana su četiri podatka senzora.
Podaci također imaju adresu za pohranu na zaslonu, a stvarni sadržaj možemo promijeniti jednostavnim upisivanjem podataka na te adrese putem serijskog porta MCU -a.
Ovdje sam napravio jednostavnu implementaciju koda:
Podaci na zaslonu ažuriraju se svakih 5 sekundi, a ja sam napisao samo jednostavan demo relevantne funkcije prikupljanja senzora jer te senzore nemam u ruci.
U stvarnom razvoju projekta ti senzori mogu biti podaci prikupljeni putem ADC -a ili podaci prikupljeni komunikacijskim sučeljima IIC, UART i SPI. Sve što trebate učiniti je upisati te podatke u odgovarajuću funkciju kao povratnu vrijednost.
Korak 5: Stvarni učinak operacije
Preporučeni:
KAMENI LCD zaslon za nadzornu ploču automobila: 5 koraka
KAMENI LCD zaslon za nadzornu ploču automobila: Brzim razvojem gospodarstva i postupnim poboljšanjem potrošnje, automobili su postali svakodnevna potreba običnih obitelji, a svi više pažnje posvećuju udobnosti i sigurnosti automobila. Automobilski indus
Napravite sustav upravljanja pametnom kućom na STONE HMI dispu: 23 koraka
Napravite sustav za upravljanje pametnom kućom na STONE HMI Dispu: Uvod u projekt Sljedeći vodič će vam pokazati kako koristiti STONE STVC050WT-01 modul zaslona osjetljiv na dodir za izradu jednostavnog sustava upravljanja kućanskim aparatima
Medicinski ventilator + KAMENI LCD + Arduino UNO: 6 koraka
Medicinski ventilator + KAMENI LCD + Arduino UNO: Od 8. prosinca 2019. zabilježeno je nekoliko slučajeva upale pluća nepoznate etiologije u gradu Wuhan, provincija Hubei, Kina. Posljednjih mjeseci u cijeloj je zemlji uzrokovano gotovo 80000 potvrđenih slučajeva, a utjecaj epidemije je
Igra škarama za kameni papir: 6 koraka
Igra škara makaza za kamen: Ovo je moja prva instrukcija. Dugo sam želio napisati jedan, ali nisam imao pri ruci nijedan projekt koji bih mogao objaviti ovdje. Pa kad sam došao na ideju o ovom projektu, odlučio sam da je ovo ovaj. Pa sam pregledavao web lokaciju tensorflow.js, to sam
Kameni Lcd + senzor žiroskopa za ubrzanje: 5 koraka
Stone Lcd +senzor žiroskopa za ubrzanje: Ovaj dokument će vas naučiti kako koristiti žiroskop senzor akcelerometra STM32 MCU +MPU6050 +zaslon za serijski port STONE STVC070WT za DEMO.STVC070WT je serijski zaslon naše tvrtke, njegov razvoj je jednostavan, lagan za korištenje , možete otići u mi