ዝርዝር ሁኔታ:

ቀላል የራዳር ስርዓት ከ Magicbit 6 ደረጃዎች
ቀላል የራዳር ስርዓት ከ Magicbit 6 ደረጃዎች

ቪዲዮ: ቀላል የራዳር ስርዓት ከ Magicbit 6 ደረጃዎች

ቪዲዮ: ቀላል የራዳር ስርዓት ከ Magicbit 6 ደረጃዎች
ቪዲዮ: Here's Why the F-15 Is Such a Badass Fighter Jet 2024, ሀምሌ
Anonim

ይህ መማሪያ HC-SR04 ዳሳሽ እና የማይክሮቢት dev ቦርድ በማቀነባበር እና በአርዱዲኖ አይዲኢ በመጠቀም እንዴት ቀላል የራዳር ስርዓትን እንደሚሰራ ያሳያል።

አቅርቦቶች

  • SG90 ማይክሮ-ሰርቮ ሞተር
  • ዝላይ ሽቦዎች (አጠቃላይ)
  • የዳቦ ሰሌዳ (አጠቃላይ)
  • Magicbit
  • ዩኤስቢ-ኤ ወደ ማይክሮ-ዩኤስቢ ገመድ
  • ለአልትራሳውንድ ዳሳሽ - HC -SR04 (አጠቃላይ)

ደረጃ 1 - ታሪክ

በዚህ መማሪያ ውስጥ Magicbit core dev ሰሌዳ በመጠቀም እንዴት ቀላል የራዳር ስርዓት እንዴት እንደሚሠሩ እንማራለን። ለዚሁ ዓላማ HC-SR04 ultrasonic sensor ን እንጠቀማለን እና መረጃን ለማሳየት ፣ የማቀነባበሪያ አከባቢን እንጠቀማለን። እንጀምር።

ደረጃ 2 - ጽንሰ -ሀሳብ እና ዘዴ

በመጀመሪያ ፣ ይህ እንዴት እንደሚሠራ እንወያይ። መርሆው በጣም ቀላል ነው። በመጀመሪያ አነፍናፊችንን በ 180 ዲግሪ ክልል ውስጥ በቋሚ ዘንግ ዙሪያ እናዞራለን። በእንቅስቃሴው ወቅት በእያንዳንዱ ርቀት ከአልትራሳውንድ ዳሳሽ ወደ ቅርብ ወደሆነ ነገር ርቀትን እንወስዳለን። ለዚህ ሂደት እኛ Magicbit ኮር ቦርድ እንጠቀማለን። በኋላ ፣ ውሂባችንን ለማሳየት ከሂደት አከባቢ ጋር ያለውን ግንኙነት መመስረት አለብን። ስለዚህ እኛ በተከታታይ የመገናኛ ፕሮቶኮል ተስማሚ በሆነ የባውድ ተመን እንጠቀማለን። ከዚያ IDE ን በመጠቀም የራዳር ስርዓታችንን በይነገጽ እንቀርፃለን። በዚያ አይዲኢ ውስጥ በእውነተኛ ጊዜ ውሂብ በተከታታይ በኩል ለማግኘት የእኛን ተከታታይ ግንኙነት እናዋቅራለን። ስለዚህ ከ Magicbit ጋር የእውነተኛ ጊዜ ግንኙነት እናደርጋለን እና ከአስማትቢት ወደ ማቀናበሪያ አይዲኢ የሚላከውን ውሂብ እናሳያለን።

ደረጃ 3 የሃርድዌር ማዋቀር

የሃርድዌር ማዋቀር
የሃርድዌር ማዋቀር
የሃርድዌር ማዋቀር
የሃርድዌር ማዋቀር

ለዚህ ፕሮጀክት እኛ በዋነኝነት ሶስት የሃርድዌር ክፍሎችን ተጠቀምን። እነሱ Magicbit ፣ servo ሞተር እና ለአልትራሳውንድ ዳሳሽ ናቸው። በእነዚህ ሁሉ ክፍሎች መካከል ያለው ግንኙነት ከላይ በስዕሉ ላይ ይታያል።

ለአልትራሳውንድ ዳሳሽ 3.3 ቮ ኃይልን ተጠቅሟል። ስለዚህ እኛ ለአልትራሳውንድ ዳሳሽ ከ Magicbit ጋር ለማገናኘት የ Magicbit ቦርድ ትክክለኛውን የታችኛው ወደብ እንጠቀም ነበር። ነገር ግን ሰርቮ ሞተር ለትክክለኛ ሥራ 5V ጥቅም ላይ ይውላል ፣ ስለሆነም የ servo ሞተርን ከ Magicbit ጋር ለማገናኘት የግራ የታችኛውን ወደብ እንጠቀም ነበር። በዚህ ሁኔታ ፣ አስማት ቢት servo አያያዥ ሞዱልን እንጠቀማለን። ነገር ግን ያ ሞጁል ከሌለዎት 5V ወደ 5V ፣ Gnd ወደ Gnd እና በ magicbit ላይ 26 ፒን ለማገናኘት ሶስት የመዝጊያ ሽቦዎችን መጠቀም ይችላሉ።

ወረዳውን ከሠራን በኋላ እኛ የምንገነባው አነስተኛ የሜካኒካል ክፍል አለን። አነስተኛ ነት በመጠቀም ነጠላ የጎን servo አገናኝን ወደ servo ሞተር ያዘጋጁ። ከዚያ አንዳንድ የ L ቅርጽ ቅንፍ ወይም ተገቢውን መንገድ በመጠቀም በዚያ አገናኝ ላይ ዳሳሹን ያስተካክሉ። ከጠቅላላው ስርዓት በኋላ በዳቦ ሰሌዳ ላይ አስተካክለናል። ግን servo እና Magicbit ን ለመጫን ሌላ ገጽን መጠቀም ይችላሉ።

ደረጃ 4 የሶፍትዌር ማዋቀር

የሶፍትዌር ማዋቀር
የሶፍትዌር ማዋቀር
የሶፍትዌር ማዋቀር
የሶፍትዌር ማዋቀር

የሶፍትዌሩ ጎን ትንሽ ውስብስብ ነው። ለትክክለኛ ግንዛቤ በሚቀጥለው ክፍል ከመቀጠልዎ በፊት የሚከተሉትን አገናኞች ማመልከት ይችላሉ።

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

የአርዱዲኖ አይዲኢ ኮድ እና ያ ኮድ እንዴት እንደሚሠራ እንመልከት።

ለማሽከርከር servo ESP32 servo ቤተ -መጽሐፍትን እንጠቀማለን። ይህ ቤተ -መጽሐፍት በአርዲኖ አይዲኢ ውስጥ በአስማት ቢት ቦርድ ሥራ አስኪያጅ ውስጥ ማለት ይቻላል። ከአልትራሳውንድ ዳሳሽ ጋር እኛ አዲስ የፒንግ ቤተ -መጽሐፍትን እንጠቀማለን። ይህ ከሚከተለው አገናኝ ማውረድ ይችላል።

bitbucket.org/teckel12/arduino-new-ping/do…

የዚፕ ፋይሉን ያውርዱ እና ይሂዱ መሣሪያዎች> ቤተ -መጽሐፍትን ያካትቱ> በአርዱዲኖ ውስጥ የዚፕ ቤተ -መጽሐፍትን ያክሉ። አሁን የወረደውን ዚፕ ፋይልዎን አዲስ የፒን ቤተ -መጽሐፍት ይምረጡ። ከሂደት ጋር ለመግባባት ከ 115200 ባውድ ጋር ተከታታይ ግንኙነትን ተጠቅመንበታል። ይህ ለ ESP32 በጣም ትክክለኛ ድግግሞሽ ነው። በእያንዳንዱ ማዕዘን ይህንን ፕሮቶኮል በመጠቀም ውሂባችንን ወደ ኮምፒተር እንልካለን። ከአነፍናፊው ወደ ቅርብ የፊት ነገር ርቀት ፣ የማዞሪያ አቅጣጫ እና የማዞሪያ አንግል በዚህ ውሂብ ውስጥ ተካትቷል። ሁለት ቀለበቶችን በመጠቀም የእኛን ሰርቪስ በሁለት አቅጣጫ እናዞራለን። አንድ ዲግሪ ሲሽከረከር ተከታታይ መረጃን በ 4 ጊዜ ልከናል። ለዚህ ምክንያቱ በከፊል ማብራሪያ በማቀናበር ሊረዱ ይችላሉ።

የማቀነባበሪያ አካባቢን ለመመልከት ጊዜው አሁን ነው። ይህ በጃቫ ላይ የተመሠረተ የፕሮግራም ሶፍትዌር ነው። IDE ን በማቀናበር በዚህ ንድፍ ውስጥ የእኛን የፕሮግራም ንድፍ መፃፍ እንችላለን። እንዲሁም ፕሮግራማችንን በማስኬድ የእይታ ውፅዓት ማመንጨት እንችላለን። እንዲሁም እንደ 2 ዲ እና 3 ዲ ነገሮች ውፅዓት መውሰድ ይችላሉ። ያ ብቻ አይደለም ፣ ይህ ለምስል ማቀነባበር እና ለሌሎች ብዙ ነገሮች ሊያገለግል ይችላል።

በማቀነባበሪያው ንድፍ በመጀመሪያ ቀላል የግራፊክ ተግባራትን በመጠቀም የውሂብ ማሳያ በይነገፃችንን እንቀርፃለን። በኮዱ መጀመሪያ ላይ ተከታታይ ቤተ -ፍርግሞችን በማካተት ተከታታይ ግንኙነታችንን እናቋቁማለን። በማዋቀር ተግባር ውስጥ Magicbit ን ከኮምፒዩተር ጋር ለማገናኘት በየትኛው የዩኤስቢ ወደብ መሠረት የተወሰነ ለውጥ ማድረግ አለብዎት። አርዱዲኖ አይዲኢ ኮዱን ለመስቀል ሲያዋቅሩ አርዱዲኖ አይዲኢን በመጠቀም ወደብዎን ማረጋገጥ ይችላሉ። ከዚያ ንድፍ በማቀናበር ውስጥ የኮም ወደብ ስም ይለውጡ። ተከታታይ ውሂብ በሚገኝበት ጊዜ Serialevent ተግባር በራስ -ሰር ቀስቅሷል። ስለሆነም የኮዱ ዋና አመክንዮ ማዕዘኖች እና መረጃዎች እንዳይጠፉ በተከታታይ ክስተት ውስጥ ተካትቷል። አዲስ ውሂብ በሚገኝበት ጊዜ ፣ በማእዘናችን መሠረት በማእዘናችን ላይ አንድ መስመር እናወጣለን። በዚያን ጊዜ ምንም ነገር ከሌለ ፣ ከዚያ ሙሉ መስመሩ አረንጓዴ ቀለም አለው። ካልሆነ ከዚያ ከመስመሩ የተወሰነ ክፍል ከቀይ ዳሳሽ ወደ ነገር በርቀት ቀይ ይሆናል። እንዲሁም በመዞሪያው አቅጣጫ መሠረት አረንጓዴ ቀለም በመቀነስ ወደዚያ መስመር አቅራቢያ ሌላ 200 መስመሮችን እናወጣለን። በእያንዳንዱ ዋና መካከል 0.25 ዲግሪ ልዩነት አለን። ስለዚህ በእያንዳንዱ ዲግሪ ማዞሪያ ውስጥ ከ Magicbit በአንድ ጊዜ 4 ንባቦችን እናገኛለን። በዚህ ምክንያት በማያ ገጹ ላይ የሚያምር የፍለጋ እጅን መፍጠር እንችላለን።

የኮድን ስኬት ሙሉ በሙሉ ወደ አስማት ከሰቀሉ እና የሃርድዌር ክፍልን በተሳካ ሁኔታ የሂደቱን IDE ይክፈቱ እና አሂድ ቁልፍን ጠቅ በማድረግ ኮዱን ያሂዱ። አሁን በጣም ቀላል የራዳር ስርዓት አለዎት።

ሊያሳዩት የሚፈልጉትን እንደፈለጉ ኮዶቹን ማበጀት ይችላሉ።

ደረጃ 5 - መላ መፈለግ።

ንድፍ መስራት አይሰራም።

  • ትንሽ ጊዜ ይጠብቁ። በመነሻ ጊዜ ምክንያት በእርስዎ ፒሲ እና በጂፒዩ አፈፃፀም ላይ የተመሠረተ ነው።
  • በስዕሉ ንድፍ ላይ ተከታታይ የወደብ ቁጥሩ ትክክል መሆኑን ያረጋግጡ።
  • የዩኤስቢ ግንኙነት በትክክል እንደተስተካከለ ያረጋግጡ።
  • በአልትራሳውንድ ዳሳሽ እና Magicbit መካከል ያለውን ግንኙነት ይፈትሹ።
  • ተከታታይ ማሳያውን ይክፈቱ እና ውሂቡ ከአርዱዲኖ የመጣ መሆኑን ያረጋግጡ። ካልሆነ ፣ ከዚያ ችግር የእርስዎ አርዱዲኖ ኮድ ወይም በዩኤስቢ ግንኙነትዎ ላይ ነው።

ሰርቮ እየሰራ አይደለም።

  • የዩኤስቢ ግንኙነት በትክክል እንደተስተካከለ ያረጋግጡ።
  • ሽቦውን ይፈትሹ።
  • ሰርቪው በጥሩ ሁኔታ ላይ መሆኑን ያረጋግጡ።

ደረጃ 6: የአርዲኖ ኮድ

#ያካትቱ

#ጥራት TRIGGER_PIN 21 #ኢኮ_ፒን 22 #መግለፅ MAX_DISTANCE 200 ኒውፒንግ ሶናር (TRIGGER_PIN ፣ ECHO_PIN ፣ MAX_DISTANCE); #ያካትቱ // የ servo ቤተ -መጽሐፍት int ርቀት ውስጥ ያካትቱ ፣ Servo RadarServo; ባዶነት ማዋቀር () {Serial.begin (115200); RadarServo.attach (26); // በየትኛው ፒን ላይ የ servo ሞተር ተያይዞ መዘግየት (3000) እንደሆነ ይገልጻል። } ባዶ ክፍተት () {// የ servo ሞተርን ከ 15 ወደ 165 ዲግሪዎች ያሽከረክራል ለ (int i = 0; i <= 180; i ++) {RadarServo.write (i); መዘግየት (50); distance = sonar.ping_cm (); // በእያንዳንዱ ዲግሪ ለ (int j = 0; j0) {break; } Serial.print (i); // የአሁኑን ዲግሪ ወደ Serial Port Serial.print (",") ይልካል ፤ // Serial.print (j) ን ለመጠቆም በሂደት IDE ውስጥ በኋላ ከሚያስፈልገው የቀድሞው እሴት ቀጥሎ የመደመር ገጸ -ባህሪን ይልካል ፤ // የአሁኑን ዲግሪ ወደ Serial Port Serial.print ("*") ይልካል ፤ Serial.print (1); // የርቀት እሴቱን ወደ Serial Port Serial.print ("/") ይልካል ፤ // Serial.print (ርቀት) ለማመላከት በሂደት IDE ውስጥ በኋላ ከሚያስፈልገው የቀድሞው እሴት ቀጥሎ የመደመር ገጸ -ባህሪን ይልካል ፤ // የርቀት እሴቱን ወደ Serial Port Serial.print (".") ይልካል ፤ // ለመረጃ ጠቋሚው በሂደት IDE ውስጥ ከሚያስፈልገው የቀደመው እሴት ቀጥሎ የመደመር ቁምፊ ይልካል}} // ቀዳሚዎቹን መስመሮች ከ 165 እስከ 15 ዲግሪዎች ለ (int i = 180; i> = 0; i-) {RadarServo.ፃፍ (i); መዘግየት (50); ርቀት = sonar.ping_cm (); ለ (int j = 75; j> = 0; j- = 25) {ከሆነ (i == 180 && (j == 75 || j == 50 || j == 25)) {ይቀጥሉ ፤ } Serial.print (i); // የአሁኑን ዲግሪ ወደ Serial Port Serial.print (",") ይልካል ፤ // Serial.print (j) ን ለመጠቆም በሂደት IDE ውስጥ በኋላ ከሚያስፈልገው የቀደመው እሴት ቀጥሎ የመደመር ቁምፊ ይልካል ፤ // የአሁኑን ዲግሪ ወደ Serial Port Serial.print ("*") ይልካል ፤ Serial.print (-1); // የርቀት እሴቱን ወደ Serial Port Serial.print ("/") ይልካል ፤ // Serial.print (ርቀት) ለማመላከት በሂደት IDE ውስጥ በኋላ ከሚያስፈልገው የቀድሞው እሴት ቀጥሎ የመደመር ገጸ -ባህሪን ይልካል ፤ // የርቀት እሴቱን ወደ Serial Port Serial.print (".") ይልካል ፤ // ለመረጃ ጠቋሚ በሂደት IDE ውስጥ ከሚያስፈልገው የቀደመው እሴት ቀጥሎ የመደመር ገጸ -ባህሪን ይልካል}}

}

የሚመከር: