Sadržaj:

STONE Display +STM32 +Aparat za kavu: 6 koraka
STONE Display +STM32 +Aparat za kavu: 6 koraka

Video: STONE Display +STM32 +Aparat za kavu: 6 koraka

Video: STONE Display +STM32 +Aparat za kavu: 6 koraka
Video: Espresso Machine COMPARISON: Diletta Mio vs NEW Stone (John's BACK!) 2024, Studeni
Anonim
STONE Display +STM32 +Aparat za kavu
STONE Display +STM32 +Aparat za kavu

Ja sam softverski inženjer MCU -a, nedavno sam dobio projekt da bude aparat za kavu, zahtjevi kućanstva s ekranom osjetljivim na dodir, funkcija je dobra, nalazi se iznad ekrana odabir možda nije jako dobar, na sreću, ovaj projekt mogu odlučiti što MCU za osobnu upotrebu, također se može koristiti za odlučivanje o zaslonu, pa sam odabrao STM32 za ovu vrstu jednostavnog i lakog MCU -a za korištenje, zaslon za prikaz Odabrao sam STONE -ov zaslon osjetljiv na dodir, zaslon je jednostavan i lagan za korištenje, Moje STM32 MCU samo putem UART komunikacije je u redu s tim.

STONE serijski LCD zaslon, koji može komunicirati putem serijskog porta MCU -a. Istodobno, logički dizajn korisničkog sučelja ovog zaslona može se izravno izraditi pomoću STONE TOOL Box -a koji se nalazi na službenoj web stranici STONE -a, što je vrlo povoljno. Stoga ću ga upotrijebiti za ovaj projekt aparata za kavu. Istodobno ću jednostavno zabilježiti osnovni razvoj. Budući da je ovo projekt moje tvrtke, snimit ću samo jednostavan demo, a ne napisati cijeli kod. Neki osnovni vodiči o kamenom zaslonu mogu otići na web stranicu: https://www.stoneitech.com/ Web stranica ima razne informacije o modelu, uporabi i dokumentaciji o dizajnu, kao i video vodiče. Ovdje neću ulaziti u previše detalja.

Korak 1: Uvodna funkcija zaslona zaslona aparata za kavu

Ovaj projekt ima sljedeće funkcije: l

  • Prikazuje trenutno vrijeme i datum
  • Na zaslonu se nalaze četiri gumba za američko, latte, cappuccino i espresso.
  • Prikazuje trenutnu količinu preostalih zrna kave, mlijeka i šećera u kavi
  • Okvir za tekstualni prikaz prikazuje trenutno stanje

Imajući ove koncepte na umu, možete dizajnirati sučelje korisničkog sučelja. STONE ekrana osjetljivih na dodir u dizajnu korisničkog sučelja relativno je jednostavan, korisnik putem softvera PhotoShop dizajnira dobro korisničko sučelje i efekt gumba, preko STONE TOOL Box -a za oblikovanje dobrih slika na zaslonu i dodavanje vlastitih gumba s logikom STONE TOOL Box i serijski podaci povratna vrijednost je u redu, vrlo lako za razvoj.

Korak 2: Napravite slike korisničkog sučelja za STONE Display

Napravite slike korisničkog sučelja za STONE Display
Napravite slike korisničkog sučelja za STONE Display
Napravite slike korisničkog sučelja za STONE Display
Napravite slike korisničkog sučelja za STONE Display
Napravite slike korisničkog sučelja za STONE Display
Napravite slike korisničkog sučelja za STONE Display

Prema funkcionalnim zahtjevima, napravio sam sljedeća dva sučelja za prikaz korisničkog sučelja, jedno je glavno sučelje, a drugo je efekt gumba.

Korištenje STONE TOOL Box -a Trenutačno STONE pruža ALAT. Otvorite ovaj ALAT za stvaranje novog projekta, zatim uvezite dizajnirano korisničko sučelje za prikaz slika i dodajte vlastite gumbe, okvire za prikaz teksta itd. Službena web stranica tvrtke STONE ima vrlo cjelovit vodič o tome kako koristiti ovaj softver: https:/ /www.stoneitech.com/support/download/video

Učinci dodavanja gumba i prikaza komponenti u STONE TOOL Boxu su sljedeći:

STONE TOOL Box ima funkciju simulacijskog prikaza, kroz koji možete vidjeti radni učinak sučelja korisničkog sučelja:

U ovom je trenutku moj korisnički interfejs dovršen i sve što moram učiniti je napisati MCU kôd. Preuzmite datoteke koje generira STONE TOOL Box na zaslon za prikaz stvarnih rezultata.

Korak 3: STM32F103RCT6

STM32F103RCT6
STM32F103RCT6

STM32F103RCT6 MCU ima moćne funkcije. Evo osnovnih parametara MCU -a:

  • Serija: STM32F10X l Kerne
  • ARM - COTEX32
  • Brzina: 72 MHZ
  • Komunikacijsko sučelje: CAN, I2C, IrDA, LIN, SPI, UART/USART, USB
  • Periferna oprema: DMA, kontrola motora PWM, PDR, POR, PVD, PWM, osjetnik temperature, WDT
  • Kapacitet pohrane programa: 256KB
  • Vrsta memorije programa: FLASH
  • Kapacitet RAM -a: 48K
  • Napon - napajanje (Vcc/Vdd): 2 V ~ 3,6 V
  • Oscilator: unutarnji
  • Radna temperatura: -40 ° C ~ 85 ° C
  • Paket/kućište: 64 života

U ovom projektu koristit ću UART, GPIO, Watch Dog i Timer STM32F103RCT6. Razvoj ovih perifernih uređaja dokumentiran je u nastavku. STM32 KORISTI razvoj softvera Keil MDK, koji vam nije stran, pa neću uvoditi način instalacije ovog softvera. STM32 se može simulirati na mreži pomoću j-linka ili st-linka i drugih simulacijskih alata. Sljedeća slika je ploča STM32 koju sam koristio:

Korak 4: UART serijski

UART serijski
UART serijski
UART serijski
UART serijski
UART serijski
UART serijski

STM32F103RCT6 ima nekoliko serijskih portova. U ovom projektu koristio sam kanal serijskog porta PA9/PA10, a brzina prijenosa serijskog porta postavljena je na 115200.

GPIO

U korisničkom sučelju ovog projekta nalaze se ukupno četiri gumba koji zapravo čine četiri vrste kave. U aparatu za kavu kontrola broja zrna kave, potrošnje mlijeka i protoka vode različitih kava zapravo se ostvaruje kontrolom senzora i releja, dok ja jednostavno prvo kontroliram pin GPIO.

Korak 5: Odbrojavanje vremena

Mjerač vremena
Mjerač vremena
Mjerač vremena
Mjerač vremena

Prilikom inicijalizacije mjerača vremena navedite koeficijent frekvencijske podjele PSC, ovdje je naš sistemski sat (72MHz) za podjelu frekvencija

Zatim navedite vrijednost ponovnog učitavanja arr, što znači da će, kada naš mjerač vremena dosegne taj arr, mjerač vremena ponovno učitati ostale vrijednosti.

Na primjer, kada smo postavili mjerač vremena za odbrojavanje, vrijednost brojača vremena je jednaka arr i bit će izbrisana s 0 i ponovno izračunata

Brojač vremena se ponovno učitava i jednom se ažurira

Izračunajte formulu vremena ažuriranja Tout = ((arr +1)*(PSC +1))/Tclk

Izvođenje formule: Razgovor je izvor sata mjerača vremena, ovdje je 72 MHz

Podijelimo dodijeljenu frekvenciju sata, specificiramo vrijednost podjele frekvencije kao PSC, zatim dijelimo naš Talk na PSC +1, konačna frekvencija našeg mjerača vremena je Tclk/(PSC +1) MHz

Ono što ovdje podrazumijevamo pod frekvencijom je da imamo 1 s razgovora preko PSC +1 M brojeva (1M = 10 ^ 6), a vrijeme za svaki broj je PSC +1 /razgovor, i lako je razumjeti da je obrnuto frekvencije je razdoblje, a razdoblje za svaki broj ovdje je PSC +1 /sekunde za razgovor, a zatim idemo od 0 do arr je (arr +1)*(PSC +1) /Tclk

Na primjer, postavimo arr = 7199 i PSC = 9999

Podijelili smo 72MHz na 9999+1 je jednako 7200Hz

To je 9 000 brojanja u sekundi, a svaki broj je 1/7, 200 sekunde

Dakle, ovdje bilježimo 9 000 brojeva kako bismo otišli na ažuriranje timera (7199+1)*(1/7200) = 1 s, pa 1s ide na ažuriranje.

void TIM3_Int_Init (u16 arr, u16 psc) {

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd (RCC_APB1Periph_TIM3, ENABLE);

// sat TIM_TimeBaseStructure. TIM_Period = arr;

TIM_TimeBaseStructure. TIM_Prescaler = psc; TIM_TimeBaseStructure. TIM_ClockDivision = 0;

// TDTS = Tck_tim TIM_TimeBaseStructure. TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit (TIM3, & TIM_TimeBaseStructure);

Molimo kontaktirajte nas ako vam je potrebna potpuna procedura:

www.stoneitech.com/contact

Odgovorit ću vam u roku od 12 sati.

Korak 6: Posmatrajte psa

Watch Dog
Watch Dog
Watch Dog
Watch Dog

Kako bih spriječio pad sustava tijekom rada programa, dodao sam nadzornog psa. Zapravo, svi projekti koji koriste MCU općenito koriste nadzornog psa.

STM32 ima dva ugrađena nadzorna psa, koji pružaju veću sigurnost, točnost vremena i fleksibilnost. Dva uređaja za nadzor (neovisni nadzornik i prozor za nadzor prozora) mogu se koristiti za otkrivanje i rješavanje grešaka uzrokovanih softverskim pogreškama. Kada brojač dosegne zadanu vrijednost vremenskog ograničenja, aktivira se prekid (samo za nadzor prozora) ili resetiranje sustava. Nezavisni čuvar (IWDG):

Pokreće ga namjenski sat niske brzine (LSI), radi čak i ako glavni sat otkaže.

Prikladan je za uporabu u situacijama kada se od nadzornika traži da radi potpuno neovisno izvan glavnog programa i zahtijeva nisku točnost vremena. Čuvar prozora (WWDG):

Pokreće sat sa sata APB1 nakon podjele frekvencije. Otkrijte nenormalno kasne ili preuranjene radnje aplikacije kroz konfigurirani vremenski prozor. Pogodno za programe koji zahtijevaju nadzorne pse za funkcioniranje u sustavima Windows s preciznim rasporedom.

int main (void) {

delay_init ();

// odgoda init NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);

// NVIC INIT uart_init (115200);

// UART INIT PAD_INIT ();

// Svjetlosna inicijala IWDG_Init (4, 625);

dok (1) {

ako (USART_RX_END)

{switch (USART_RX_BUF [5])

{

Espresso u kutiji:

CoffeeSelect (Espresso, USART_RX_BUF [8]);

pauza;

slučaj Americano:

CoffeeSelect (Americano, USART_RX_BUF [8]);

Glavna logika u funkciji Main je sljedeća:

u8 timer_cnt = 0;

void TIM3_IRQHandler (void) // TIM3

{

if (TIM_GetITStatus (TIM3, TIM_IT_Update)! = RESET)

{

TIM_ClearITPendingBit (TIM3, TIM_IT_Update);

timer_cnt ++;

if (timer_cnt> = 200)

{

milk_send [6] = mlijeko ();

Na kraju dodajte kôd u prekidu timera: U prekidu timera cilj mi je provjeriti koliko je kave i mlijeka ostalo, a zatim preko serijskog porta poslati otkrivenu vrijednost na zaslon. Mjerenje količine zaostalog mlijeka i zrna kave obično se vrši senzorima. Jednostavne metode uključuju senzore tlaka koji mjere trenutnu težinu mlijeka i zrna kave kako bi utvrdili koliko je preostalo.

Upiši zadnji

Ovaj članak samo bilježi jednostavan razvojni proces mog projekta. S obzirom na povjerljivost projekta tvrtke, sučelje za prikaz korisničkog sučelja koje sam koristio također sam izradio sam, a ne pravo sučelje za prikaz korisničkog sučelja ovog projekta. Kodni dio STM32 dodaje samo periferni upravljački program MCU -a i srodni logički kod. Uzimajući u obzir i povjerljivost projekta tvrtke, nije dat poseban ključni dio tehnologije, razumijete. Međutim, prema kodu koji sam dao, surađujte s KAMENIM zaslonom. mojim prijateljima koji su također softverski inženjeri potrebno je samo nekoliko dana da dodaju ključne tehničke dijelove u moj kodni okvir kako bi dovršili projekt.

Za više informacija o projektu kliknite ovdje