ዝርዝር ሁኔታ:
ቪዲዮ: Servo የሞተር መቆጣጠሪያ በ STM32F4 ARM MCU: 4 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
እንኳን ደህና መጣችሁ ወዳጆች:) ስለዚህ ፣ በዚህ ፕሮጀክት ውስጥ ከ STM32F4 ARM MCU ጋር የ servo ሞተር እንቆጣጠራለን። በእኔ ሁኔታ ፣ እኔ የግኝት ሰሌዳ እጠቀማለሁ ፣ ግን የችግሩን ዋና ነገር ከተረዱ ፣ ከዚያ ለእያንዳንዱ MCU ማመልከት ይችላሉ። ስለዚህ. እንጀምር:)
ደረጃ 1 የሃርድዌር እና የሶፍትዌር መስፈርቶች
ከሃርድዌር አንፃር እኛ ያስፈልገናል-
- በእኔ ሁኔታ STM32f4 Discovery board ውስጥ የሚገኝ MCU
- እንደ SG90 ወይም ሌላ ማንኛውም የተለመደ የ servo ሞተር
ከሶፍትዌር አንፃር እኛ ያስፈልገናል-
- STM32CubeMX
- Keil uVision
እነዚህ ሁሉ ካሉዎት ወደሚቀጥለው ደረጃ ይዝለሉ:)
ደረጃ 2 STM32CubeMX ውቅር
እንደሚያውቁት ፣ የ servo ሞተርን ለመቆጣጠር የ PWM ምልክት ያስፈልገናል። ከ PWM ምልክት አንፃር መስፈርቶቹ እንደዚህ ናቸው
- የ PWM ጊዜ 20 mS መሆን አለበት
- በሰዓቱ ከ 0.5 ሚ.ሜ እስከ 2.5 ሚ.ሜ መሆን አለበት። በሰዓቱ 0.5 mS ሲሆን ፣ ከዚያ ሰርቪው 0 ዲግሪዎች ፣ 1.5 ኤምኤስ ለ 90 ዲግሪዎች ፣ እና 2.5 ኤምኤስ ለ 180 ዲግሪዎች ያዞራል።
ስለዚህ ፣ PWM ን ማዋቀር አለብን እና ለዚያ ዓላማ Timer1 ን እንጠቀማለን።
- በመጀመሪያ ከ Timers ክፍል TIM1 ን ይምረጡ። ይህ እርምጃ
-
ከዚያ ፣ ከሞድ ክፍል
- የውስጥ ሰዓት ይምረጡ ይህንን ደረጃ
- PWM ትውልድ CH1 ይህ ደረጃ
-
ከዚያ ፣ ከማዋቀር ክፍል
- Prescaler ን ወደ 160 ያዘጋጁ
- የቆጣሪ ጊዜን ወደ 2000 ያዋቅሩ ይህ እርምጃ
- Pulse ን ወደ 50 ያቀናብሩ ይህ ደረጃ
- በተጨማሪም ፣ ከሰዓት ውቅር APB1 የሰዓት ቆጣሪ ሰዓቶችን ወደ 16 ሜኸዝ ያዘጋጁ። ይህ እርምጃ
አሁን ስለዚህ ደረጃ ትንሽ እንነጋገር-
የእኛ APB1 የሰዓት ቆጣሪ ሰዓት ድግግሞሽ 16 ሜኸ ነው። ስለዚህ ፣ 1 ሰከንድ ለማግኘት 16,000 ፣ 000 መዥገሮች ያስፈልጋል ማለት ነው። ሆኖም ግን የእኛን ቅድመ -ተቆጣጣሪ ወደ 160. እናስቀምጠዋለን ማለት ነው ፣ እኛ የእኛን ድግግሞሽ በዚያ ቁጥር እንከፋፍለን እና የመዥገሮችን ቁጥር ወደ 100 ፣ 000 ዝቅ አድርገናል። ሆኖም ፣ ቀደም ሲል እንደገለፅነው 20mS የ PWM ጊዜ እንፈልጋለን። ስለዚህ ፣ በቀላል ሂሳብ ላይ በመመርኮዝ ለ 20mS 2000 መዥገሮች ያስፈልጉናል። ስለዚህ ፣ የ Counter Period ን ወደ 2000 በማቀናበር እኛ 20mS የሆነውን የ PWM ምልክት ጊዜ እንወስናለን። አሁን ከ 0.5mS እስከ 2.5mS ጊዜን ለማግኘት የመለያ ቁጥሩን መወሰን አለብን። ይህንን ቀመር ከቀላል ሂሳብ ማግኘት እንችላለን እና እሱ ነው
On_Time = (Tick_Number / 100)። ያስታውሱ ይህ የ servo ሞተርን አንግል የሚቀይር on_time መሆኑን ያስታውሱ። ስለዚህ ፣ ከምስሉ በታች ይህንን ደረጃ ጠቅለል አድርጌዋለሁ። ማንኛውም ጥያቄ ካለዎት በአስተያየቶቹ ውስጥ ይፃፉ እና በተቻለ ፍጥነት እመልሳለሁ።
የስሌቶች ምስል
እነዚህን ሁሉ ኮድ ካደረጉ በኋላ:)
ደረጃ 3: Keil UVision Coding
ስለዚህ ፣ መጀመሪያ ምን ማድረግ እንደምንፈልግ እንወስን? እኛ ዲግሪን የሚቀበል ተግባር ለመፃፍ እና ወደ ሰርቪው ለመፃፍ እንፈልጋለን። ስለዚህ ፣ እኛ ያንን እንዴት እናደርጋለን? ቀደም ብለን እንደተናገርነው ፣ አንግልን ለመለወጥ በሰዓቱ መለወጥ አለብን። በ [0, 180] እና በ [50 ፣ 250] መካከል በሰዓት ለውጦች ላይ በሚወስነው የእኛ መዥገሮች ቁጥር መካከል የእኛ ማዕዘኖች ይለወጣሉ። ስለዚህ ፣ ወደ የቁጥሮች ብዛት ክልል አንግል የሚሰጠውን የካርታ ተግባር እንፈልጋለን። ለምሳሌ ፣ ለ 0 ዲግሪ 50 መዥገሮች ፣ ለ 180 ዲግሪ 250 መዥገሮች እና የመሳሰሉት… ስለዚህ የካርታ ሥራችንን እንፃፍ -
int ካርታ (int st1 ፣ int fn1 ፣ int st2 ፣ int fn2 ፣ int እሴት) {መመለስ (1.0*(እሴት-st1))/((fn1-st1)*1.0)*(fn2-st2)+st2; }
ይህ የእኛ የካርታ ተግባር ነው። እንዴት እንደሚገኝ ፍላጎት አለዎት? ከዚያ ያንን ያንብቡ። ስለዚህ ፣ የእኛን ክልሎች እና ካርታ የምንፈልገውን እሴት እንወስዳለን።
አሁን ፣ አንግልን የሚቀበል እና ወደ መዥገሮች ክልል ካርታ የሚያቀርብ ተግባር እንፃፍ-
ባዶ servo_write (int angle) {htim1. Instance-> CCR1 = ካርታ (0 ፣ 180 ፣ 50 ፣ 250 ፣ አንግል); }
እንደሚመለከቱት ፣ ይህ ኮድ አንግልን ይቀበላል እና ወደ መዥገሮች ብዛት ክልል ያደርገዋል። እና ከዚያ ፣ የቲኬቶች ብዛት በሰዓቱ እና በማዕዘን ለሚቆጣጠረው ለ CCR1 መዝገብ ይሰጣል።
ሆኖም ፣ እነዚህ ሁሉ እንዲሠሩ በመጀመሪያ በኮድ መስመር ብቻ ሊሠራ የሚችል pwm ን እንጀምራለን-
HAL_TIM_PWM_Start (& htim1 ፣ TIM_CHANNEL_1) ፤
ስለዚህ ፣ አንግልን የሚቀበል እና ወደ ሰርቪው የሚጽፍ ተግባር አለን። እንሞክረው እና በጣም ቀላል የሆነውን የእኛን የመጥረግ ተግባር እንፃፍ-
ባዶ servo_sweep (ባዶ) {ለ (int i = 0; i <= 180; i ++) {servo_write (i); HAL_Delay (10); } ለ (int i = 180; i> = 0; i--) {servo_write (i); HAL_Delay (10); }}
ስለዚህ ፣ እሱ እስከ 180 ድረስ ከዚያም ወደ 0 ዝቅ ብሎ እነዚህን እሴቶች ለ servo ይፃፉ:) ስለዚህ ውጤቱን እንይ!
ደረጃ 4: ውጤቱ:)
ስለዚህ ፣ ይህ መጨረሻው ነው። ማንኛውም ጥያቄ ካለዎት እባክዎን ይጠይቁ። ለእነሱ መልስ ለመስጠት ደስተኛ እሆናለሁ። ለንባብዎ በጣም አመሰግናለሁ እናም በሚቀጥለው ፕሮጀክት ውስጥ እንደማያይዎት ተስፋ አደርጋለሁ:)
የሚመከር:
ተለዋዋጭ የሞተር ፍጥነት መቆጣጠሪያ 8 ደረጃዎች
ተለዋዋጭ የሞተር ፍጥነት መቆጣጠሪያ -በዚህ ፕሮጀክት ውስጥ የሞተር ፍጥነት መቆጣጠሪያን እንዴት እንደሠራሁ መንገዱን አሳያችኋለሁ &; እንዲሁም በ IC 555 ተለዋዋጭ የሞተር ፍጥነት መቆጣጠሪያን መገንባት ምን ያህል ቀላል እንደሆነ አሳያለሁ። እንጀምር
የዲሲ የሞተር ፍጥነት መቆጣጠሪያ ወረዳ 5 ደረጃዎች
የዲሲ የሞተር ፍጥነት መቆጣጠሪያ ወረዳ - በዚህ አጭር ጽሑፍ ውስጥ የዲሲ ሞተር ፍጥነት አሉታዊ ግብረመልስ ወረዳ እንዴት እንደሚመሰረት እያወቅን ነው። በዋናነት እኛ ወረዳው እንዴት እንደሚሰራ እና ስለ PWM ምልክት ምንድነው? እና የ PWM ምልክት ሥራውን ለመቆጣጠር የተቀጠረበት መንገድ
AVR ማይክሮ መቆጣጠሪያ Fuse ቢት ውቅር። በማይክሮ መቆጣጠሪያ መቆጣጠሪያ ፍላሽ ማህደረ ትውስታ ውስጥ የ LED ብልጭ ድርግምተኛ መርሃ ግብር መፍጠር እና መስቀል። 5 ደረጃዎች
AVR ማይክሮ መቆጣጠሪያ Fuse ቢት ውቅር። በማይክሮ መቆጣጠሪያ ተቆጣጣሪው ፍላሽ ማህደረ ትውስታ ውስጥ የ LED ብልጭ ድርግምተኛ መርሃ ግብር መፍጠር እና መስቀል የ Atmel ስቱዲዮን እንደ የተቀናጀ የልማት መድረክ በመጠቀም የራሳችንን ፕሮግራም እንጽፋለን እና የሄክሱን ፋይል እናጠናቅቃለን። እኛ ፊውዝ bi ን እናዋቅራለን
የአርዱዲኖ አጋዥ ስልጠና - የ Servo የሞተር መቆጣጠሪያ ከጆይስቲክ ጋር: 4 ደረጃዎች
የአርዱዲኖ ማጠናከሪያ - የ Servo የሞተር መቆጣጠሪያ ከጆይስቲክ ጋር - በዚህ መማሪያ ውስጥ ከጆይስቲክ ጋር ሰርቪስን እንዴት መጠቀም እንደሚቻል እንማራለን። በ 1 ጆይስቲክ 1 ፒሲኤስ servo ሞተር እንቆጣጠራለን። ይህንን መማሪያ በማጣቀሻ የሮቦት ክንድ ፕሮጀክቶችዎን መተግበር ይችላሉ። በእርግጥ እኛ በምንሠራበት ጊዜ የውጭ ባትሪ / ኃይል እንጠቀማለን
የ Servo የሞተር ቁልፍ ሰሌዳ መቆጣጠሪያ 7 ደረጃዎች
የ Servo የሞተር ቁልፍ ሰሌዳ መቆጣጠሪያ-በመጀመሪያ የ servo ሞተር ማቀናበር ነው። መካከለኛ ሽቦ ወደ 5 ቮ ወደብ ይሄዳል ግራው ወደ GND ወደብ ይሄዳል የመጨረሻውን (የመቆጣጠሪያ ሽቦውን) ወደብ 9 ያገናኙ