Tartalomjegyzék:

STONE kijelző +STM32 +kávéfőző: 6 lépés
STONE kijelző +STM32 +kávéfőző: 6 lépés

Videó: STONE kijelző +STM32 +kávéfőző: 6 lépés

Videó: STONE kijelző +STM32 +kávéfőző: 6 lépés
Videó: Voltage & Frequency converter runs 230V/50Hz Siemens European coffee machine on 120V/60Hz USA power 2024, November
Anonim
STONE kijelző +STM32 +kávéfőző
STONE kijelző +STM32 +kávéfőző

MCU szoftvermérnök vagyok, nemrég kaptam egy projektet, hogy kávéfőző legyek, háztartási követelmények érintőképernyős működéssel, a funkció jó, a képernyő fölött lehet, hogy nem túl jó, szerencsére ez a projekt eldönthetem, hogy mit MCU használni magam, szintén használható annak eldöntésére, hogy milyen a képernyő, ezért az ilyen egyszerű és könnyen használható MCU STM32 -t választottam, kijelző képernyő A STONE érintőképernyőjét választottam, a képernyő egyszerű és könnyen használható, Saját Az STM32 MCU csak UART kommunikáción keresztül rendben van vele.

STONE soros LCD kijelző, amely képes kommunikálni az MCU soros portján keresztül. Ugyanakkor ennek a kijelzőnek a kezelőfelületének logikai kialakítása közvetlenül megtervezhető a STONE hivatalos weboldalán található STONE TOOL Box használatával, ami nagyon kényelmes. Tehát ezt a kávéfőző projektet fogom használni. Ugyanakkor egyszerűen rögzítem az alapfejlődést. Mivel ez a vállalatom projektje, csak egy egyszerű demót rögzítek, és nem írom le a teljes kódot. Néhány alapvető oktatóanyag a kőkijelzőről a következő webhelyen található: https://www.stoneitech.com/ Nem részletezem itt túl részletesen.

1. lépés: Kávéfőző kijelző képernyő funkciója Bevezetés

Ez a projekt a következő funkciókkal rendelkezik: l

  • Megjeleníti az aktuális időt és dátumot
  • A kijelzőn négy gomb található az americano, a latte, a cappuccino és az eszpresszó számára.
  • A maradék kávébab, tej és kávécukor aktuális mennyiségét jeleníti meg
  • Egy szöveges kijelzőablak mutatja az aktuális állapotot

Ezeket a fogalmakat szem előtt tartva tervezhet egy felhasználói felületet. STONE érintőképernyők a felhasználói felület kialakításában viszonylag egyszerű, a felhasználó a PhotoShop szoftver révén jó felhasználói felületet és gombhatást tervez, a STONE TOOL Box segítségével jó képeket tervezhet a képernyőre, és hozzáadhatja saját gombjait a STONE TOOL Box logikával és soros adatok A visszatérési érték rendben van, nagyon könnyű fejleszteni.

2. lépés: Készítse el a felhasználói felület képeit a STONE kijelzőhöz

Készítsen felhasználói felületről készült képeket a STONE kijelzőhöz
Készítsen felhasználói felületről készült képeket a STONE kijelzőhöz
Készítsen felhasználói felületről készült képeket a STONE kijelzőhöz
Készítsen felhasználói felületről készült képeket a STONE kijelzőhöz
Készítsen felhasználói felületről készült képeket a STONE kijelzőhöz
Készítsen felhasználói felületről készült képeket a STONE kijelzőhöz

A funkcionális követelményeknek megfelelően az alábbi két felhasználói felületet készítettem, az egyik a fő interfész, a másik pedig a gombhatás.

A STONE TOOL Box használata Jelenleg a STONE TOOL eszközt biztosít. Nyissa meg ezt az ESZKÖZÖT új projekt létrehozásához, majd importálja a tervezett felhasználói felületet a képek megjelenítéséhez, és adjon hozzá saját gombokat, szövegkijelző dobozokat stb. /www.stoneitech.com/support/download/video

A gombok hozzáadásának és az összetevők megjelenítésének hatásai a STONE TOOL dobozban a következők:

A STONE TOOL Box szimulációs kijelző funkcióval rendelkezik, amelyen keresztül megtekintheti a felhasználói felület interfészének hatását:

Ezen a ponton az UI kijelzőm befejeződött, és csak az MCU kódot kell írnom. Töltse le a STONE TOOL Box által létrehozott fájlokat a kijelzőre, hogy megtekintse a tényleges eredményeket.

3. lépés: STM32F103RCT6

STM32F103RCT6
STM32F103RCT6

Az STM32F103RCT6 MCU erőteljes funkciókkal rendelkezik. Íme az MCU alapvető paraméterei:

  • Sorozat: STM32F10X l Kerne
  • KAR - COTEX32
  • Sebesség: 72 MHz
  • Kommunikációs interfész: CAN, I2C, IrDA, LIN, SPI, UART/USART, USB
  • Perifériás berendezések: DMA, motorvezérlés PWM, PDR, POR, PVD, PWM, hőmérséklet -érzékelő, WDT
  • A program tárolókapacitása: 256 KB
  • Programmemória típusa: FLASH
  • RAM kapacitás: 48K
  • Feszültség - tápegység (Vcc/Vdd): 2 V ~ 3,6 V
  • Oszcillátor: belső
  • Üzemi hőmérséklet: -40 ° C ~ 85 ° C
  • Csomag/ház: 64 élettartam

Ebben a projektben az UART, GPIO, Watch Dog és az STM32F103RCT6 időzítőjét fogom használni. Ezen perifériák fejlődését az alábbiakban dokumentáljuk. Az STM32 HASZNÁLATA Keil MDK szoftverfejlesztés, amely nem idegen az Ön számára, ezért nem mutatom be a szoftver telepítési módját. Az STM32 online szimulálható j-link vagy st-link és más szimulációs eszközök segítségével. A következő kép az általam használt STM32 áramköri lap:

4. lépés: UART sorozat

UART sorozat
UART sorozat
UART sorozat
UART sorozat
UART sorozat
UART sorozat

Az STM32F103RCT6 több soros porttal rendelkezik. Ebben a projektben a PA9/PA10 soros port csatornát használtam, és a soros port átviteli sebessége 115200 volt.

GPIO

A projekt felhasználói felületén összesen négy gomb található, amelyek valójában négyféle kávé készítését jelentik. A kávéfőzőben a kávébabok számának, a tejfogyasztásnak és a különböző kávék vízhozamának szabályozása valójában az érzékelők és a relék vezérlésével valósul meg, míg én először egyszerűen a GPIO tűt irányítom.

5. lépés: Időzítő

Időzítő
Időzítő
Időzítő
Időzítő

Az időzítő inicializálásakor adja meg a PSC frekvenciaosztási együtthatót, itt a rendszeróra (72 MHz) a frekvenciaosztáshoz

Ezután adja meg az újratöltési értéket arr, ami azt jelenti, hogy amikor az időzítőnk eléri ezt az arr -t, az időzítő újratölti a többi értéket.

Például, ha az időzítőt számlálásra állítjuk, akkor az időzítő számláló értéke egyenlő arr, és 0 -val törlődik, és újraszámításra kerül

Az időzítők száma újra betöltődik, és egyszer frissítés

Számítsa ki a frissítési idő képletét Tout = ((arr +1)*(PSC +1))/Tclk

Képlet deriválás: A Talk az időzítő óra forrása, itt 72Mhz

Elosztjuk a kiosztott órajel frekvenciát, megadjuk a frekvenciaosztási értéket PSC -ként, majd felosztjuk a beszélgetésünket PSC +1 -re, az időzítőnk végső frekvenciája Tclk/(PSC +1) MHz

Tehát a gyakoriság alatt azt értjük, hogy 1 másodperc beszélgetésünk van a PSC +1 M számok felett (1M = 10 ^ 6), és az egyes számok ideje PSC +1 /Talk, és könnyen érthető, hogy az inverz A gyakoriság a periódus, és az egyes számok periódusa itt PSC +1 /Beszélgetési másodperc, majd 0 -ról arr -re megyünk (arr +1)*(PSC +1) /Tclk

Tegyük fel például, hogy arr = 7199 és PSC = 9999

A 72 MHz -et 9999 -re osztottuk+1 egyenlő 7200 Hz -el

Ez 9 000 szám másodpercenként, és minden szám 1/7, 200 másodperc

