ዝርዝር ሁኔታ:

Rpibot - ስለ ሮቦቲክስ መማር -9 ደረጃዎች
Rpibot - ስለ ሮቦቲክስ መማር -9 ደረጃዎች

ቪዲዮ: Rpibot - ስለ ሮቦቲክስ መማር -9 ደረጃዎች

ቪዲዮ: Rpibot - ስለ ሮቦቲክስ መማር -9 ደረጃዎች
ቪዲዮ: rpibot 2024, ሀምሌ
Anonim
Rpibot - ስለ ሮቦቲክስ መማር
Rpibot - ስለ ሮቦቲክስ መማር

እኔ በጀርመን አውቶሞቲቭ ኩባንያ ውስጥ የተከተተ የሶፍትዌር መሐንዲስ ነኝ። እኔ ለተከተተ ስርዓቶች የመማሪያ መድረክ ሆኖ ይህንን ፕሮጀክት ጀመርኩ። ፕሮጀክቱ ቀደም ብሎ ተሰር butል ነገር ግን በጣም ስለተደሰተኝ በነፃ ጊዜዬ ቀጠልኩ። ይህ ውጤት ነው…

የሚከተሉት መስፈርቶች ነበሩኝ

  • ቀላል ሃርድዌር (ትኩረት ሶፍትዌሩ ነው)
  • ርካሽ ሃርድዌር (ወደ 100 € ገደማ)
  • ሊሰፋ የሚችል (አንዳንድ አማራጮች ቀድሞውኑ የማብራሪያው አካል ናቸው)
  • ለሁሉም አካላት የአቅርቦት ቮልቴጅ ከአንድ 5V ምንጭ (የኃይል ባንክ)

በእውነቱ ከመማር ውጭ ግብ አልነበረም። መድረኩ ለመማር ፣ ለክትትል ፣ ለሮቦት ውድድሮች ፣…

እሱ የጀማሪ ትምህርት አይደለም። ስለ አንዳንድ መሠረታዊ ዕውቀት ያስፈልግዎታል

  • ፕሮግራሚንግ (ፓይዘን)
  • መሰረታዊ ኤሌክትሮኒክስ (ሞጁሎችን በትክክለኛው ቮልቴጅ አንድ ላይ ለማገናኘት)
  • መሰረታዊ የቁጥጥር ጽንሰ -ሀሳብ (ፒአይዲ)

በመጨረሻም እኔ እንደ እኔ ችግሮች ያጋጥሙዎታል። በአንዳንድ የማወቅ ጉጉት እና ጽናት በፕሮጀክቱ ውስጥ ያልፉ እና ተግዳሮቶችን ይፈታሉ። የእኔ ኮድ በተቻለ መጠን ቀላል እና ወሳኝ የኮድ መስመሮች ፍንጮችን ለመስጠት አስተያየት ይሰጣሉ።

የተሟላ የምንጭ ኮድ እና ፋይሎች እዚህ ይገኛሉ

አቅርቦቶች

መካኒኮች

  • 1x የፓምፕ ቦርድ (A4 መጠን ፣ 4 ሚሜ ውፍረት)
  • 3x M4 x 80 Screw እና ለውዝ
  • 2x Gear ሞተሮች ለሁለተኛ ደረጃ የውጤት ዘንግ ለኮኮደር። ጎማዎች።
  • 1x ነፃ ጎማ

1x ፓን እና ያጋደለ ካሜራ መጫኛ (አማራጭ)

ኤሌክትሮኒክስ

  • 1x Raspberry Pi Zero ከጭንቅላት እና ካሜራ ጋር
  • 1x PCA 9685 servo ቁጥጥር
  • 2x ኦፕቲካል ኢንኮደር መንኮራኩር እና ወረዳ
  • 1x ሴት ዝላይ ሽቦዎች
  • 1x የዩኤስቢ የኃይል ባንክ
  • 1x DRV8833 ባለሁለት ሞተር ነጂ
  • 2x ማይክሮ servos SG90 ለካሜራ ፓን እና ዘንበል (አማራጭ)
  • 1x MPU9250 IMU (ከተፈለገ)
  • 1x HC-SR04 የአልትራሳውንድ ርቀት ዳሳሽ (አማራጭ)
  • 1x ባለ ቀዳዳ ቦርድ እና የሽያጭ ሽቦ ፣ ራስጌዎች ፣…

ደረጃ 1: ቻሲስን ይገንቡ

ቻሲስን ይገንቡ
ቻሲስን ይገንቡ
ቻሲስን ይገንቡ
ቻሲስን ይገንቡ
ቻሲስን ይገንቡ
ቻሲስን ይገንቡ

እኔ ጥሩ መካኒክ ዲዛይነር አይደለሁም። እንዲሁም የፕሮጀክቶች ግብ በሻሲው ውስጥ ብዙ ጊዜን ማሳለፍ አይደለም። ለማንኛውም የሚከተሉትን መስፈርቶች ገልጫለሁ-

  • ርካሽ ቁሳቁሶች
  • ፈጣን ስብሰባ እና መፍረስ
  • ሊሰፋ የሚችል (ለምሳሌ ለተጨማሪ ዳሳሾች ቦታ)
  • ለኤሌክትሮኒክስ ኃይል ለመቆጠብ ቀላል ቁሳቁሶች

