Obsah:

STONE displej +STM32 +kávovar: 6 krokov
STONE displej +STM32 +kávovar: 6 krokov
Anonim
STONE displej +STM32 +kávovar
STONE displej +STM32 +kávovar

Som softvérový inžinier MCU, nedávno som dostal projekt, ktorý má byť kávovarom, požiadavky domácnosti s dotykovým ovládaním obrazovky, funkcia je dobrá, výber nad obrazovkou nemusí byť veľmi dobrý, našťastie sa tento projekt môžem rozhodnúť, čo MCU, aby som sa mohol používať sám, sa dá použiť aj na rozhodovanie o tom, čo je na obrazovke, preto som si vybral STM32 tohto druhu jednoduchého a ľahko použiteľného MCU, obrazovka displeja Vybral som si dotykový displej STONE, obrazovka je jednoduchá a ľahko sa používa, Moja STM32 MCU iba prostredníctvom komunikácie UART je v poriadku.

Sériový LCD displej STONE, ktorý môže komunikovať prostredníctvom sériového portu MCU. Logický dizajn rozhrania používateľského rozhrania tejto obrazovky je možné zároveň navrhnúť priamo pomocou poľa STONE TOOL Box, ktoré poskytuje oficiálna webová stránka spoločnosti STONE, čo je veľmi výhodné. Tak to použijem na tento projekt kávovaru. Súčasne jednoducho zaznamenám základný vývoj. Keďže ide o projekt mojej spoločnosti, zaznamenám iba jednoduché demo a nepíšem kompletný kód. Niektoré základné návody o kamennom displeji je možné získať na webovej stránke: https://www.stoneitech.com/ Na webovej stránke nájdete množstvo informácií o modeli, použití a dokumentácii k návrhu, ako aj videonávody. Nebudem sa tu príliš rozpisovať.

Krok 1: Úvod do funkcie displeja kávovaru

Tento projekt má nasledujúce funkcie: l

  • Zobrazuje aktuálny čas a dátum
  • Na displeji sú štyri tlačidlá pre americano, latte, cappuccino a espresso.
  • Zobrazuje aktuálne množstvo zostávajúcich kávových zŕn, mlieka a kávového cukru
  • V textovom poli sa zobrazuje aktuálny stav

S ohľadom na tieto koncepty môžete navrhnúť rozhranie používateľského rozhrania. STONE z dotykových obrazoviek v dizajne používateľského rozhrania je relatívne jednoduchý, používateľ prostredníctvom softvéru PhotoShop navrhne dobré rozhranie používateľského rozhrania a efekt tlačidiel, pomocou programu STONE TOOL Box navrhne na obrazovku dobré obrázky a pridá vlastné tlačidlá s logikou STONE TOOL Box a sériové údaje, návratová hodnota je v poriadku, je veľmi ľahké ich vyvinúť.

Krok 2: Vytvorte obrázky používateľského rozhrania pre STONE Display

Vytvárajte obrázky používateľského rozhrania pre displej STONE
Vytvárajte obrázky používateľského rozhrania pre displej STONE
Vytvárajte obrázky používateľského rozhrania pre displej STONE
Vytvárajte obrázky používateľského rozhrania pre displej STONE
Vytvárajte obrázky používateľského rozhrania pre displej STONE
Vytvárajte obrázky používateľského rozhrania pre displej STONE

Podľa funkčných požiadaviek som vyrobil nasledujúce dve zobrazovacie rozhrania UI, jedno je hlavným rozhraním a druhé je tlačidlovým efektom.

Použitie boxu STONE TOOL Box V súčasnej dobe STONE poskytuje NÁSTROJ. Otvorte tento NÁSTROJ a vytvorte nový projekt. Potom importujte navrhnuté používateľské rozhranie na zobrazenie obrázkov a pridajte vlastné tlačidlá, textové polia atď. Oficiálna webová stránka STONE ponúka veľmi kompletný návod, ako používať tento softvér : https:/ /www.stoneitech.com/support/download/video

Účinky pridávania tlačidiel a zobrazovania komponentov v boxe STONE TOOL Box sú nasledujúce:

STONE TOOL Box má funkciu simulačného zobrazenia, pomocou ktorého môžete vidieť efekt činnosti rozhrania používateľského rozhrania:

V tomto okamihu je moje zobrazenie používateľského rozhrania dokončené a všetko, čo musíte urobiť, je napísať kód MCU. Ak chcete zobraziť skutočné výsledky, stiahnite si súbory generované boxom STONE TOOL Box na obrazovku.

Krok 3: STM32F103RCT6

STM32F103RCT6
STM32F103RCT6

STM32F103RCT6 MCU má výkonné funkcie. Tu sú základné parametre MCU:

  • Séria: STM32F10X l Kerne
  • RAMENO - COTEX32
  • Rýchlosť: 72 MHZ
  • Komunikačné rozhranie: CAN, I2C, IrDA, LIN, SPI, UART/USART, USB
  • Periférne zariadenia: DMA, ovládanie motora PWM, PDR, POR, PVD, PWM, snímač teploty, WDT
  • Kapacita pamäte programu: 256 kB
  • Typ pamäte programu: FLASH
  • Kapacita pamäte RAM: 48K
  • Napätie - napájanie (Vcc/Vdd): 2 V ~ 3,6 V
  • Oscilátor: vnútorný
  • Prevádzková teplota: -40 ° C ~ 85 ° C
  • Balenie/bývanie: 64-životnosť

V tomto projekte použijem UART, GPIO, Watch Dog a časovač STM32F103RCT6. Vývoj týchto periférnych zariadení je dokumentovaný nižšie. STM32 POUŽÍVA vývoj softvéru Keil MDK, ktorý vám nie je cudzí, preto nebudem predstavovať spôsob inštalácie tohto softvéru. STM32 je možné simulovať online pomocou j-link alebo st-link a ďalších simulačných nástrojov. Nasledujúci obrázok je doska obvodov STM32, ktorú som použil:

Krok 4: Sériové číslo UART

Sériový UART
Sériový UART
Sériový UART
Sériový UART
Sériový UART
Sériový UART

STM32F103RCT6 má niekoľko sériových portov. V tomto projekte som použil kanál sériového portu PA9/PA10 a prenosová rýchlosť sériového portu bola stanovená na 115200.

GPIO

V užívateľskom rozhraní tohto projektu sa nachádzajú celkom štyri tlačidlá, ktoré sú vlastne na prípravu štyroch druhov kávy. V kávovare sa kontrola počtu kávových zŕn, spotreby mlieka a prietoku vody rôznych káv skutočne realizuje ovládaním senzorov a relé, pričom najskôr ovládam kolík GPIO.

Krok 5: Časovač

Časovač
Časovač
Časovač
Časovač

Pri inicializácii časovača zadajte koeficient frekvenčného delenia PSC, tu sú naše systémové hodiny (72 MHz) pre frekvenčné delenie

Potom zadajte hodnotu opätovného načítania arr, čo znamená, že keď náš časovač dosiahne toto zastavenie, časovač znova načíta ďalšie hodnoty.

Keď napríklad nastavíme časovač na odpočítavanie, hodnota počtu časovačov sa rovná arr a vymaže sa 0 a prepočíta

Časovač sa znova načíta a raz je aktualizáciou

Vypočítajte vzorec času aktualizácie Tout = ((arr +1)*(PSC +1))/Tclk

Odvodenie vzorca: Talk je hodinový zdroj časovača, tu je 72 MHz

Rozdelíme pridelenú hodinovú frekvenciu, zadáme hodnotu frekvenčného delenia ako PSC a potom náš rozhovor rozdelíme na PSC +1, konečná frekvencia nášho časovača je Tclk/(PSC +1) MHz

Frekvenciou tu teda rozumieme, že máme 1 s Talk nad číslami +1 M PSC (1 M = 10 ^ 6) a čas pre každé číslo je PSC +1 /Talk, a je ľahké pochopiť, že inverzný frekvencia je bodka a perióda pre každé číslo je PSC +1 /sekundy hovoru a potom prejdeme od 0 do arr je (arr +1)*(PSC +1) /Tclk

Nastavme napríklad arr = 7199 a PSC = 9999

72 MHz sme rozdelili na 9999+1 sa rovná 7200 Hz

Toto je 9 000 impulzov za sekundu a každý počet je 1/7, 200 sekundy

Zaznamenávame teda 9 000 čísel, aby sme prešli na aktualizáciu časovača (7199+1)*(1/7200) = 1 s, takže 1 s prejde na aktualizáciu.

neplatné TIM3_Int_Init (u16 arr, u16 psc) {

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd (RCC_APB1Periph_TIM3, POVOLIŤ);

// hodiny 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);

Ak potrebujete kompletný postup, kontaktujte nás:

www.stoneitech.com/contact

Odpoviem vám do 12 hodín.

Krok 6: Strážny pes

Strážny pes
Strážny pes
Strážny pes
Strážny pes

Aby som zabránil zrúteniu systému počas spusteného programu, pridal som strážneho psa. V skutočnosti všetky projekty, ktoré používajú MCU, spravidla používajú strážneho psa.

STM32 má dvoch vstavaných strážnych psov, ktorí poskytujú väčšiu bezpečnosť, presnosť času a flexibilitu. Na detekciu a riešenie chýb spôsobených chybami softvéru je možné použiť dve zariadenia watchdog (nezávislý strážny pes a okenný strážny pes). Akonáhle počítadlo dosiahne danú hodnotu časového limitu, spustí sa prerušenie (len watchdog okna) alebo reset systému. Nezávislý strážny pes (IWDG):

Poháňaný vyhradenými nízkootáčkovými hodinami (LSI) funguje, aj keď hlavné hodiny zlyhajú.

Je vhodný na použitie v situáciách, kde sa vyžaduje, aby strážny pes pracoval úplne nezávisle mimo hlavného programu a vyžadoval nízku časovú presnosť. Okenný strážny pes (WWDG):

Poháňané hodinami z hodín APB1 po frekvenčnom delení. Zistite abnormálne neskoré alebo predčasné fungovanie aplikácie prostredníctvom konfigurovateľného časového okna. Vhodné pre programy, ktoré vyžadujú funkciu strážnych psov v presnom načasovaní systému Windows.

int main (neplatné) {

delay_init ();

// oneskorenie init NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);

// NVIC INIT uart_init (115200);

// UART INIT PAD_INIT ();

// Light Init IWDG_Init (4, 625);

pričom (1) {

ak (USART_RX_END)

{prepínač (USART_RX_BUF [5])

{

puzdro Espresso:

CoffeeSelect (Espresso, USART_RX_BUF [8]);

prestávka;

prípad Americano:

CoffeeSelect (Americano, USART_RX_BUF [8]);

Hlavná logika v hlavnej funkcii je nasledovná:

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 ++;

ak (timer_cnt> = 200)

{

milk_send [6] = mlieko ();

Nakoniec pridajte kód do prerušenia časovača: V prípade prerušenia časovača je mojím cieľom skontrolovať, koľko kávy a mlieka zostáva, a potom odoslať zistenú hodnotu na obrazovku cez sériový port. Meranie toho, koľko mlieka a kávových zŕn zostalo, sa zvyčajne vykonáva senzormi. Medzi jednoduché metódy patria snímače tlaku, ktoré merajú aktuálnu hmotnosť mlieka a kávových zŕn, aby určili, koľko zostáva.

Napíšte do posledného

Tento článok zaznamenáva iba jednoduchý vývojový proces môjho projektu. Vzhľadom na dôvernosť projektu spoločnosti som zobrazovacie rozhranie UI, ktoré som použil, tiež vytvoril sám, nie skutočné používateľské rozhranie tohto projektu. Kódová časť STM32 pridáva iba periférny ovládač MCU a príslušný logický kód. Vzhľadom na dôvernosť projektu spoločnosti nie je uvedená konkrétna kľúčová technologická časť, prosím pochopte. Podľa kódu, ktorý som poskytol, však spolupracujte s obrazovkou STONE. mojim priateľom, ktorí sú tiež softvérovými inžiniermi, stačí, aby strávili niekoľko dní a pridali kľúčové technické časti do môjho rámca kódu na dokončenie projektu.

Ak sa chcete o projekte dozvedieť viac, kliknite sem