ዝርዝር ሁኔታ:

የድንጋይ ማሳያ +STM32 +የቡና ሰሪ: 6 ደረጃዎች
የድንጋይ ማሳያ +STM32 +የቡና ሰሪ: 6 ደረጃዎች

ቪዲዮ: የድንጋይ ማሳያ +STM32 +የቡና ሰሪ: 6 ደረጃዎች

ቪዲዮ: የድንጋይ ማሳያ +STM32 +የቡና ሰሪ: 6 ደረጃዎች
ቪዲዮ: SKR Pro v1.2 - Basics 2024, ህዳር
Anonim
የድንጋይ ማሳያ +STM32 +የቡና ሰሪ
የድንጋይ ማሳያ +STM32 +የቡና ሰሪ

እኔ የ MCU ሶፍትዌር መሐንዲስ ነኝ ፣ በቅርብ ጊዜ ፕሮጀክት የተቀበለው የቡና ማሽን መሆን ፣ የንኪ ማያ ገጽ አሠራር ያለው የቤት መስፈርቶች ፣ ተግባሩ ጥሩ ነው ፣ ከማያ ገጹ ምርጫ በላይ በጣም ጥሩ ላይሆን ይችላል ፣ እንደ እድል ሆኖ ፣ ይህ ፕሮጀክት እኔ ምን መወሰን እችላለሁ እኔ እራሴን ለመጠቀም MCU ፣ እንዲሁም ማያ ገጹን ለመወሰን ጥቅም ላይ ሊውል ይችላል ፣ ስለዚህ የዚህ ዓይነቱን ቀላል እና ቀላል MCU ለመጠቀም STM32 ን መርጫለሁ ፣ የማሳያ ማያ ገጽ እኔ የ STONE ንኪ ማያ ገጽ ማሳያ መርጫለሁ ፣ ማያ ገጹ ቀላል እና ለመጠቀም ቀላል ነው ፣ የእኔ STM32 MCU በ UART ግንኙነት በኩል ብቻ ከእሱ ጋር ጥሩ ነው።

በ MCU ተከታታይ ወደብ በኩል መገናኘት የሚችል የ STONE ተከታታይ LCD ማሳያ ማያ ገጽ። በተመሳሳይ ጊዜ የዚህ የማሳያ ማያ ገጽ በይነገጽ አመክንዮ ዲዛይን በ STONE ኦፊሴላዊ ድር ጣቢያ የቀረበው የ STONE TOOL ሣጥን በመጠቀም በቀጥታ ሊነድፍ ይችላል ፣ ይህም በጣም ምቹ ነው። ስለዚህ ለዚህ የቡና ማሽን ፕሮጀክት እጠቀምበታለሁ። በተመሳሳይ ጊዜ እኔ መሠረታዊውን ልማት በቀላሉ እቀዳለሁ። ይህ የእኔ ኩባንያ ፕሮጀክት እንደመሆኑ እኔ ቀለል ያለ ማሳያ ብቻ እቀዳለሁ እና ሙሉውን ኮድ አልጽፍም። ስለ የድንጋይ ማሳያ ማያ ገጽ አንዳንድ መሠረታዊ ትምህርቶች ወደ ድር ጣቢያው መሄድ ይችላሉ- https://www.stoneitech.com/ ድር ጣቢያው ስለ አምሳያው ፣ አጠቃቀም እና ዲዛይን ሰነዶች እንዲሁም የቪዲዮ ትምህርቶች የተለያዩ መረጃዎች አሉት። እዚህ በጣም ብዙ ዝርዝር ውስጥ አልገባም።

ደረጃ 1 የቡና ማሽን ማሳያ ማያ ገጽ ተግባር መግቢያ

ይህ ፕሮጀክት የሚከተሉት ተግባራት አሉት - l

  • የአሁኑን ሰዓት እና ቀን ያሳያል
  • በማሳያው ላይ ለአሜሪካኖ ፣ ለላጤ ፣ ለካፒቺኖ እና ለኤስፕሬሶ አራት አዝራሮች አሉ።
  • የወቅቱን የቡና ፍሬዎች ፣ ወተት እና የቡና ስኳር መጠን ያሳያል
  • የጽሑፍ ማሳያ ሳጥን የአሁኑን ሁኔታ ያሳያል

እነዚህን ጽንሰ -ሀሳቦች ከግምት ውስጥ በማስገባት የተጠቃሚ በይነገጽ በይነገጽ ማዘጋጀት ይችላሉ። በዩአይ ዲዛይን ውስጥ የንክኪ ማያ ገጾች ድንጋይ በአንፃራዊነት ቀላል ነው ፣ ተጠቃሚው በፎቶሾፕ ሶፍትዌር ጥሩ በይነገጽ በይነገጽ እና የአዝራር ውጤት ፣ በ STONE TOOL ሳጥን በኩል ጥሩ ስዕሎችን ወደ ማያ ገጹ ለመቅረጽ እና የራስዎን ቁልፎች በ STONE TOOL Box አመክንዮ እና ተከታታይ ውሂብ የመመለሻ እሴቱ ደህና ነው ፣ ለማዳበርዎ በጣም ቀላል ነው።

ደረጃ 2 ለድንጋይ ማሳያ የ UI ሥዕሎችን ይስሩ

ለድንጋይ ማሳያ በይነገጽ ሥዕሎችን ይስሩ
ለድንጋይ ማሳያ በይነገጽ ሥዕሎችን ይስሩ
ለድንጋይ ማሳያ በይነገጽ ሥዕሎችን ይስሩ
ለድንጋይ ማሳያ በይነገጽ ሥዕሎችን ይስሩ
ለድንጋይ ማሳያ በይነገጽ ሥዕሎችን ይስሩ
ለድንጋይ ማሳያ በይነገጽ ሥዕሎችን ይስሩ

በተግባራዊ መስፈርቶች መሠረት የሚከተሉትን ሁለት በይነገጽ ማሳያ በይነገጾችን ሠራሁ ፣ አንደኛው ዋናው በይነገጽ እና ሌላኛው የአዝራር ውጤት ነው።

የድንጋይ መሣሪያ ሣጥን አጠቃቀም በአሁኑ ጊዜ STONE መሣሪያን ይሰጣል። አዲስ ፕሮጀክት ለመፍጠር ይህንን መሣሪያ ይክፈቱ ፣ ከዚያ ስዕሎችን ለማሳየት የተቀየሰውን በይነገጽ ያስመጡ እና የራስዎን አዝራሮች ፣ የጽሑፍ ማሳያ ሳጥኖችን ፣ ወዘተ ይጨምሩ። የ STONE ኦፊሴላዊ ድር ጣቢያ ይህንን ሶፍትዌር እንዴት እንደሚጠቀሙበት በጣም የተሟላ መማሪያ አለው : https:/ /www.stoneitech.com/support/download/video

በ STONE TOOL ሳጥን ውስጥ አዝራሮችን ማከል እና አካላትን የማሳየት ውጤቶች እንደሚከተለው ናቸው

የድንጋይ መሣሪያ ሣጥን የማስመሰል ማሳያ ተግባር አለው ፣ በእሱ በኩል የበይነገጽ በይነገጽ የአሠራር ውጤትን ማየት ይችላሉ-

በዚህ ጊዜ ፣ የእኔ በይነገጽ ማሳያ ተጠናቅቋል ፣ እና ማድረግ ያለብኝ የ MCU ኮድ መፃፍ ብቻ ነው። ትክክለኛውን ውጤት ለማየት በ STONE TOOL ሣጥን የተፈጠሩ ፋይሎችን በማሳያው ማያ ገጽ ላይ ያውርዱ።

ደረጃ 3 STM32F103RCT6

STM32F103RCT6
STM32F103RCT6

STM32F103RCT6 MCU ኃይለኛ ተግባራት አሉት። የ MCU መሠረታዊ መለኪያዎች እዚህ አሉ

  • ተከታታይ: STM32F10X l Kerne
  • ARM - COTEX32
  • ፍጥነት: 72 ሜኸ
  • የግንኙነት በይነገጽ - CAN ፣ I2C ፣ IrDA ፣ LIN ፣ SPI ፣ UART/USART ፣ USB
  • ተጓዳኝ መሣሪያዎች - ዲኤምኤ ፣ የሞተር መቆጣጠሪያ PWM ፣ PDR ፣ POR ፣ PVD ፣ PWM ፣ የሙቀት ዳሳሽ ፣ WDT
  • የፕሮግራም ማከማቻ አቅም - 256 ኪባ
  • የፕሮግራም ማህደረ ትውስታ ዓይነት - ፍላሽ
  • ራም አቅም - 48 ኪ
  • ቮልቴጅ - የኃይል አቅርቦት (Vcc/Vdd): 2 V ~ 3.6 V
  • Oscillator: ውስጣዊ
  • የአሠራር ሙቀት -40 ° ሴ ~ 85 ° ሴ
  • ጥቅል/መኖሪያ ቤት-64-ሕይወት

በዚህ ፕሮጀክት ውስጥ የ STM32F103RCT6 ን UART ፣ GPIO ፣ Watch Dog እና Timer ን እጠቀማለሁ። የእነዚህ ተጓዳኝ አካላት ልማት ከዚህ በታች ተዘርዝሯል። STM32 ለርስዎ እንግዳ ያልሆነውን የኪይል ኤምዲኬ ሶፍትዌር ልማት ይጠቀማል ፣ ስለዚህ የዚህን ሶፍትዌር የመጫኛ ዘዴ አላስተዋውቅም። STM32 በ j-link ወይም st-link እና በሌሎች የማስመሰል መሣሪያዎች በመስመር ላይ ማስመሰል ይችላል። የሚከተለው ስዕል እኔ የተጠቀምኩበት የ STM32 የወረዳ ሰሌዳ ነው

ደረጃ 4: UART ተከታታይ

UART ተከታታይ
UART ተከታታይ
UART ተከታታይ
UART ተከታታይ
UART ተከታታይ
UART ተከታታይ

STM32F103RCT6 በርካታ ተከታታይ ወደቦች አሉት። በዚህ ፕሮጀክት ውስጥ እኔ ተከታታይ ወደብ ሰርጥ PA9/PA10 ን እጠቀም ነበር ፣ እና ተከታታይ ወደብ ባውድ ተመን በ 115200 ተዘጋጅቷል።

ጂፒኦ

በዚህ ፕሮጀክት የተጠቃሚ በይነገጽ ውስጥ በአጠቃላይ አራት አዝራሮች አሉ ፣ እነሱ በእውነቱ አራት ዓይነት ቡና ማምረት ናቸው። በቡና ማሽኑ ውስጥ የቡና ፍሬዎችን ብዛት ፣ የወተት ፍጆታን እና የተለያዩ የቡናዎችን የውሃ ፍሰት በትክክል መቆጣጠር የሚቻለው ዳሳሾችን እና ቅብብልን በመቆጣጠር ነው ፣ እኔ ግን በቀላሉ የጂፒኦ ፒን መጀመሪያ እቆጣጠራለሁ።

ደረጃ 5 ሰዓት ቆጣሪ

ሰዓት ቆጣሪ
ሰዓት ቆጣሪ
ሰዓት ቆጣሪ
ሰዓት ቆጣሪ

የሰዓት ቆጣሪውን በሚጀምሩበት ጊዜ ፣ የድግግሞሽ ክፍፍል ጠቋሚ PSC ን ይግለጹ ፣ ለተደጋጋሚነት ክፍፍል የእኛ የስርዓት ሰዓት (72 ሜኸ) እዚህ አለ።

ከዚያ የዳግም ጫኝ እሴቱን ይግለጹ ፣ ይህ ማለት የእኛ ሰዓት ቆጣሪ ወደዚህ አርአ ሲደርስ ሰዓት ቆጣሪው ሌሎች እሴቶችን እንደገና ይጫናል ማለት ነው።

ለምሳሌ ፣ ሰዓት ቆጣሪውን ለመቁጠር ስናስቀምጠው ፣ የሰዓት ቆጣሪ ቆጠራው ዋጋ ከአር ጋር እኩል ነው እና በ 0 ይጸዳል እና እንደገና ይሰላል

የሰዓት ቆጣሪ ቆጠራ እንደገና ተጭኗል እና አንዴ ዝመና ነው

የማዘመን ጊዜ ቀመር Tout = ((arr +1)*(PSC +1))/Tclk

የቀመር ቀመር - ንግግር የሰዓት ቆጣሪ የሰዓት ምንጭ ነው ፣ እዚህ 72 ሜኸዝ ነው

የተመደበውን የሰዓት ድግግሞሽ እንከፋፍለን ፣ የተደጋጋሚነት ክፍፍል እሴትን እንደ PSC እንገልፃለን ፣ ከዚያ ንግግራችንን ወደ PSC +1 እንከፋፍለን ፣ የሰዓት ቆጣሪያችን የመጨረሻ ድግግሞሽ Tclk/(PSC +1) ሜኸ ነው

ስለዚህ እዚህ ድግግሞሽ ማለታችን እኛ በ 1 ፒሲሲ +1 ሜ ቁጥሮች (1M = 10 ^ 6) ላይ 1s ማውራት አለብን ፣ እና ለእያንዳንዱ ቁጥር ጊዜው PSC +1 /ቶክ ነው ፣ እና የተገላቢጦሹን ለመረዳት ቀላል ነው የተደጋጋሚው ጊዜ ነው ፣ እና ለእያንዳንዱ ቁጥር እዚህ ያለው PSC +1 /ቶክ ሰከንዶች ነው እና ከዚያ ከ 0 ወደ arr እንሄዳለን (arr +1)*(PSC +1) /Tclk

ለምሳሌ ፣ arr = 7199 እና PSC = 9999 ን እናስቀምጥ

72MHz ን ወደ 9999+1 ተከፋፍለን ከ 7200Hz ጋር እኩል ነው

ይህ በሰከንድ 9,000 ነው ፣ እና እያንዳንዱ ቆጠራ 1/7 ፣ 200 ሴኮንድ ነው

ስለዚህ ወደ ሰዓት ቆጣሪ ዝማኔ (7199+1)*(1/7200) = 1 ዎች ለመሄድ እዚህ 9, 000 ቁጥሮችን እንቀዳለን ፣ ስለዚህ 1 ዎች ወደ ዝማኔ ይሄዳል።

ባዶ TIM3_Int_Init (u16 arr, u16 psc) {

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd (RCC_APB1Periph_TIM3 ፣ አንቃ);

// ሰዓት 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);

የተሟላ የአሠራር ሂደት ከፈለጉ እባክዎን ያነጋግሩን-

www.stoneitech.com/contact

በ 12 ሰዓታት ውስጥ እመልስልሃለሁ።

ደረጃ 6 ውሻ ይመልከቱ

ውሻ ይመልከቱ
ውሻ ይመልከቱ
ውሻ ይመልከቱ
ውሻ ይመልከቱ

ፕሮግራሙ በሚሠራበት ጊዜ ስርዓቱ እንዳይበላሽ ለመከላከል እኔ ጠባቂውን ጨመርኩ። በእርግጥ ፣ MCU ን የሚጠቀሙ ሁሉም ፕሮጄክቶች በአጠቃላይ የጥበቃ ሠራተኛ ይጠቀማሉ።

STM32 የበለጠ ደህንነትን ፣ የጊዜን ትክክለኛነት እና ተጣጣፊነትን የሚሰጥ ሁለት አብሮገነብ ጠባቂዎች አሉት። በሶፍትዌር ስህተቶች የተከሰቱ ጉድለቶችን ለመለየት እና ለመፍታት ሁለት የጥበቃ መሣሪያዎች (ገለልተኛ ጠባቂ እና የመስኮት ጠባቂ)። ቆጣሪው ለተወሰነ ጊዜ ማብቂያ እሴት ሲደርስ ፣ ማቋረጫ (የመስኮት ጠባቂ ብቻ) ወይም የስርዓት ዳግም ማስጀመር ይነሳል። ገለልተኛ ጠባቂ (IWDG) -

በተወሰነው ዝቅተኛ-ፍጥነት ሰዓት (LSI) የሚነዳ ፣ የማስተርስ ሰዓቱ ባይሳካም ይሠራል።

ጠባቂው ከዋናው ፕሮግራም ውጭ ሙሉ በሙሉ ራሱን ችሎ እንዲሠራ በሚፈለግበት እና ዝቅተኛ ጊዜ ትክክለኛነትን በሚፈልግበት ሁኔታ ለመጠቀም ተስማሚ ነው። የመስኮት ጠባቂ (WWDG):

ከድግግሞሽ ክፍፍል በኋላ ከ APB1 ሰዓት በሰዓት ይነዳ። ሊስተካከል በሚችል የጊዜ መስኮት በኩል ባልተለመደ ሁኔታ ዘግይቶ ወይም ያለጊዜው የማመልከቻ ሥራን ይፈልጉ። በትክክለኛ የጊዜ ሰሌዳ ዊንዶውስ ውስጥ ጠባቂዎች እንዲሠሩ ለሚፈልጉ ፕሮግራሞች ተስማሚ።

int main (ባዶ) {

delay_init ();

// መዘግየት init NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);

// NVIC INIT uart_init (115200);

// UART INIT PAD_INIT ();

// ፈካ ያለ ኢኒት IWDG_Init (4, 625);

(1) {

ከሆነ (USART_RX_END)

{ማብሪያ (USART_RX_BUF [5])

{

መያዣ ኤስፕሬሶ;

CoffeeSelect (ኤስፕሬሶ ፣ USART_RX_BUF [8]);

ሰበር;

ጉዳይ አሜሪካኖ;

CoffeeSelect (አሜሪካኖ ፣ USART_RX_BUF [8]);

በዋናው ተግባር ውስጥ ያለው ዋና አመክንዮ እንደሚከተለው ነው

u8 timer_cnt = 0;

ባዶ TIM3_IRQHandler (ባዶ) // TIM3

{

ከሆነ (TIM_GetITStatus (TIM3 ፣ TIM_IT_Update)! = ዳግም አስጀምር)

{

TIM_ClearITPendingBit (TIM3 ፣ TIM_IT_Update) ፤

ሰዓት ቆጣሪ_cnt ++;

ከሆነ (timer_cnt> = 200)

{

ወተት_ላክ [6] = ወተት ();

በመጨረሻ ፣ በሰዓት ቆጣሪው ማቋረጫ ውስጥ ኮዱን ያክሉ -በሰዓት ቆጣሪው ውስጥ ግቤ ቡና እና ወተት ምን ያህል እንደቀረ ማረጋገጥ እና ከዚያ የተገኘውን እሴት በተከታታይ ወደብ በኩል ወደ ማሳያ ማያ ገጽ መላክ ነው። ምን ያህል ወተት እና የቡና ፍሬዎች እንደተረፈ መለካት ብዙውን ጊዜ በሰንሰሮች ይከናወናል። ቀላል ዘዴዎች የወተት እና የቡና ፍሬዎች የአሁኑን ክብደት የሚለካ የግፊት ዳሳሾችን ያጠቃልላል።

በመጨረሻው ውስጥ ይፃፉ

ይህ ጽሑፍ የእኔን ፕሮጀክት ቀላል የእድገት ሂደት ብቻ ይመዘግባል። የኩባንያውን ፕሮጀክት ምስጢራዊነት ከግምት ውስጥ በማስገባት የተጠቀምኩበት በይነገጽ ማሳያ በይነገጽ እንዲሁ እኔ በራሴ የተሰራ ነው ፣ የዚህ ፕሮጀክት እውነተኛ በይነገጽ ማሳያ በይነገጽ አይደለም። የ STM32 ኮድ ክፍል የ MCU ን ተጓዳኝ ሾፌር እና ተዛማጅ አመክንዮ ኮድ ብቻ ያክላል። እንዲሁም የኩባንያውን ፕሮጀክት ምስጢራዊነት ከግምት ውስጥ በማስገባት የተወሰነ ቁልፍ የቴክኖሎጂ ክፍል አልተሰጠም ፣ እባክዎን ይረዱ። ሆኖም እኔ ባቀረብኩት ኮድ መሠረት ከ STONE ማሳያ ማያ ገጽ ጋር ይተባበሩ። እንዲሁም የሶፍትዌር መሐንዲሶች የሆኑት ጓደኞቼ ፕሮጀክቱን ለማጠናቀቅ ቁልፍ ቴክኒካዊ ክፍሎችን በኮድ ማዕቀፌ ውስጥ ለመጨመር ጥቂት ቀናት ብቻ ያስፈልጋቸዋል።

ስለ ፕሮጀክቱ የበለጠ ለማወቅ እዚህ ጠቅ ያድርጉ