ቀላል እና ርካሽ ሻሲ ከፓነል ሊሠራ ይችላል። በፍሪፍት እና በእጅ መሰርሰሪያ ማሽኑ ቀላል ነው። ለአነፍናፊ እና ለሞተር መያዣዎችን ለመፍጠር ትናንሽ የእንጨት ክፍሎችን ማጣበቅ ይችላሉ።

ስለ ጉድለት አካላት መተካት ወይም የኤሌክትሪክ ማረም ያስቡ። ለመተካት ዋናዎቹ ክፍሎች በዊንች መጠገን አለባቸው። ትኩስ ሙጫ ጠመንጃ ቀላል ሊሆን ይችላል ፣ ግን ቻሲስን ለመገንባት ከሁሉ የተሻለው መንገድ ላይሆን ይችላል… 3 ዲ ማተም ጥሩ አማራጭ ነው ፣ ግን በጣም ውድ ወይም ጊዜ የሚወስድ ሊሆን ይችላል።

ነፃው ጎማ በመጨረሻ በጣም ቀላል እና ለመጫን ቀላል ነው። አማራጮቹ ሁሉም ከባድ ወይም በክርክር የተሞሉ ነበሩ (የመጨረሻውን ከማግኘቴ በፊት አንድ ሁለት ሞክሬያለሁ)። ዋናዎቹን ጎማዎች ከጫንኩ በኋላ የጅራቱን ነፃ ጎማ ለማስተካከል የእንጨት ስፔሴር ብቻ መቁረጥ ነበረብኝ።

የጎማ ንብረቶች (ለሶፍትዌር ስሌቶች)

ዙሪያ: 21 ፣ 5 ሴ.ሜ ጥራጥሬዎች - 20 ጥራጥሬዎች/ራእይ መፍትሄ - 1 ፣ 075 ሴ.ሜ (በመጨረሻ 1 ምት 1 ሴ.ሜ ያህል ነው ፣ ለሶፍትዌር ስሌቶች ቀላል ነው)

ደረጃ 2 - ኤሌክትሮኒክስ እና ሽቦ

ኤሌክትሮኒክስ እና ሽቦዎች
ኤሌክትሮኒክስ እና ሽቦዎች
ኤሌክትሮኒክስ እና ሽቦዎች
ኤሌክትሮኒክስ እና ሽቦዎች
ኤሌክትሮኒክስ እና ሽቦዎች
ኤሌክትሮኒክስ እና ሽቦዎች

በስዕሉ ላይ እንደሚታየው ፕሮጀክቱ የተለያዩ ሞጁሎችን ይጠቀማል።

Raspberry Pi Zero ዋናው ተቆጣጣሪ ነው። እሱ ዳሳሾችን በማንበብ ሞተሮችን በ PWM ምልክት ይቆጣጠራል። ከርቀት ፒሲ ጋር በ wifi ተገናኝቷል።

DRV8833 ባለሁለት ሞተር ኤች-ድልድይ ነው። ለሞተር ሞተሮች በቂ የአሁኑን አቅርቦት እያቀረበ ነው (ውፅዓት አንዳንድ ኤምኤ ብቻ ሊያቀርብ ስለሚችል Raspberry Pi ማድረግ አይችልም)።

ብርሃኑ በኮኮደር መንኮራኩሮች ውስጥ በሄደ ቁጥር የኦፕቲካል ኢንኮደር አራት ማዕዘን ቅርፅ ያለው ምልክት እያቀረቡ ነው። ምልክቱ በሚቀየርበት እያንዳንዱ ጊዜ መረጃውን ለማግኘት የ Raspberry Pi የ HW ማቋረጫዎችን እንጠቀማለን።

Pca9695 የ servo መቆጣጠሪያ ሰሌዳ ነው። በ I2C ተከታታይ አውቶቡስ እየተገናኘ ነው። ይህ ሰሌዳ ለፓም እና ለካሜኑ ዘንበል የሚይዙትን የ PWM ምልክቶችን እና የአቅርቦት voltage ልቴጅ ይሰጣል።

MPU9265 ባለ 3-ዘንግ ማፋጠን ፣ 3-ዘንግ የማዕዘን የማዞሪያ ፍጥነት እና 3-ዘንግ መግነጢሳዊ ፍሰት ዳሳሽ ነው። የኮምፓሱን ርዕስ ለማግኘት በዋናነት እንጠቀማለን።

