Përmbajtje:

STONE Display +STM32 +Makinë kafeje: 6 hapa
STONE Display +STM32 +Makinë kafeje: 6 hapa

Video: STONE Display +STM32 +Makinë kafeje: 6 hapa

Video: STONE Display +STM32 +Makinë kafeje: 6 hapa
Video: Data Mining in IoT: From Sensors to Insights (Get the data, then make use of it!) 2024, Nëntor
Anonim
STONE Display +STM32 +Krijues kafeje
STONE Display +STM32 +Krijues kafeje

Unë jam një inxhinier softuerësh MCU, kohët e fundit kam marrë një projekt për të qenë një aparat kafeje, kërkesat shtëpiake me një ekran me prekje, funksioni është i mirë, është mbi zgjedhjen e ekranit mund të mos jetë shumë i mirë, për fat të mirë, ky projekt mund të vendosë se çfarë MCU për ta përdorur veten, gjithashtu mund të përdoret për të vendosur se çfarë ekrani, kështu që zgjodha STM32 të këtij lloji të MCU të thjeshtë dhe të lehtë për t’u përdorur, ekran me ekran zgjodha ekranin me prekje të STONE, ekrani është i thjeshtë dhe i lehtë për t’u përdorur, imi STM32 MCU vetëm përmes komunikimit UART është në rregull me të.

Ekrani LCD i serisë STONE, i cili mund të komunikojë përmes portës serike të MCU. Në të njëjtën kohë, dizajni logjik i ndërfaqes UI të këtij ekrani të ekranit mund të dizajnohet drejtpërdrejt duke përdorur STONE TOOL Box të ofruar nga faqja zyrtare e STONE, e cila është shumë e përshtatshme. Kështu që unë do ta përdor për këtë projekt të makinës së kafesë. Në të njëjtën kohë, unë thjesht do të regjistroj zhvillimin bazë. Meqenëse ky është një projekt i kompanisë sime, unë do të regjistroj vetëm një demonstrim të thjeshtë dhe nuk do të shkruaj kodin e plotë. Disa mësime themelore rreth ekranit prej guri mund të shkojnë në faqen e internetit: https://www.stoneitech.com/ Faqja e internetit ka një larmi informacioni në lidhje me modelin, përdorimin dhe dokumentacionin e projektimit, si dhe video mësime. Këtu nuk do të hyj në shumë detaje.

Hapi 1: Funksioni i ekranit të aparatit të kafesë Hyrje

Ky projekt ka këto funksione: l

  • Shfaq kohën dhe datën aktuale
  • Ka katër butona në ekran për americano, latte, cappuccino dhe ekspres.
  • Shfaq sasinë aktuale të kokrrave të mbetura të kafesë, qumështit dhe sheqerit të kafesë
  • Një kuti e shfaqjes së tekstit shfaq gjendjen aktuale

Me këto koncepte në mendje, ju mund të krijoni një ndërfaqe UI. GURI i ekraneve me prekje në dizajnin UI është relativisht i thjeshtë, përdoruesi përmes softuerit PhotoShop dizajnon ndërfaqe të mirë UI dhe efekt butoni, përmes STONE TOOL Box për të dizajnuar fotografi të mira në ekran, dhe shtoni butonat tuaj me logjikën STONE TOOL Box dhe të dhënat serike vlera e kthimit është në rregull, shumë e lehtë për ju që të zhvilloni.

Hapi 2: Bëni fotografi UI për ekranin GURIN

Bëni fotografi UI për ekranin GURIN
Bëni fotografi UI për ekranin GURIN
Bëni fotografi UI për ekranin GURIN
Bëni fotografi UI për ekranin GURIN
Bëni fotografi UI për ekranin GURIN
Bëni fotografi UI për ekranin GURIN

Sipas kërkesave funksionale, unë bëra dy ndërfaqet e mëposhtme të ekranit UI, njëra është ndërfaqja kryesore dhe tjetra është efekti i butonit.

Përdorimi i Kutisë së GURIT TONA Aktualisht, GURI ofron TOOL. Hapeni këtë MJET për të krijuar një projekt të ri, më pas importoni UI -në e projektuar për të shfaqur fotografi, dhe shtoni butonat tuaj, kutitë e shfaqjes së tekstit, etj. Faqja zyrtare e internetit e STONE ka një tutorial shumë të plotë se si ta përdorni këtë softuer : https:/ /www.stoneitech.com/support/download/video

Efektet e shtimit të butonave dhe shfaqjes së përbërësve në STONE TOOL Box janë si më poshtë:

STONE TOOL Box ka funksionin e ekranit të simulimit, përmes të cilit mund të shihni efektin e funksionimit të ndërfaqes UI:

Në këtë pikë, ekrani im i ndërfaqes së përdoruesit është i plotë, dhe gjithçka që duhet të bëj është të shkruaj kodin MCU. Shkarkoni skedarët e krijuar nga STONE TOOL Box në ekranin e ekranit për të parë rezultatet aktuale.

Hapi 3: STM32F103RCT6

STM32F103RCT6
STM32F103RCT6

STM32F103RCT6 MCU ka funksione të fuqishme. Këtu janë parametrat bazë të MCU:

  • Seri: STM32F10X l Kerne
  • ARM - COTEX32
  • Shpejtësia: 72 MHZ
  • Ndërfaqja e komunikimit: CAN, I2C, IrDA, LIN, SPI, UART/USART, USB
  • Pajisjet periferike: DMA, kontrolli motorik PWM, PDR, POR, PVD, PWM, sensori i temperaturës, WDT
  • Kapaciteti i ruajtjes së programit: 256KB
  • Lloji i kujtesës së programit: FLASH
  • Kapaciteti RAM: 48K
  • Tensioni - furnizimi me energji (Vcc/Vdd): 2 V ~ 3.6 V
  • Oshilator: i brendshëm
  • Temperatura e funksionimit: -40 ° C ~ 85 ° C
  • Paketa/strehimi: 64-jetë

Në këtë projekt, unë do të përdor UART, GPIO, Watch Dog dhe Timer të STM32F103RCT6. Zhvillimi i këtyre pajisjeve periferike dokumentohet më poshtë. STM32 përdor zhvillimin e softuerit Keil MDK, i cili nuk është i huaj për ju, kështu që unë nuk do të prezantoj metodën e instalimit të këtij softueri. STM32 mund të simulohet në internet nga j-link ose st-link dhe mjete të tjera simulimi. Fotografia e mëposhtme është bordi i qarkut STM32 që kam përdorur:

Hapi 4: Seriali UART

Seriali UART
Seriali UART
Seriali UART
Seriali UART
Seriali UART
Seriali UART

STM32F103RCT6 ka disa porte serike. Në këtë projekt, unë përdor kanalin portual serial PA9/PA10, dhe shkalla e ngarkimit të portit serik u vendos në 115200.

GPIO

Në ndërfaqen e përdoruesit të këtij projekti, ka gjithsej katër butona, të cilët në fakt janë prodhimi i katër llojeve të kafesë. Në aparatin e kafesë, kontrolli i numrit të kokrrave të kafesë, konsumit të qumështit dhe rrjedhjes së ujit të kafeve të ndryshme në të vërtetë realizohet duke kontrolluar sensorë dhe stafetë, ndërsa unë thjesht kontrolloj së pari kunjin GPIO.

Hapi 5: Kohëmatësi

Kohëmatësi
Kohëmatësi
Kohëmatësi
Kohëmatësi

Kur filloni kohëmatësin, specifikoni koeficientin e ndarjes së frekuencës PSC, këtu është ora jonë e sistemit (72MHz) për ndarjen e frekuencës

Pastaj specifikoni shigjetën e vlerës së ngarkimit, që do të thotë se kur kohëmatësi ynë të arrijë këtë arr, kohëmatësi do të ngarkojë vlera të tjera.

Për shembull, kur vendosim që kohëmatësi të numërojë, vlera e numërimit të kohëmatësit është e barabartë me arr dhe do të pastrohet me 0 dhe do të rillogaritet

Numërimi i kohëmatësit rimbushet dhe një herë është një përditësim

Llogaritni formulën e kohës së azhurnimit Tout = ((arr +1)*(PSC +1))/Tclk

Prejardhja e formulës: Biseda është burimi i orës i kohëmatësit, këtu është 72Mhz

Ne ndajmë frekuencën e caktuar të orës, specifikojmë vlerën e ndarjes së frekuencës si PSC, pastaj ndajmë Talk -in tonë në PSC +1, frekuenca përfundimtare e kohëmatësit tonë është Tclk/(PSC +1) MHz

Pra, ajo që nënkuptojmë me frekuencën këtu është se ne kemi 1s të Fjalimit mbi Numrat PSC +1 M (1M = 10 ^ 6), dhe koha për secilin numër është PSC +1 /Talk, dhe është e lehtë të kuptohet se e kundërta e frekuencës është periudha, dhe periudha për secilin numër këtu është PSC +1 /Flisni sekonda dhe pastaj shkojmë nga 0 në arr është (arr +1)*(PSC +1) /Tclk

Për shembull, le të vendosim arr = 7199 dhe PSC = 9999

Ne i ndamë 72MHz në 9999+1 është e barabartë me 7200Hz

Kjo është 9, 000 numërime në sekondë, dhe secila numërim është 1/7, 200 e sekondës

Pra, ne po regjistrojmë 9, 000 Numra këtu për të shkuar te përditësimi i kohëmatësit (7199+1)*(1/7200) = 1s, kështu që 1s shkon në një përditësim.

i pavlefshëm TIM3_Int_Init (arr u16, u16 psc) {

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStruktura; RCC_APB1PeriphClockCmd (RCC_APB1Periph_TIM3, E LIR);

// ora TIM_TimeBaseStructure. TIM_Periudha = 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);

Ju lutemi na kontaktoni nëse keni nevojë për një procedurë të plotë:

www.stoneitech.com/contact

Unë do t'ju përgjigjem brenda 12 orëve.

Hapi 6: Qeni Watch

Watch Dog
Watch Dog
Watch Dog
Watch Dog

Për të parandaluar që sistemi të mos rrëzohej ndërsa programi po funksiononte, shtova rojen. Në fakt, të gjitha projektet që përdorin MCU në përgjithësi përdorin një rojtar.

STM32 ka dy rojtarë të integruar, duke siguruar siguri më të madhe, saktësi në kohë dhe fleksibilitet. Dy pajisje mbikëqyrëse (mbikëqyrës i pavarur dhe mbikëqyrës i dritareve) mund të përdoren për të zbuluar dhe zgjidhur gabimet e shkaktuara nga gabimet e softuerit. Kur numëruesi arrin një vlerë të caktuar kohore, aktivizohet një ndërprerje (vetëm rojtari i dritares) ose rivendosja e sistemit. Mbikëqyrës i pavarur (IWDG):

Drejtuar nga një orë e dedikuar me shpejtësi të ulët (LSI), funksionon edhe nëse ora kryesore dështon.

Shtë i përshtatshëm për t'u përdorur në situata kur rojes i kërkohet të punojë plotësisht në mënyrë të pavarur jashtë programit kryesor dhe kërkon saktësi të ulët kohore. Mbikëqyrësi i dritareve (WWDG):

Drejtuar nga ora nga ora APB1 pas ndarjes së frekuencës. Zbuloni funksionimin jonormalisht të vonshëm ose të parakohshëm të aplikimit përmes një dritareje kohore të konfigurueshme. I përshtatshëm për programet që kërkojnë që rojet të funksionojnë në kohën e saktë të Windows.

int kryesore (e pavlefshme) {

delay_init ();

// vono fillimin NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);

// NVIC INIT uart_init (115200);

// UART INIT PAD_INIT ();

// Init i lehtë IWDG_Init (4, 625);

ndërsa (1) {

nëse (USART_RX_END)

{switch (USART_RX_BUF [5])

{

rast Espresso:

Zgjedhja e kafesë (ekspres, USART_RX_BUF [8]);

pushim;

rasti amerikano:

CoffeeSelect (Americano, USART_RX_BUF [8]);

Logjika kryesore në funksionin kryesor është si më poshtë:

u8 timer_cnt = 0;

i pavlefshëm TIM3_IRQHandler (i pavlefshëm) // TIM3

{

nëse (TIM_GetITStatus (TIM3, TIM_IT_Update)! = RESETO)

{

TIM_ClearITPendingBit (TIM3, TIM_IT_Update);

timer_cnt ++;

nëse (timer_cnt> = 200)

{

qumësht_dërgon [6] = qumësht ();

Së fundi, shtoni kodin në ndërprerjen e kohëmatësit: Në ndërprerjen e kohëmatësit, qëllimi im është të kontrolloj sa kafe dhe qumësht ka mbetur, dhe pastaj të dërgoj vlerën e zbuluar në ekranin e ekranit përmes një porti serik. Matja e sasisë së tepërt të qumështit dhe kafesë bëhet zakonisht nga sensorët. Metodat e thjeshta përfshijnë sensorë presioni, të cilët matin peshën aktuale të qumështit dhe kokrrave të kafesë për të përcaktuar se sa ka mbetur.

Shkruani në të fundit

Ky artikull regjistron vetëm procesin e thjeshtë të zhvillimit të projektit tim. Duke marrë parasysh konfidencialitetin e projektit të kompanisë, ndërfaqja e ekranit UI që kam përdorur është bërë gjithashtu nga unë vetë, jo ndërfaqja e vërtetë e ekranit UI e këtij projekti. Pjesa e kodit të STM32 shton vetëm drejtuesin periferik të MCU dhe kodin logjik të lidhur. Gjithashtu duke pasur parasysh konfidencialitetin e projektit të kompanisë, pjesa kryesore e teknologjisë kryesore nuk është dhënë, ju lutemi kuptoni. Sidoqoftë, sipas kodit që kam dhënë, bashkëpunoni me ekranin e GURIT. miqtë e mi që janë gjithashtu inxhinierë softuerësh duhet të kalojnë vetëm disa ditë për të shtuar pjesët kryesore teknike në kornizën time të kodit për të përfunduar projektin.

Për të mësuar më shumë rreth projektit klikoni këtu