Orodha ya maudhui:
- Hatua ya 1: Utangulizi wa Kazi ya Kuonyesha Mashine ya Kahawa
- Hatua ya 2: Tengeneza Picha za UI kwa Uonyesho wa JIWE
- Hatua ya 3: STM32F103RCT6
- Hatua ya 4: UART Serial
- Hatua ya 5: Timer
- Hatua ya 6: Tazama Mbwa
Video: Onyesha JIWE + STM32 + Mtengenezaji wa Kahawa: Hatua 6
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
Mimi ni mhandisi wa programu ya MCU, hivi karibuni nilipokea mradi ni kuwa mashine ya kahawa, mahitaji ya kaya na operesheni ya skrini ya kugusa, kazi ni nzuri, iko juu ya uteuzi wa skrini inaweza kuwa sio nzuri sana, kwa bahati nzuri, mradi huu ninaweza kuamua ni nini MCU kutumia mwenyewe, pia inaweza kutumiwa kuamua skrini gani, kwa hivyo nilichagua STM32 ya aina hii ya MCU rahisi na rahisi kutumia, skrini ya kuonyesha nilichagua onyesho la skrini ya kugusa ya STONE, skrini ni rahisi na rahisi kutumia, Yangu STM32 MCU tu kupitia mawasiliano ya UART ni sawa nayo.
JIWE la skrini ya kuonyesha LCD ya jiwe, ambayo inaweza kuwasiliana kupitia bandari ya serial ya MCU. Wakati huo huo, muundo wa mantiki wa kiolesura cha UI cha skrini hii ya kuonyesha inaweza kutengenezwa moja kwa moja kwa kutumia Sanduku la JIWE la JIWE linalotolewa na wavuti rasmi ya STONE, ambayo ni rahisi sana. Kwa hivyo nitaitumia kwa mradi huu wa mashine ya kahawa. Wakati huo huo, nitaandika tu maendeleo ya msingi. Kwa kuwa huu ni mradi wa kampuni yangu, nitarekodi tu onyesho rahisi na sio kuandika nambari kamili. Mafunzo kadhaa ya kimsingi juu ya skrini ya kuonyesha jiwe yanaweza kwenda kwenye wavuti: https://www.stoneitech.com/ Wavuti ina habari anuwai juu ya mfano, matumizi, na nyaraka za muundo, na pia mafunzo ya video. Sitakwenda kwa undani sana hapa.
Hatua ya 1: Utangulizi wa Kazi ya Kuonyesha Mashine ya Kahawa
Mradi huu una kazi zifuatazo: l
- Inaonyesha wakati na tarehe ya sasa
- Kuna vifungo vinne kwenye onyesho la americano, latte, cappuccino, na espresso.
- Inaonyesha kiwango cha sasa cha maharagwe ya kahawa, maziwa, na sukari ya kahawa
- Sanduku la kuonyesha maandishi linaonyesha hali ya sasa
Ukiwa na dhana hizi akilini, unaweza kubuni kiolesura cha UI. JIWE la skrini za kugusa katika muundo wa UI ni rahisi, mtumiaji kupitia programu ya PhotoShop kubuni muundo mzuri wa UI na athari ya kitufe, kupitia Sanduku la KIJITO CHA JIWE kubuni picha nzuri kwenye skrini, na ongeza vifungo vyako mwenyewe na mantiki ya JIWE la BURE data ya serial thamani ya kurudi ni sawa, ni rahisi sana kwako kukuza.
Hatua ya 2: Tengeneza Picha za UI kwa Uonyesho wa JIWE
Kulingana na mahitaji ya kiutendaji, nilitengeneza sehemu mbili zifuatazo za kuonyesha UI, moja ni kiolesura kuu na nyingine ni athari ya kitufe.
Matumizi ya Sanduku la KIWANGO CHA JIWE Hivi sasa, JIWE hutoa TOOL. Fungua TOOL hii kuunda mradi mpya, kisha ingiza UI iliyoundwa ili kuonyesha picha, na ongeza vifungo vyako mwenyewe, masanduku ya maandishi, n.k Tovuti rasmi ya JIWE ina mafunzo kamili juu ya jinsi ya kutumia programu hii: https: / /www.stoneitech.com/support/download/video
Athari za kuongeza vifungo na vifaa vya kuonyesha kwenye Sanduku la JIWE la JIWE ni kama ifuatavyo.
Sanduku la TOOL la Jiwe lina kazi ya onyesho la kuiga, kupitia ambayo unaweza kuona athari ya operesheni ya kiolesura cha UI:
Kwa wakati huu, onyesho langu la UI limekamilika, na ninachotakiwa kufanya ni kuandika nambari ya MCU Pakua faili zilizozalishwa na Sanduku la JIWE la JIWE kwenye skrini ya kuonyesha ili uone matokeo halisi.
Hatua ya 3: STM32F103RCT6
STM32F103RCT6 MCU ina kazi za nguvu. Hapa kuna vigezo vya msingi vya MCU:
- Mfululizo: STM32F10X l Kerne
- ARM - COTEX32
- Kasi: 72 MHZ
- Muunganisho wa mawasiliano: CAN, I2C, IrDA, LIN, SPI, UART / USART, USB
- Vifaa vya pembeni: DMA, udhibiti wa magari PWM, PDR, POR, PVD, PWM, sensorer ya joto, WDT
- Uwezo wa kuhifadhi programu: 256KB
- Aina ya kumbukumbu ya programu: FLASH
- Uwezo wa RAM: 48K
- Usambazaji wa umeme (Vcc / Vdd): 2 V ~ 3.6 V
- Oscillator: ndani
- Joto la kufanya kazi: -40 ° C ~ 85 ° C
- Kifurushi / nyumba: 64-maisha
Katika mradi huu, nitatumia UART, GPIO, Mbwa wa Kuangalia, na Timer ya STM32F103RCT6. Uendelezaji wa vifaa hivi umeandikwa hapa chini. STM32 INATUMIA maendeleo ya programu ya Keil MDK, ambayo sio ngeni kwako, kwa hivyo sitaanzisha njia ya usanikishaji wa programu hii. STM32 inaweza kuigwa mkondoni na j-link au st-link na zana zingine za kuiga. Picha ifuatayo ni bodi ya mzunguko ya STM32 niliyotumia:
Hatua ya 4: UART Serial
STM32F103RCT6 ina bandari kadhaa za serial. Katika mradi huu, nilitumia kituo cha bandari cha serial PA9 / PA10, na kiwango cha baud cha bandari cha serial kiliwekwa mnamo 115200.
GPIO
Katika kiolesura cha mtumiaji wa mradi huu, kuna jumla ya vifungo vinne, ambavyo kwa kweli ni utengenezaji wa aina nne za kahawa. Katika mashine ya kahawa, kudhibiti idadi ya maharagwe ya kahawa, matumizi ya maziwa, na mtiririko wa maji wa kahawa tofauti hutambuliwa kwa kudhibiti sensorer na kupeleka tena, wakati ninadhibiti tu pini ya GPIO kwanza.
Hatua ya 5: Timer
Wakati wa kuanzisha kipima muda, taja mgawo wa mgawanyiko wa masafa PSC, hapa kuna saa yetu ya mfumo (72MHz) kwa mgawanyiko wa masafa
Kisha taja safu ya kupakia tena, ambayo inamaanisha kuwa wakati wetu wa saa unapofikia upangaji huu, kipima muda kitapakia tena maadili mengine.
Kwa mfano, tunapoweka kipima muda kuhesabu, thamani ya hesabu ya saa ni sawa na safu na itafutwa na 0 na kuhesabiwa tena
Hesabu ya saa inarejeshwa tena na mara moja ni Sasisho
Hesabu Fomati ya Wakati wa Sasisha Tout = ((arr + 1) * (PSC +1)) / Tclk
Utoaji wa Mfumo: Mazungumzo ndio chanzo cha saa, hapa ni 72Mhz
Tunagawanya mzunguko wa saa uliotengwa, taja thamani ya mgawanyiko wa masafa kama PSC, kisha ugawanye Mazungumzo yetu katika PSC +1, masafa ya mwisho ya kipima muda chetu ni Tclk / (PSC +1) MHz
Kwa hivyo tunachomaanisha kwa masafa hapa ni kwamba tuna 1s ya Ongea juu ya Nambari za M 1 za PSC (1M = 10 ^ 6), na wakati wa kila nambari ni PSC +1 / Majadiliano, na ni rahisi kuelewa kwamba inverse ya masafa ni kipindi, na kipindi cha kila nambari hapa ni PSC +1 / sekunde za Majadiliano na kisha tunaenda kutoka 0 hadi arr ni (arr + 1) * (PSC +1) / Tclk
Kwa mfano, wacha tuweke arr = 7199 na PSC = 9999
Tuligawanya 72MHz katika 9999 + 1 ni sawa na 7200Hz
Hii ni hesabu 9, 000 kwa sekunde, na kila hesabu ni 1/7, 200 ya pili
Kwa hivyo tunarekodi Nambari 9, 000 hapa kwenda kwenye sasisho la kipima muda (7199 + 1) * (1/7200) = 1s, kwa hivyo 1s huenda kwa sasisho.
utupu TIM3_Int_Init (u16 arr, u16 psc) {
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd (RCC_APB1Periph_TIM3, INAWEZESHA);
// saa 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);
Tafadhali wasiliana nasi ikiwa unahitaji utaratibu kamili:
www.stoneitech.com/contact
Nitakujibu ndani ya masaa 12.
Hatua ya 6: Tazama Mbwa
Ili kuzuia mfumo usigonge wakati programu ilikuwa ikiendelea, niliongeza daladala. Kwa kweli, miradi yote inayotumia MCU kwa ujumla hutumia mwangalizi.
STM32 ina walinzi wa ndani wawili waliojengwa, kutoa usalama zaidi, usahihi wa wakati, na kubadilika. Vifaa viwili vya mwangalizi (mwangalizi huru na mwangalizi wa dirisha) vinaweza kutumiwa kugundua na kutatua makosa yanayosababishwa na makosa ya programu. Kaunta inapofikia thamani ya muda uliopangwa, kukatiza (mwangalizi wa dirisha pekee) au kuweka upya mfumo kunasababishwa. Mtazamaji huru (IWDG):
Inaendeshwa na saa ya kasi ya chini (LSI), inafanya kazi hata kama saa kuu inashindwa.
Inafaa kutumiwa katika hali ambapo mwangalizi anahitajika kufanya kazi kwa uhuru kabisa nje ya programu kuu na inahitaji usahihi wa wakati mdogo. Mwangalizi wa dirisha (WWDG):
Inaendeshwa na saa kutoka saa ya APB1 baada ya kugawanywa kwa masafa. Gundua operesheni ya matumizi ya kuchelewa au mapema mapema bila kupita kupitia dirisha linaloweza kusanidiwa. Inafaa kwa programu ambazo zinahitaji saa za waangalizi kufanya kazi kwa wakati sahihi wa Windows.
kuu (batili) {
kuchelewesha_init ();
// kuchelewesha init NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);
// NVIC INIT uart_init (115200);
// UART INIT PAD_INIT ();
// Mwanga Init IWDG_Init (4, 625);
wakati (1) {
ikiwa (USART_RX_END)
{kubadili (USART_RX_BUF [5])
{
kesi Espresso:
Chagua Kahawa (Espresso, USART_RX_BUF [8]);
kuvunja;
kesi Americano:
Chagua Kahawa (Americano, USART_RX_BUF [8]);
Mantiki kuu katika kazi kuu ni kama ifuatavyo.
timer_cnt = 0;
batili TIM3_IRQHandler (batili) // TIM3
{
ikiwa (TIM_GetITStatus (TIM3, TIM_IT_Update)! = Rudisha)
{
TIM_ClearITPendingBit (TIM3, TIM_IT_Usasisha);
timer_cnt ++;
ikiwa (timer_cnt> = 200)
{
kutuma_sia [6] = maziwa ();
Mwishowe, ongeza nambari kwenye kukatisha timer: Kwa kukatisha saa, lengo langu ni kuangalia ni kahawa na maziwa kiasi gani kilichobaki, halafu tuma thamani iliyogunduliwa kwenye skrini ya kuonyesha kupitia bandari ya serial. Kupima kiasi cha maziwa na maharagwe ya kahawa iliyobaki kawaida hufanywa na sensorer. Njia rahisi ni pamoja na sensorer za shinikizo, ambazo hupima uzito wa sasa wa maharagwe ya maziwa na kahawa kuamua ni kiasi gani kilichobaki.
Andika mwisho
Nakala hii inarekodi tu mchakato rahisi wa maendeleo wa mradi wangu. Kuzingatia usiri wa mradi wa kampuni, kiolesura cha uonyesho cha UI nilichotumia pia kilifanywa na mimi mwenyewe, sio kiolesura cha kuonyesha UI halisi cha mradi huu. Sehemu ya nambari ya STM32 inaongeza tu dereva wa pembeni wa MCU na nambari ya mantiki inayohusiana. Pia kuzingatia usiri wa mradi wa kampuni, sehemu maalum ya teknolojia haijapewa, tafadhali elewa. Walakini, kulingana na nambari niliyotoa, shirikiana na skrini ya JIWE la onyesho. marafiki wangu ambao pia ni wahandisi wa programu wanahitaji kutumia siku chache tu kuongeza sehemu muhimu za kiufundi kwenye mfumo wa nambari yangu ili kukamilisha mradi huo.
Ili kujifunza zaidi juu ya mradi bonyeza hapa