የተለያዩ ሞጁሎች በ jumper ሽቦ አንድ ላይ ተገናኝተዋል። የዳቦ ሰሌዳ እንደ አስተላላፊ ሆኖ የአቅርቦት ውጥረቶችን (5 ቮ እና 3.3 ቮ) እና መሬቶችን ያቀርባል። ግንኙነቶቹ ሁሉም በግንኙነት ሰንጠረዥ ውስጥ ተገልፀዋል (አባሪውን ይመልከቱ)። 5V ን ወደ 3.3V ግብዓት ማገናኘት ምናልባት ቺፕዎን ያጠፋል። ከማቅረቡ በፊት ጥንቃቄ ያድርጉ እና ሁሉንም ሽቦዎችዎን ሁለት ጊዜ ይፈትሹ (እዚህ በተለይ ኢንኮደሩ ግምት ውስጥ መግባት አለበት)። ሁሉንም ሰሌዳዎች ከማገናኘትዎ በፊት በመልእክት ሰሌዳው ላይ ዋናውን የአቅርቦት ቮልቴሽን ከአንድ ባለ ብዙሜትር ጋር መለካት አለብዎት። ሞጁሎቹ በናሎን ብሎኖች ወደ ሻሲው ተስተካክለዋል። እዚህም እኔ እነሱን በማስተካከል ደስተኛ ነበር ፣ ግን ደግሞ ብልሹነት ቢከሰት ሊወገድ የሚችል።

ብቸኛው መሸጫ በመጨረሻ ሞተሮች እና የዳቦ ሰሌዳ እና ራስጌዎች ነበሩ። እውነቱን ለመናገር ፣ የጃምፐር ሽቦዎችን እወዳለሁ ፣ ግን እነሱ ወደ ልቅ ግንኙነት ሊመሩ ይችላሉ። በአንዳንድ ሁኔታዎች ፣ አንዳንድ የሶፍትዌር መከታተያዎች ግንኙነቶችን በመተንተን ሊረዱዎት ይችላሉ።

ደረጃ 3 የሶፍትዌር መሠረተ ልማት

የሶፍትዌር መሠረተ ልማት
የሶፍትዌር መሠረተ ልማት
የሶፍትዌር መሠረተ ልማት
የሶፍትዌር መሠረተ ልማት

መካኒኮችን ከደረስን በኋላ ምቹ የእድገት ሁኔታዎች እንዲኖረን አንዳንድ የሶፍትዌር መሠረተ ልማት እናዘጋጃለን።

ጊት

ይህ ነፃ እና ክፍት ምንጭ ስሪት ቁጥጥር ስርዓት ነው። ትልልቅ ፕሮጄክቶችን እንደ ሊኑክስ ለማስተዳደር ጥቅም ላይ ይውላል ፣ ግን በቀላሉ ለአነስተኛ ፕሮጀክት (Github እና Bitbucket ይመልከቱ) ሊያገለግል ይችላል።

የፕሮጀክቱ ለውጦች በአካባቢው ክትትል ሊደረግባቸው ይችላል እንዲሁም ሶፍትዌሩን ከማህበረሰቡ ጋር ለማጋራት ወደ የርቀት አገልጋይ ይገፋሉ።

ዋናዎቹ ጥቅም ላይ የዋሉ ትዕዛዞች -

git clone https://github.com/makerobotics/RPIbot.git [የምንጭ ኮዱን እና የጊት ውቅረትን ያግኙ]

git pull origin master [የቅርብ ጊዜውን ከርቀት ማከማቻው ያግኙ]

git ሁኔታ [የአከባቢውን ማከማቻ ሁኔታ ያግኙ። የተለወጡ ፋይሎች አሉ?] Git log [የፈጸሙትን ዝርዝር ያግኙ] git add። [ለሚቀጥለው ቃል እንዲታሰብ ሁሉንም የተቀየሩ ፋይሎችን ወደ ደረጃው ያክሉ] git commit -m “አስተያየት ለድርጊት” [ለውጦቹን በአከባቢው ማከማቻ ላይ ያድርጉ] git push origin master [ሁሉንም ግዴታዎች ወደ የርቀት ማከማቻው ይግፉት]

ምዝግብ

ፓይዘን አንዳንድ በመመዝገቢያ ተግባራት ውስጥ የተገነቡትን እያቀረበ ነው። ተጨማሪ ልማት ከመጀመሩ በፊት የሶፍትዌር አወቃቀሩ ሁሉንም የምዝግብ ማስታወሻ ማዕቀፍ አስቀድሞ መግለፅ አለበት።

ተርጓሚው ተርሚናል ውስጥ ወይም በምዝግብ ማስታወሻ ፋይል ውስጥ በተገለጸው ቅርጸት እንዲገባ ሎጋሪው ሊዋቀር ይችላል። በእኛ ምሳሌ ፣ የምዝግብ ማስታወሻው በዌብቨርቨር ክፍል የተዋቀረ ነው ፣ ግን እኛ ደግሞ በራሳችን ልናደርገው እንችላለን። እዚህ የምዝግብ ማስታወሻ ደረጃን ለ DEBUG ብቻ እናዘጋጃለን-

logger = logging.getLogger (_ ስም_)

logger.setLevel (logging. DEBUG)

ልኬት እና ሴራ

ምልክቶችን በጊዜ ለመተንተን ፣ በጣም ጥሩው በሰንጠረዥ ውስጥ ማቀድ ነው። Raspberry Pi የኮንሶል ተርሚናል ብቻ ስላለው ፣ ውሂቡን በሰሚኮሎን በተለየ የሲኤስቪ ፋይል ውስጥ እንከታተለው እና ከርቀት ፒሲው እናሴራለን።