Tehát 9 000 számot rögzítünk ide az időzítő frissítéséhez (7199+1)*(1/7200) = 1 s, tehát az 1s frissítésre megy.

void TIM3_Int_Init (u16 arr, u16 psc) {

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

// óra 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);

Kérjük, lépjen kapcsolatba velünk, ha teljes eljárásra van szüksége:

www.stoneitech.com/contact

12 órán belül válaszolok.

6. lépés: Őrző kutya

Házőrző kutya
Házőrző kutya
Házőrző kutya
Házőrző kutya

Annak elkerülése érdekében, hogy a rendszer összeomoljon a program futása közben, hozzáadtam az őrszemet. Valójában minden projekt, amely az MCU -t használja, általában megfigyelő kutyát használ.

Az STM32 két beépített felügyelettel rendelkezik, amelyek nagyobb biztonságot, időbeli pontosságot és rugalmasságot biztosítanak. Két felügyeleti eszköz (független és ablakfigyelő) használható a szoftverhibák okozta hibák észlelésére és megoldására. Amikor a számláló eléri az adott időtúllépési értéket, egy megszakítás (csak ablakfigyelő) vagy rendszer -visszaállítás aktiválódik. Független felügyelet (IWDG):

A dedikált alacsony sebességű óra (LSI) hajtja, akkor is működik, ha a főóra meghibásodik.

Alkalmas olyan helyzetekben, amikor a felügyeletnek teljesen önállóan kell dolgoznia a főprogramon kívül, és alacsony időbeli pontosságot igényel. Ablakfigyelő (WWDG):

Az óra hajtja az APB1 órából a frekvenciaosztást követően. Rendellenesen késői vagy idő előtti alkalmazásműveletet észlelhet egy konfigurálható időablakon keresztül. Alkalmas azokhoz a programokhoz, amelyekhez a watchdogsnak pontos időzítésre van szüksége a Windows rendszerben.

int main (void) {

delay_init ();

// delay init NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);

// NVIC INIT uart_init (115200);

// UART INIT PAD_INIT ();

// Light Init IWDG_Init (4, 625);

míg (1) {

ha (USART_RX_END)

{kapcsoló (USART_RX_BUF [5])

{

Espresso tok:

CoffeeSelect (eszpresszó, USART_RX_BUF [8]);

szünet;

amerikai eset:

CoffeeSelect (Americano, USART_RX_BUF [8]);

A fő funkció fő logikája a következő:

u8 időzítő_cnt = 0;

void TIM3_IRQHandler (void) // TIM3

{

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

{

TIM_ClearITPendingBit (TIM3, TIM_IT_Update);

timer_cnt ++;

ha (timer_cnt> = 200)

{

milk_send [6] = tej ();

Végül adja hozzá a kódot az időzítő megszakításhoz: Az időzítő megszakításban az a célom, hogy ellenőrizze, mennyi kávé és tej maradt, majd elküldi az észlelt értéket a kijelzőre egy soros porton keresztül. A tej és kávébab maradék mennyiségének mérését általában érzékelők végzik. Az egyszerű módszerek közé tartoznak a nyomásérzékelők, amelyek mérik a tej és a kávébab aktuális súlyát, hogy meghatározzák, mennyi marad.

Írj az utolsóba

Ez a cikk csak a projektem egyszerű fejlesztési folyamatát rögzíti. Figyelembe véve a vállalat projektjének bizalmasságát, az általam használt felhasználói felület megjelenítő felületét is magam készítettem, nem pedig a projekt valódi felhasználói felület megjelenítő felületét. Az STM32 kódrésze csak az MCU perifériás illesztőprogramját és a kapcsolódó logikai kódot adja hozzá. Figyelembe véve a vállalat projektjének bizalmasságát is, az adott kulcsfontosságú technológiai rész nincs megadva, kérjük, értse meg. Az általam megadott kód szerint azonban működjön együtt a STONE kijelzővel. barátaimnak, akik szintén szoftvermérnökök, csak néhány napot kell eltölteniük, hogy kulcsfontosságú műszaki alkatrészeket adhassanak hozzá a kódkeretemhez a projekt befejezéséhez.

Ha többet szeretne megtudni a projektről, kattintson ide