Search Code

ESP32 ቱቶሪያል 20/55 - መስመር መከታተያ ሞጁል | SunFounder የESP32 IoT መማሪያ ኪት

ESP32 ቱቶሪያል 20/55 - መስመር መከታተያ ሞጁል | SunFounder የESP32 IoT መማሪያ ኪት

በዚህ ትምህርት ውስጥ፣ የESP32 ሞጁሉን ከመስመር መከታተያ ሞጁል ጋር በመጠቀም በነጭ ወለል ላይ ጥቁር መስመሮችን እንዴት መለየት እንደምንችል እንማራለን። ይህ ችሎታ እንደ የተወሰነ መንገድ መከተል ለሚያስፈልጋቸው ሮቦቲክ መኪኖች ላሉ መተግበሪያዎች አስፈላጊ ነው። በተጨማሪም፣ የመስመር መከታተያ ሞጁሉ ጥቁር መስመር ሲያገኝ የሚነቃን ቡዘር እናዋህዳለን፣ ይህም የፕሮጀክታችንን የግብረ-መልስ ዘዴ ያሻሽላል። ለተጨማሪ ማብራሪያ፣ እባክዎ ቪዲዮውን ይመልከቱ (በቪዲዮው 0፡00 ላይ)።

line_track

ሃርድዌር ተብራርቷል

የዚህ ፕሮጀክት ዋና ክፍሎች የESP32 ሞጁል፣ የመስመር መከታተያ ሞጁል እና ቡዘር ያካትታሉ። የESP32 ሞጁል አብሮ የተሰራ የWi-Fi እና የብሉቱዝ አቅሞች ያለው ኃይለኛ ማይክሮ መቆጣጠሪያ ነው፣ ይህም ሰፊ የIoT መተግበሪያዎችን ያስችላል። የመስመር መከታተያ ሞጁሉ የኢንፍራሬድ አመንጪ እና ፎቶሬዚስተር በመጠቀም በተንጸባረቀው የኢንፍራሬድ ብርሃን ጥንካሬ ላይ በመመስረት የወለል ቀለም ልዩነቶችን ይለያል።

የመስመር መከታተያ ሞጁሉ ከሱ በታች ካለው ወለል ላይ የሚንጸባረቀውን የኢንፍራሬድ ብርሃን በማመንጨት ይሰራል። እንደ ጥቁር ያለ ጠቆር ያለ ወለል ብዙ ብርሃን ይቀስማል፣ በዚህም ምክንያት ዝቅተኛ የተንጸባረቀ ጥንካሬ ያስከትላል፣ እንደ ነጭ ያለ ቀላል ወለል ግን ብዙ ብርሃን ያንጸባርቃል፣ ከፍተኛ ጥንካሬ ያመርታል። ይህ ልዩነት የወለሉን ሁኔታ (ጥቁር ወይም ነጭ) ለመወሰን እና ተጓዳኝ ምልክት ለማውጣት በኦፕሬሽናል አምፕሊፋየር ይሰራል።

የዳታሼት ዝርዝሮች

አምራች SunFounder
የክፍል ቁጥር TCRT5000
የሎጂክ/IO ቮልቴጅ 3.3 ቪ እስከ 5 ቪ
የውጤት ኤሌክትሪክ (በአንድ ቻናል) 20 ሚኤ
ከፍተኛ ኤሌክትሪክ (በአንድ ቻናል) 50 ሚኤ
የምላሽ ጊዜ < 10 ሚሴ
የመለየት ክልል 1 ሴሜ እስከ 5 ሴሜ
ፓኬጅ ከሄደር ፒን ጋር ሞጁል
ማስታወሻዎች / ልዩነቶች በመስመር ተከታይ ሮቦቶች ውስጥ በብዛት ጥቅም ላይ ይውላል

 

  • ትክክለኛ የኃይል አቅርቦት (3.3 ቪ ወይም 5 ቪ) ያረጋግጡ።
  • ለትክክለኛ ንባቦች ዳሳሹን ንጹህ ያድርጉት።
  • በቦርዱ ላይ ያለውን ፖቴንሺዮሜትር በመጠቀም ስሜታዊነትን ያስተካክሉ።
  • ተንሳፋፊ ግብዓቶችን ለማስቀረት ግንኙነቶችን ያረጋግጡ።
  • ለተረጋጋ ንባቦች አስፈላጊ ከሆነ የፑል-አፕ ሬዚስተሮችን ይጠቀሙ።
  • ከአካባቢው የኢንፍራሬድ ምንጮች ጣልቃ ገብነትን ይቀንሱ።

የሽቦ መገጣጠም መመሪያዎች

ESP32-20_line-tracking-wiring

የመስመር መከታተያ ሞጁሉን ከESP32 ጋር ለማገናኘት፣ የሞጁሉን የመሬት ፒን በESP32 ላይ ካለው የመሬት ፒን ጋር በማገናኘት ይጀምሩ። ከዚያም የመስመር መከታተያ ሞጁሉን የV+ ፒን በESP32 ላይ ካለው ተስማሚ የኃይል ምንጭ፣ ወይም 3.3 ቪ ወይም 5 ቪ ጋር ያገናኙ። የምልክት ፒኑ (እንደ S የተሰየመው) በESP32 ላይ ከGPIO 14 ጋር መገናኘት አለበት። ከመቀጠልዎ በፊት እነዚህ ግንኙነቶች ደህንነታቸው የተጠበቀ መሆናቸውን ያረጋግጡ።

ቡዘር የሚጠቀሙ ከሆነ፣ አሉታዊ ተርሚናሉን ከመሬት ጋር እና አወንታዊ ተርሚናሉን በESP32 ላይ ከGPIO 27 ጋር ያገናኙ። ይህ ዝግጅት የመስመር መከታተያ ሞጁሉ ጥቁር መስመር ሲያገኝ ቡዘሩ እንዲነቃ ያስችላል። ሁሉም ግንኙነቶች በኮዱ ውስጥ ከተገለጹት ፒኖች ጋር መዛመዳቸውን ለማረጋገጥ ሁለቴ ያረጋግጡ።

ESP32-20_line-tracking-schemtaic

የኮድ ምሳሌዎች እና ማብራሪያ

ከዚህ በታች የመስመር መከታተያ ሞጁሉን የሚያዘጋጅ ቁልፍ የኮድ ክፍል አለ። ተለዋዋጭ linePin ከመስመር መከታተያ ሞጁል ጋር የተገናኘውን ፒን ለመወከል ይገለጻል።

const int linePin = 14;  // የመስመር መከታተያ ሞጁል ፒን ቁጥር

ይህ መስመር linePinን እንደ ፒን 14 ይጀምራል፣ ይህም የመስመሩን ሁኔታ ለማንበብ ይጠቅማል። የlineState ተለዋዋጭ ከዳሳሹ የተገኘውን ውጤት ይይዛል።

setup() ተግባር ውስጥ፣ ለlinePin የፒን ሁነታን እንደ ግብዓት እናዋቅራለን።

void setup() {
  Serial.begin(115200);  
  pinMode(linePin, INPUT);
}

ይህ ESP32 የመስመር መከታተያ ሞጁሉን ሁኔታ ማንበብ እንዲችል ያረጋግጣል። የሴሪያል ግንኙነት ውጤቱን ለመከታተል በ115200 ባውድ መጠን ይጀመራል።

በመጨረሻም፣ በloop() ተግባር ውስጥ፣ የመስመር መከታተያ ሞጁሉን ሁኔታ ያለማቋረጥ እናነባለን እና የተገኘውን ቀለም እናተምታለን።

void loop() {
  lineState = digitalRead(linePin);
  if (lineState == HIGH) {
    Serial.println("Black");
    delay(100);
  } else {
    Serial.println("White");
    delay(100);
  }
}

ይህ ሉፕ lineState HIGH (ጥቁር የሚያመለክት) ወይም LOW (ነጭ የሚያመለክት) መሆኑን ይፈትሻል እና ውጤቱን በሴሪያል ሞኒተር ላይ ያተምታል። ሙሉ ኮዱ ለማጣቀሻዎ ከጽሑፉ በታች ይጫናል።

ማሳያ / ምን እንደሚጠበቅ

ሽቦው ከተጠናቀቀ እና ኮዱ ከተጫነ በኋላ፣ የመስመር መከታተያ ሞጁሉ በጥቁር ወለል ላይ ሲሆን ESP32 "Black" ሲያተምት እና በነጭ ወለል ላይ ሲሆን "White" ሲያተምት ማየት ይኖርብዎታል። በተጨማሪም፣ ሞጁሉ ጥቁር መስመር ሲያገኝ ቡዘሩ ይተጋል፣ ይህም የሚሰማ ማንቂያ ይሰጣል። ከመጠን በላይ ስሜታዊ ቅንብሮች ወደ መዛባት ሊመሩ ስለሚችሉ የፖቴንሺዮሜትሩን ቅንብሮች ይጠንቀቁ (በቪዲዮው 10፡00 ላይ)።

የቪዲዮ የጊዜ ማህተሞች

  • 00:00 መጀመሪያ
  • 2:22 የመስመር መከታተያ ሞጁል መግቢያ
  • 5:10 የሰነድ ገጽ
  • 9:20 የሽቦ አያያዝ ተብራርቷል
  • 10:49 የአርዱኖ ኮድ ተብራርቷል
  • 13:36 በአርዱኖ IDE ውስጥ የESP32 ቦርድ እና የCOM ወደብ መምረጥ
  • 15:18 ማሳያ
  • 18:15 ፕሮጀክት፡ ከባዘር ጋር የመስመር መከታተያ
  • 19:52 ለመስመር መከታተያ እና ባዘር የአርዱኖ ኮድ
  • 20:52 ማሳያ

ምስሎች

ESP32-20_line-tracking-schemtaic
ESP32-20_line-tracking-schemtaic
ESP32-20_line-tracking-wiring
ESP32-20_line-tracking-wiring
line_track
line_track
819-ESP32 Tutorial 20/55- Arduino code line tracking
ቋንቋ: C++
// Set pin number
const int linePin = 14;  // The number of the line track module pin

// Variable for storing the line status 
int lineState = 0;

void setup() {
  Serial.begin(115200);  
  // Initialize the line track module pin as an input
  pinMode(linePin, INPUT);
}

void loop() {
  // Read the state of the line track module
  lineState = digitalRead(linePin);

  if (lineState == HIGH) {
    Serial.println("Black");
    delay(100);
  }
  else {
    Serial.println("White");
    delay(100);
  }
}

ምንጮች እና ምንጮች

ፋይሎች📁

አንድ ፋይል የለም።