ሴሚኮሎን የተለየው የመከታተያ ፋይል በዋናው የፓይዘን ኮድችን የሚመነጭ እና እንደዚህ ያሉ ራስጌዎች ሊኖሩት ይገባል።

የጊዜ ማህተም;

1603466959.65;0;0;25;0.0;-0.02685546875;0;25;0;25;25;52;0.0;23;0.221252441406;16;0.0;0;252.069366413;-5.19555664062;-16.0563964844;0;6; 1603466959.71;0;0;50;0.0;0.29150390625;0;50;0;25;25;55;0.0;57;-8.53729248047;53;0.0;0;253.562118111;-5.04602050781;-17.1031494141;0;6; 1603466959.76;0;-1;75;0.0;-0.188232421875;1;75;2;25;25;57;0;52;-24.1851806641;55;0;0;251.433794171;-5.64416503906;-16.8040771484;2;7;

የመጀመሪያው ዓምድ የጊዜ ማህተሙን የያዘ ነው። የሚከተሉት ዓምዶች ነፃ ናቸው። የማሴር ስክሪፕቱ ሊታቀዱ ከሚገቡ ዓምዶች ዝርዝር ጋር ተጠርቷል-

remote@pc: ~/python rpibot_plotter -f trace.csv -p speedL ፣ speedR ፣ pwmL ፣ pwmR

የሸፍጥ ስክሪፕቱ በመሳሪያ አቃፊው ውስጥ ይገኛል-

ሴራተኛው በ Python ውስጥ ሂሳብፕሊትቢልን እየተጠቀመ ነው። ወደ ፒሲዎ መገልበጥ አለብዎት።

ለበለጠ ምቾት ፣ የፓይዘን ስክሪፕት የ Raspberry Pi የመከታተያ ፋይልን ወደ ሩቅ ፒሲ ለመቅዳት እና በምልክት ምርጫ ሴራውን ለመጥራት በሚያገለግል በባሽ ስክሪፕት (plot.sh) ይጠራል። ፋይል መቅዳት ካለበት። በእያንዳንዱ ጊዜ በእጅ ከመገልበጥ ይልቅ ይህ ለእኔ የበለጠ ምቹ ነበር። “sshpass” ፋይሉን ከ Raspberry Pi ወደ ሩቅ ፒሲ በ scp በኩል ለመቅዳት ያገለግላል። የይለፍ ቃሉን ሳይጠይቁ ፋይልን መቅዳት ይችላል (እንደ ልኬት ይተላለፋል)።

በመጨረሻ በስዕሉ ላይ እንደሚታየው በመስኮቱ መስኮት ይከፈታል።

የርቀት ግንኙነት

ወደ Raspberry Pi የልማት በይነገጽ ኤስኤስኤች ነው። ፋይሎች በቀጥታ በዒላማ ላይ አርትዕ ሊደረጉ ወይም በ scp ሊገለበጡ ይችላሉ።

ሮቦቱን ለመቆጣጠር የድር አገልጋይ በ Piso ላይ እያሄደ በዌብሶኬቶች በኩል ቁጥጥርን ይሰጣል። ይህ በይነገጽ በሚቀጥለው ደረጃ ላይ ተገል isል።

Raspberry Pi ን ያዋቅሩ

በምንጭ ኮድ (setup_rpi.txt) አቃፊ ውስጥ “Raspberry Pi” ን ማዋቀርን የሚገልጽ ፋይል አለ። ብዙ ማብራሪያዎች የሉም ግን ብዙ ጠቃሚ ትዕዛዞች እና አገናኞች።

ደረጃ 4 - የተጠቃሚ በይነገጽ

የተጠቃሚ በይነገጽ
የተጠቃሚ በይነገጽ

የተጠቃሚውን በይነገጽ ለማስተናገድ ክብደቱን ቀላል የሆነውን የቶርዶ ድር አገልጋይ እንጠቀማለን። የሮቦት መቆጣጠሪያ ሶፍትዌሩን ስንጀምር የምንጠራው የፓይዘን ሞዱል ነው።

የሶፍትዌር ሥነ ሕንፃ

የተጠቃሚ በይነገጽ የተገነባው ፋይሎችን በመከተል ነው - gui.html [የድረ -ገጽ መቆጣጠሪያዎችን እና አቀማመጥን መግለፅ] gui.js [መቆጣጠሪያዎቹን ለማስተናገድ እና ለሮቦታችን የዌብሶኬት ግንኙነትን ለመክፈት የጃቫስክሪፕት ኮድ ይ guል] gui.css [የኤችቲኤምኤል መቆጣጠሪያዎች። የመቆጣጠሪያዎቹ አቀማመጥ እዚህ ተገል definedል]

የዌብሶኬት ግንኙነት

የተጠቃሚ በይነገጽ በጣም አሪፍ አይደለም ፣ ግን ሥራውን እያከናወነ ነው። እኔ እንደ Websockets ለእኔ አዲስ በሆኑ ቴክኖሎጂዎች ላይ አተኩሬ ነበር።

ድር ጣቢያው ከሮቦት ድር አገልጋይ በዌብሶኬቶች እየተገናኘ ነው። ይህ ግንኙነት እንደተጀመረ ክፍት ሆኖ የሚቆይ የሁለትዮሽ የግንኙነት ጣቢያ ነው። የሮቦቱን ትዕዛዞች በዌብሶኬት በኩል ወደ Raspberry Pi እንልካለን እና መረጃን (ፍጥነት ፣ አቀማመጥ ፣ የካሜራ ዥረት) ተመልሰን ለእይታ እንመልሳለን።

የበይነገጽ አቀማመጥ

የተጠቃሚ በይነገጹ ለትእዛዞቹ በእጅ ግብዓት አለው። ይህ ወደ ሮቦት ትዕዛዞችን ለመላክ መጀመሪያ ላይ ጥቅም ላይ ውሏል። አመልካች ሳጥን የካሜራ ዥረቱን እያበራ እና እያጠፋ ነው። ሁለቱ ተንሸራታቾች የካሜራውን ፓን እና ዘንበል ብለው ይቆጣጠራሉ።የተጠቃሚው በይነገጽ የላይኛው ቀኝ ክፍል የሮቦቶችን እንቅስቃሴ ይቆጣጠራል። የፍጥነት እና የዒላማ ርቀትን መቆጣጠር ይችላሉ። መሠረታዊው የቴሌሜትሪ መረጃ በሮቦት ስዕል ውስጥ ይታያል።

ደረጃ 5 - የሮቦት መድረክን ፕሮግራም ማድረግ

የሮቦት መድረክን ፕሮግራም ማድረግ
የሮቦት መድረክን ፕሮግራም ማድረግ
የሮቦት መድረክን ፕሮግራም ማድረግ
የሮቦት መድረክን ፕሮግራም ማድረግ
የሮቦት መድረክን ፕሮግራም ማድረግ
የሮቦት መድረክን ፕሮግራም ማድረግ

ይህ ክፍል የፕሮጀክቱ ዋና ግብ ነበር። አዲሱን ቻሲስን ከዲሲ ሞተሮች ጋር ሳስተዋውቅ ብዙ ሶፍትዌሮችን አነሳሁ። ፓይቶን በተለያዩ ምክንያቶች እንደ የፕሮግራም ቋንቋ ተጠቀምኩ

  • እሱ Raspberry Pi ዋና ቋንቋ ነው
  • ብዙ በባህሪያት እና ቅጥያዎች የተገነባ ብዙ ደረጃ ያለው ቋንቋ ነው
  • ነገሩ ተኮር ነው ነገር ግን ለተከታታይ መርሃ ግብርም ሊያገለግል ይችላል
  • ማጠናከሪያም ሆነ የመሳሪያ ሰንሰለት አያስፈልግም። ኮዱን ያርትዑ እና ያሂዱ።

ዋናው የሶፍትዌር ሥነ ሕንፃ

ሶፍትዌሩ ዕቃ ተኮር ነው ፣ በጥቂት ነገሮች ተከፍሏል። ሀሳቤ ኮዱን በ 3 ተግባራዊ ብሎኮች መከፋፈል ነበር።

Sense Think Actuate

Sense.py

ዋና ዳሳሽ ማግኛ እና ማቀናበር። በሚከተለው ደረጃ ለመጠቀም ውሂቡ በመዝገበ -ቃላት ውስጥ ተከማችቷል።

ቁጥጥር.ፒ

የማነቃቂያ ንዑስ ክፍል ከአንዳንድ ረቂቅ በኋላ ሞተሮችን እና ሰርጎችን ይቆጣጠራል። ዋናው የመቆጣጠሪያ ነገር የከፍተኛ ደረጃ ትዕዛዞችን እና እንዲሁም ለሞተር የመቆጣጠሪያ ስልተ ቀመሮችን (PID) መቆጣጠር ነው።

rpibot.py

ይህ ዋናው ነገር የቶርኖዶ ድር አገልጋይን ማስተዳደር እና የስሜት እና የቁጥጥር ክፍሎችን በተለያዩ ክሮች ውስጥ ማነቃቃት ነው።

እያንዳንዱ ሞጁል ለብቻው ወይም እንደ አጠቃላይ የፕሮጀክቱ አካል ሆኖ ሊሠራ ይችላል። ዳሳሾች በትክክል መገናኘታቸውን እና ትክክለኛውን መረጃ ማድረስዎን ለመፈተሽ የአነፍናፊውን መረጃ ብቻ ማተም እና ማተም ይችላሉ።

የ PID ቁጥጥር

የመጀመሪያው ተግባር መቆጣጠር የምንፈልገውን ማወቅ ነው። በጣም የተወሳሰበ እና ብዙም የማይረዳውን አቀማመጥ ለመቆጣጠር በመሞከር ጀመርኩ።

በመጨረሻም እያንዳንዱን የጎማ ፍጥነት እና እንዲሁም የሮቦት አቅጣጫን መቆጣጠር እንፈልጋለን። ይህንን ለማድረግ ሁለት የቁጥጥር አመክንዮዎችን መደርደር አለብን።

ውስብስብነቱን ደረጃ በደረጃ ለመጨመር ሮቦቱ መቆጣጠር አለበት-

ክፍት ዑደት (በቋሚ ኃይል)

pwm = ኬ

ከዚያ የቅርቡን ዑደት ስልተ ቀመር ያክሉ

pwm = Kp.speedError+Ki. Interation (speedError)

እና በመጨረሻ የአቅጣጫ መቆጣጠሪያን እንደ የመጨረሻ ደረጃ ያክሉ።

ለፍጥነት መቆጣጠሪያ እኔ የ “PI” መቆጣጠሪያን እና “P” ን ለያው ብቻ እጠቀም ነበር። እኔ በመሞከር መለኪያዎቹን በእጅ አዘጋጃለሁ። ምናልባት በጣም የተሻሉ መለኪያዎች እዚህ ጥቅም ላይ ሊውሉ ይችላሉ። ዒላማዬ ቀጥታ መስመር ብቻ ነበር እና አገኘሁት ማለት ይቻላል። በተጠቃሚ በይነገጽ አንዳንድ ተለዋዋጮችን ለመፃፍ በሶፍትዌሩ ውስጥ በይነገጽ ፈጠርኩ። ልኬቱን Kp ወደ 1.0 ማቀናበር በተጠቃሚ በይነገጽ ውስጥ የሚከተለውን ትዕዛዝ ይፈልጋል።

አዘጋጅ ፤ ኬፒ ፤ 1.0

ማንኛውንም የትርፍ ጊዜ ማሳለፊያ ለማስወገድ የ P ልኬቱን በጣም ዝቅተኛ ማድረግ እችል ነበር። ቀሪው ስህተት በ I ልኬት (የተቀናጀ ስህተት) ተስተካክሏል

ሁለቱንም መቆጣጠሪያዎች እንዴት ማቃለል እንደሚቻል ለማወቅ ለእኔ ከባድ ነበር። መፍትሄው ቀላል ነው ፣ ግን ከዚህ በፊት ሌሎች ብዙ መንገዶችን ሞክሬ ነበር… ስለዚህ በመጨረሻ ወደ አንድ ወይም ወደ ሌላ አቅጣጫ ለመዞር የመንኮራኩሮችን የፍጥነት ኢላማ ቀይሬዋለሁ። የፍጥነት መቆጣጠሪያው ይህንን ግራ መጋባት ለማስወገድ ሲሞክር የፍጥነት መቆጣጠሪያ ውጤቱን በቀጥታ መለወጥ ስህተት ነበር።

ያገለገለው የቁጥጥር ዲያግራም ተያይ attachedል። የሮቦት መቆጣጠሪያውን በግራ በኩል ብቻ ያሳያል።

ደረጃ 6 የአነፍናፊ መለኪያዎች

የአነፍናፊ መለኪያዎች
የአነፍናፊ መለኪያዎች
የአነፍናፊ መለኪያዎች
የአነፍናፊ መለኪያዎች
የአነፍናፊ መለኪያዎች
የአነፍናፊ መለኪያዎች

ሊታሰብበት የሚገባ የመጀመሪያው ነገር መላው ኢምዩ በትክክል መሥራት አለበት። ሙሉ የሥራ ዳሳሽ እስኪያገኝ ድረስ 3 ክፍሎችን አዘዝኩ እና መል back ላኳቸው። እያንዳንዱ ቀዳሚ አነፍናፊ አንዳንድ የአነፍናፊው ክፍሎች በትክክል የማይሠሩ ወይም ጨርሶ የማይሠሩ ነበሩ። በሮቦት ውስጥ ከመጫንዎ በፊት መሠረታዊዎቹን ለመፈተሽ አንዳንድ የምሳሌ ስክሪፕቶችን እጠቀም ነበር።

የ IMU ዳሳሽ ምልክቶች ከመጠቀምዎ በፊት መለካት አለባቸው። አንዳንድ አነፍናፊ ምልክቶች በተሰቀለው አንግል እና አቀማመጥ ላይ ይወሰናሉ።

የማፋጠን እና የማሽከርከር ፍጥነት መለኪያዎች

ቀላሉ መለካት ለ ቁመታዊ ፍጥነት (A_x) ነው። በቆመበት ጊዜ ወደ 0 ሜ/ሰ አካባቢ መሆን አለበት። ዳሳሹን በትክክል ካዞሩት የስበት ኃይልን (በ 9 ፣ 8 ሜ/ሰ አካባቢ) መለካት ይችላሉ። A_x ን ለመለካት ፣ ልክ እሱን በትክክል መጫን እና ከዚያ በቆመበት ጊዜ 0 ሜ/ሰ get ለማግኘት ማካካሻውን መግለፅ አለብዎት። አሁን A_x ተስተካክሏል። በማቆሚያው ላይ በተመሳሳይ ሁኔታ ለማሽከርከር ፍጥነቶች ማካካሻዎችን ማግኘት ይችላሉ።

ለኮምፓሱ የማግኔትሜትር መለኪያ

ለመግነጢሳዊ መስክ ዳሳሾች የበለጠ ውስብስብ ልኬት አስፈላጊ ነው። በአግድም ደረጃ መግነጢሳዊ መስክን ለማግኘት m_x እና m_y ን እንጠቀማለን። M_x እና m_y መኖሩ የኮምፓስ ርዕስን ለማስላት እድሉን ይሰጠናል።

ለቀላል ዓላማችን እኛ የምንጠነክረው ጠንካራውን የብረት መለዋወጥ ብቻ ነው። በመግነጢሳዊ መስክ መዛባት ላይ የሚመረኮዝ ስለሆነ አነፍናፊው በመጨረሻው ቦታ ላይ ስለሆነ ይህ መከናወን አለበት።

ሮቦቱን ወደ ዘ-ዘንግ ዘወር ስንል m_x እና m_y እንቀዳለን። በኤክስኤ ገበታ ውስጥ m_x vs m_y ን እናሴራለን። በስዕሉ ላይ እንደሚታየው በኤሊፕሲስ ውስጥ ያለው ውጤት። ኤሊፕሲስ ወደ መነሻው ማዕከል መሆን አለበት። በሁለቱም አቅጣጫዎች ማካካሻዎችን ለማግኘት የ m_x እና m_y ከፍተኛውን እና ዝቅተኛ እሴቶችን እንመለከታለን። በመጨረሻም የመለኪያውን መጠን እንፈትሻለን እና ኤሊፕሲስ አሁን መሃል ላይ መሆኑን እናያለን።

ለስላሳ የብረት መለካት ማለት ስዕሉን ከኤሊፕሲ ወደ ክበብ እንለውጣለን ማለት ነው። ይህ በእያንዳንዱ የሰነድ እሴት ላይ አንድ ነገር በመጨመር ሊሠራ ይችላል።

እንደገና ለመለካት ወይም ቢያንስ አነፍናፊዎቹ አሁንም እንደተስተካከሉ ለመፈተሽ የሙከራ አሠራር አሁን በኮድ ሊደረግ ይችላል።

ኮምፓስ ርዕስ

የማግኔትቶሜትር መረጃ አሁን የኮምፓሱን ርዕስ ለማስላት ጥቅም ላይ ይውላል። ለዚህ ፣ m_x እና m_y ምልክቶችን ወደ አንግል መለወጥ አለብን። ፓይዘን ይህንን ግብ ያለው የ math.atan2 ተግባርን በቀጥታ እያቀረበ ነው። የተሟላ ስሌት በ mpu9250_i2c.py ፋይል ("calcHeading (mx, my, mz)")) ውስጥ ተገል definedል።

ደረጃ 7 - አማራጭ ንድፎች

አማራጭ ንድፎች
አማራጭ ንድፎች
አማራጭ ንድፎች
አማራጭ ንድፎች
አማራጭ ንድፎች
አማራጭ ንድፎች

ዲዛይኑ ሙሉ በሙሉ ክፍት በመሆኑ ፕሮጀክቱ ብዙ ጊዜ ወስዷል። ለእያንዳንዱ አካል አንዳንድ የፕሮቶታይፕ አተገባበር አደረግሁ እና የስርዓቱን ወሰኖች አጋጥሞኛል።

በጣም የተወሳሰበ ርዕስ የተሽከርካሪ መቀየሪያ ነበር። በአሁኑ ጊዜ ጥቅም ላይ የዋለውን የኦፕቲካል ኢንኮደር ከማግኘቴ በፊት 3 የተለያዩ አማራጮችን ሞከርኩ። በእንደዚህ ዓይነት ፕሮጀክት ውስጥ የተቋረጡ መፍትሔዎችም በጣም የሚስቡ ይመስለኛል። በጣም የተማርኩባቸውን ክፍሎች ይመለከታል።

ከ pca 9695 ጋር የተገናኘ የማያቋርጥ የማዞሪያ ሰርቪስ

ለዲሲ ሞተር ተጨማሪ ኤች-ድልድይ ለማስቀረት ፣ መጀመሪያ በተከታታይ የማዞሪያ servos ጀመርኩ። እነዚህ ቀድሞውኑ ባለው pca 9695 servo ሾፌር ይነዱ ነበር። ሁሉም የማነቃቂያ መካኒኮች እና ተጓዳኝ ኤሌክትሮኒክስ በጣም ቀላል ነበሩ። ይህ ንድፍ ሁለት ድክመቶች ነበሩት-

  • የ servos ደካማ የቁጥጥር ክልል።
  • የጠፋው የኢኮደር መያዣ ቦታ

አገልጋዮቹ በ 50% ፒኤምኤም መንቀሳቀስ ይጀምራሉ እና ሙሉ ፍጥነት በ 55% ገደማ አላቸው። ይህ በጣም ደካማ የቁጥጥር ክልል ነው።

ኢንኮደር ሳይይዝ ፣ ኢንኮደር ለመሄድ ዝግጁ ማግኘት በጣም ከባድ ነበር። በሻሲው ላይ የተጫኑ 3 የተለያዩ አንፀባራቂ መቀየሪያን ሞከርኩ። ከጥቁር እና ነጭ ክፍሎች ጋር ከመንኮራኩሩ ውጭ በራስ የተሠራ የኢኮደር መሽከርከሪያን ቀባሁ። ትክክለኛውን ምልክት ለማግኘት ብዙ የምልክት ማቀነባበሪያ የሚያስፈልጋቸውን የ QTR-1RC ዳሳሾችን እጠቀም ነበር። Raspberry Pi እንዲህ ዓይነቱን እውነተኛ ጊዜ ማቀነባበር ለማከናወን አልቻለም። ስለዚህ የሮቦት ሮድ እውነተኛ ጊዜ መቆጣጠሪያ እንደመሆኑ NodeMCU D1 mini ን ለመጨመር ወሰንኩ። የተከናወነውን ዳሳሽ ውሂብ ለማድረስ በተከታታይ UART ከ raspberry Pi ጋር ተገናኝቷል። ኖድኤምሲዩ እንዲሁ የኤች.ሲ.-SR04 ዳሳሹን ያስተዳድር ነበር። መካኒኮች አስቸጋሪ እና በጣም ጠንካራ አልነበሩም ፣ ተከታታይ መስመሩ ከ I2C መስመር እና ሞተሮች ጫጫታ እያገኘ ነበር ፣ ስለሆነም በመጨረሻ ሁለተኛውን የሻሲውን ስሪት በጄኔሬተር በሚነዱ ቀላል የማርሽ ዲሲ ሞተሮች ገነባሁ። ሀ-ድልድይ። እነዚህ ሞተሮች የኦፕቲካል ኢንኮደርን ለማስቀመጥ ሁለተኛ የውጤት ዘንግ አላቸው።

ደረጃ 8 የምስል ሂደት

የምስል ሂደት
የምስል ሂደት
የምስል ሂደት
የምስል ሂደት
የምስል ሂደት
የምስል ሂደት
የምስል ሂደት
የምስል ሂደት

ራስን በራስ የማሽከርከር ችሎታን ለማሻሻል ፣ አንዳንድ የምስል ማቀነባበሪያዎችን ማድረግ እንችላለን።

የ opencv ቤተ -መጽሐፍት ለዚያ ማጣቀሻ ነው። መሰናክልን ማወቂያን በፍጥነት ለመተግበር በ Python ሊያገለግል ይችላል።

አንድ ምስል እንይዛለን እና አንዳንድ የምስል ማቀናበሪያ ተግባሮችን እንተገብራለን-

የመጀመሪያ ሙከራዎች የተደረጉት በካኒ እና ሶቤል ለውጦች ነው። ካኒ ጥሩ እጩ ሊሆን ይችላል ግን በቂ አስተዋይ አይደለም። ሶቤል በጣም አስተዋይ ነው (ብዙ ነገሮች ተገኝተዋል)።

በመጨረሻም ሁሉንም አግድም እና አቀባዊ ደረጃዎችን (የቤት እቃዎችን መለየት) ለማደባለቅ የራሴን ማጣሪያ ሠራሁ

  • የቀለም ምስሉን ወደ ግራጫ ደረጃ ምስል ይለውጡ
  • ትንሽ ጫጫታ ለማስወገድ ምስሉን ያደበዝዙ
  • ምስሉን ወደ ጥቁር እና ነጭ ምስል ደፍ
  • አሁን ነገሮችን እንደ ግድግዳ እና የቤት ዕቃዎች ለመለየት አግድም እና አቀባዊ ቀስቶችን እናገኛለን
  • እኛ ቀሪዎቹን ቀመሮች (ኮርፖሬሽኖች) ብቻ እናጣራለን (በሥዕሉ ላይ ባለ ቀለም ቅርጾችን ይመልከቱ)

አሁን ይህንን አዲስ መረጃ መሰናክሎችን ለመለየት ልንጠቀምበት እንችላለን…

ደረጃ 9: ቀጣይ እርምጃዎች…

ቀጣይ እርምጃዎች…
ቀጣይ እርምጃዎች…
ቀጣይ እርምጃዎች…
ቀጣይ እርምጃዎች…

አሁን ፣ ዳሳሾች ፣ ተዋናዮች እና ካሜራ ያለው ቀለል ያለ የሮቦት መድረክ አለን። ግቤ ምንም ተጨማሪ ዳሳሾችን ሳይጨምር በራስ -ሰር መንቀሳቀስ እና ወደ ጣቢያው መመለስ ነው። ይህንን ለማድረግ የሚከተሉትን ደረጃዎች ያስፈልጉኛል

  • የ yaw እና መግነጢሳዊ አርዕስት ምልክቶች ዳሳሽ ውህደት
  • የካሜራ ምስል ማቀናበር (ለዚያ ዝቅተኛ ሲፒዩ ብቻ ይገኛል)
  • የግጭት ማወቂያ (የአልትራሳውንድ ርቀት እና ካሜራ)
  • የካርታ ግንባታ ወይም አቀማመጥ

አሁን ይሂዱ እና የራስዎን ተግዳሮቶች ወይም ኢላማዎች ይፍጠሩ…

የሚመከር: