ዝርዝር ሁኔታ:

ቦ-ቦት ከኢንፍራሬድ መመርመሪያዎች ጋር-12 ደረጃዎች (ከስዕሎች ጋር)
ቦ-ቦት ከኢንፍራሬድ መመርመሪያዎች ጋር-12 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ቦ-ቦት ከኢንፍራሬድ መመርመሪያዎች ጋር-12 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ቦ-ቦት ከኢንፍራሬድ መመርመሪያዎች ጋር-12 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: ሀይለየሱስ ግርማ "በሌለሽበት ቦታ" (lyrics) 🎹🎸🥁🎷haileyesus girma "beleleshibet_bota" 90th Ethiopian music 2024, ሀምሌ
Anonim
ቦ-ቦት ከኢንፍራሬድ መመርመሪያዎች ጋር
ቦ-ቦት ከኢንፍራሬድ መመርመሪያዎች ጋር

ይህ አስተማሪ መሰናክሎችን ለማስወገድ የኢንፍራሬድ መመርመሪያዎችን በመጠቀም በማዕዘን ውስጥ ሊጓዝ የሚችል ቦ-ቦትን እንዴት መገንባት እና ኮድ ማድረግ እንደሚቻል ያሳያል። ፍላጎቶችዎን ለማሟላት ቀላል ለውጦችን የሚፈቅድ ይህ ለመከተል ቀላል መመሪያ ነው። ይህ የወረዳ እና የፕሮግራም መሰረታዊ ግንዛቤን ይጠይቃል። ለዚህ ፕሮጀክት BASIC Stamp IDE ሶፍትዌር ሊኖርዎት ይገባል። እዚህ ለማውረድ ነፃ። እንዲሁም ቦ-ቦት ሮቦት

ደረጃ 1 - ሀብቶች

የኤሌክትሮኒክ ክፍሎች

ቦ -ቦት ከአያያዥ ገመድ ፓራላክስ መደብር - BoeBot Kit

5 የኢንፍራሬድ ኤልኢዲ ፓራላክስ መደብር - የ IR አስተላላፊ ስብሰባ ኪት

5 የኢንፍራሬድ ጋሻ ስብሰባዎች

5 የኢንፍራሬድ ጠቋሚዎች ፓራላክስ መደብር - BoeBot IR Receiver

ተከላካዮች

  • (2) 4.7 ኪ.ሜ ABRA ኤሌክትሮኒክስ - 4.7 ኪ
  • (5) 220 Ω ABRA ኤሌክትሮኒክስ - 220 Ω
  • (2) 1 kΩ ABRA ኤሌክትሮኒክስ - 1 ኪ
  • (5) 2 ኪ ABRA ኤሌክትሮኒክስ - 2 ኪ

የተለያዩ ሽቦዎች ABRA ኤሌክትሮኒክስ - 22 የመለኪያ ሽቦ

3 LED's ABRA ኤሌክትሮኒክስ - 5 ሚሜ ቀይ LED

ድጋፍ

ኮምፒተር

መሰረታዊ ማህተም አርታዒ - (ፍሪዌር)

መሣሪያዎች

ሽቦ መቁረጫ ABRA ኤሌክትሮኒክስ - ሽቦ መቁረጫ (ከተፈለገ)

Wire Stripper ABRA ኤሌክትሮኒክስ - የሽቦ መቀነሻ

የተለያዩ

ግድግዳዎች (ግርዶሽ ለመገንባት)

ደረጃ 2 የኢንፍራሬድ መፈለጊያ እንዴት እንደሚሠራ መረዳት (ከተፈለገ)

የኢንፍራሬድ ግኝት እንዴት እንደሚሠራ መረዳት (ከተፈለገ)
የኢንፍራሬድ ግኝት እንዴት እንደሚሠራ መረዳት (ከተፈለገ)

የኢንፍራሬድ የፊት መብራቶች

በቦ-ቦት ላይ የምንገነባው የኢንፍራሬድ የነገር ማወቂያ ስርዓት በብዙ መልኩ እንደ የመኪና የፊት መብራቶች ነው። ከመኪናው የፊት መብራት መብራት እንቅፋቶችን ሲያንፀባርቅ ፣ ዓይኖችዎ መሰናክሎቹን ይገነዘባሉ እና አንጎልዎ ያስኬዳቸዋል እናም ሰውነትዎ መኪናውን በዚህ መሠረት እንዲመራ ያደርገዋል። ቦ-ቦት ለዋና መብራቶች የኢንፍራሬድ ኤልኢዲዎችን ይጠቀማል። እነሱ ኢንፍራሬድ ያመነጫሉ ፣ እና በአንዳንድ ሁኔታዎች ፣ ኢንፍራሬድ ዕቃዎችን ያንፀባርቃል እና ወደ ቦ-ቦት አቅጣጫ ይመለሳል። የቦ-ቦት ዓይኖች የኢንፍራሬድ ዳሳሾች ናቸው። የኢንፍራሬድ መመርመሪያዎች ኢንፍራሬድ በአንድ ነገር ላይ ተንፀባርቆ እንደሆነ ወይም እንዳልሆነ የሚጠቁሙ ምልክቶችን ይልካሉ። የ “Boe-Bot” አንጎል ፣ BASIC Stamp ፣ ውሳኔዎችን ይወስናል እና በዚህ ዳሳሽ ግቤት ላይ በመመርኮዝ የ servo ሞተሮችን ይሠራል። ምስል 7-1 ከ IR የፊት መብራቶች ጋር የነገር ማወቂያ የ IR መመርመሪያዎቹ በውስጣችን ባለው የፎቶዲዮዲዮ ዳሳሽ ልናገኘው ከምንፈልገው 980 ናም ኢንፍራሬድ በስተቀር በጣም ትንሽ ብርሃንን የሚፈቅዱ የኦፕቲካል ማጣሪያዎች አሏቸው። የኢንፍራሬድ ዳሳሽ እንዲሁ በ 38.5 kHz አካባቢ ምልክቶችን ብቻ እንዲያልፍ የሚያስችል የኤሌክትሮኒክ ማጣሪያ አለው። በሌላ አነጋገር ፣ መርማሪው በ 38 ፣ 500 ጊዜ በሴኮንድ የሚበራ እና የሚጠፋውን ኢንፍራሬድ ብቻ ይፈልጋል። ይህ እንደ የፀሐይ ብርሃን እና የቤት ውስጥ መብራት ካሉ የተለመዱ ምንጮች የ IR ጣልቃ ገብነትን ይከላከላል። የፀሐይ ብርሃን የዲሲ ጣልቃ ገብነት (0 Hz) ነው ፣ እና የቤት ውስጥ መብራት በክልሉ ውስጥ ባለው ዋናው የኃይል ምንጭ ላይ በመመስረት በ 100 ወይም በ 120 Hz ላይ ያበራል እና ያጠፋል። 120 Hz ከኤሌክትሮኒክ ማጣሪያ 38.5 ኪኸ ባንድ የማለፊያ ድግግሞሽ ውጭ ስለሆነ በ IR መመርመሪያዎች ሙሉ በሙሉ ችላ ተብሏል።

-የፓራላክስ የተማሪ መመሪያ

ደረጃ 3 - የ IR LED ን መሰብሰብ

የ IR LED ን መሰብሰብ
የ IR LED ን መሰብሰብ

የ IR LED ን ወደ መያዣው ትልቁ ክፍል ያስገቡ

የኤልዲውን ግልፅ ክፍል ከሽፋኑ አነስተኛ ክፍል ጋር ያያይዙት

ደረጃ 4: የኢንፍራሬድ ጥንዶችን መሞከር - ወረዳ

የኢንፍራሬድ ጥንዶችን መሞከር - ወረዳ
የኢንፍራሬድ ጥንዶችን መሞከር - ወረዳ
የኢንፍራሬድ ጥንዶችን መሞከር - ወረዳ
የኢንፍራሬድ ጥንዶችን መሞከር - ወረዳ

ወደማንኛውም ነገር ጠልቀን ከመግባታችን በፊት የ IR ጥንድ (አንድ ኢንፍራሬድ ኤልኢዲ እና አንድ የኢንፍራሬድ መመርመሪያ) መሥራቱን ለማረጋገጥ እንሞክራለን።

በእርስዎ ቦ-ቦት አናት ላይ በተጫነው የዳቦ ሰሌዳ ላይ ከላይ ያለውን ወረዳ በመገንባት ይጀምሩ

ደረጃ 5: የኢንፍራሬድ ጥንዶችን መሞከር - መሠረታዊ ኮድ

በእርግጥ ፣ የእኛ IR ጥንድ እንዲሠራ ኮድ መጻፍ ያስፈልገናል

ይህንን ለማድረግ FREQOUT ትዕዛዙን ይጠቀማል። ይህ ትእዛዝ ለድምፅ ድምፆች የተነደፈ ቢሆንም ፣ በኢንፍራሬድ ክልል ውስጥ ድግግሞሾችን ለማምረት ሊያገለግል ይችላል። ለዚህ ሙከራ እኛ ትዕዛዙን እንጠቀማለን-

FREQOUT 8 ፣ 1 ፣ 38500

ይህ ለ 1 ፒኤም የሚቆይ የ 38.5 kHz ድግግሞሽ ይልካል። ከ P8 ጋር የተገናኘው የኢንፍራሬድ LED ዑደት ይህንን ድግግሞሽ ያሰራጫል። በመንገዱ ላይ ባለው ነገር የኢንፍራሬድ መብራቱ ወደ ቦ-ቦት ተመልሶ የሚንፀባረቅ ከሆነ ፣ የኢንፍራሬድ ፈላጊው የሚንፀባረቀው የኢንፍራሬድ መብራት መገኘቱን እንዲያውቅ የ BASIC Stamp ምልክት ይልካል።

የ IR ጥንድ ሥራን ለመሥራት ቁልፉ 1 ms ከ 38.5 kHz FREQOUT መላክ እና ወዲያውኑ የ IR ፈላጊውን ውጤት በተለዋዋጭ ውስጥ ማከማቸት ነው።

ይህ ምሳሌ IRDectectLeft በሚባል ትንሽ ተለዋዋጭ ውስጥ የ IR መርማሪውን እሴት ማከማቸቱን ያሳያል

FREQOUT 8 ፣ 1 ፣ 38500

irDetectLeft = IN9

ምንም የ IR ምልክት ከፍ ያለ ሆኖ ሲያይ የ IR ፈላጊው የውጤት ሁኔታ። የ IR ፈላጊው በአንድ ነገር የሚንፀባረቀውን 38500 Hz ሃርሞኒክ ሲመለከት ውፅዓቱ ዝቅተኛ ነው። የ IR ፈላጊው ውፅዓት የፍሪኩቱ ትዕዛዙ ሃርሞኒክን መላክ ከጨረሰ በኋላ ለአንድ ሚሊሰከንዶች ብቻ ዝቅተኛ ሆኖ ይቆያል ፣ ስለሆነም የ FREQOUT ትዕዛዙን ከላኩ በኋላ ወዲያውኑ የ IR ፈላጊውን ውጤት በተለዋዋጭ ውስጥ ማከማቸት አስፈላጊ ነው። በተለዋዋጭ የተቀመጠው እሴት ከዚያ በማረሚያ ተርሚናል ውስጥ ሊታይ ወይም በቦ-ቦት ለአሰሳ ውሳኔዎች ሊያገለግል ይችላል።

ደረጃ 6 የኢንፍራሬድ ጥንዶችን መሞከር - ሃርድዌር + ሶፍትዌር

የኢንፍራሬድ ጥንዶችን መሞከር - ሃርድዌር + ሶፍትዌር
የኢንፍራሬድ ጥንዶችን መሞከር - ሃርድዌር + ሶፍትዌር

አሁን መሰረታዊ ነገሮችን ያውቃሉ ፣ አንድ ጥንድን ለመፈተሽ እና IR Pair ከሚለየው የእውነተኛ ጊዜ ግብረመልስ ለማግኘት ሃርድዌር እና ሶፍትዌሩን አንድ ላይ ማድረግ እንችላለን።

እርስዎ መሞከር እና ኮዱን እራስዎ ማድረግ ይችላሉ ፣ ወይም ከዚህ በታች ያለውን ኮድ ይጠቀሙ

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG መነሻ ፣ «irDetectLeft =» ፣ BIN1 irDetectLeft Pause 100 LOOP

  1. የ IR ጥንድዎን ለመፈተሽ የ DEBUG ተርሚናል ስለሚጠቀሙ ከተከታታይ ገመድ ጋር የተገናኘውን ቦ-ቦትን ይተው።
  2. ከግራ IR ጥንድ አንድ ኢንች ያህል እንደ እጅዎ ወይም ወረቀት ያለ አንድ ነገር ያስቀምጡ
  3. አንድ ነገር በ IR ጥንድ ፊት ላይ ሲያስቀምጡ የማረሚያ ተርሚናል 0 ያሳያል ፣ እና ዕቃውን ከ IR ጥንድ ፊት ሲያስወግዱ 1 ያሳያል።
  4. አርም ተርሚናል የሚጠበቁ እሴቶችን ካላሳየ በችግር-ተኩስ ደረጃ ውስጥ ያሉትን ደረጃዎች ይሞክሩ።

ደረጃ 7-ችግርን መተኮስ (የመጨረሻ ደረጃ ላላቸው ጉዳዮች)

ያልተጠበቁ እሴቶችን በማሳየት ማረም ተርሚናል

ለአጫጭር ፣ ለተሳሳቱ ወይም ለጎደሉ አያያorsች ፣ የተበላሹ አካላት ፣ ትክክል ያልሆኑ ተቃዋሚዎች ወይም ሌላ ማንኛውም የሚታይ ጉዳይ ወረዳውን ይፈትሹ

ፕሮግራሙን ከሎጂካዊ ወይም የአገባብ ስህተቶች ይፈትሹ - ለመጨረሻው ደረጃ የራስዎን ኮድ ከተጠቀሙ ፣ የቀረበውን ኮድ መጠቀም ያስቡበት

ምንም ነገሮች በማይኖሩበት ጊዜ እንኳን ሁል ጊዜ 0 ማግኘት ከቦ-ቦት ፊት ለፊት ይደረጋል

የኢንፍራሬድ ምልክትን የሚያንፀባርቁ በአቅራቢያ ያሉ ነገሮች ካሉ ያረጋግጡ። በቦ-ቦት ፊት ለፊት ያለው ጠረጴዛ ምክንያት ሊሆን ይችላል። የ IR LED እና መመርመሪያው በአቅራቢያ ያለ ነገርን ማንፀባረቅ እንዳይችሉ ቦ-ቦትን ወደ ክፍት ቦታ ያንቀሳቅሱት።

ከቦ-ቦት ፊት ምንም ነገር በማይኖርበት ጊዜ ንባብ 1 ጊዜ ነው ፣ ግን አልፎ አልፎ ወደ 0 ያሽከረክራል

በአቅራቢያ ካለው የፍሎረሰንት መብራት ጣልቃ ገብነት ሊኖር ይችላል ፤ በአቅራቢያ ያሉ ማንኛውንም የፍሎረሰንት መብራቶችን ያጥፉ እና ሙከራዎችዎን ይድገሙ። ችግሩ ከቀጠለ ደረጃ 9 ችግሩን ሊገልጥ ይችላል

ደረጃ 8 - ሁለተኛ IR ጥንድ

ሁለተኛ IR ጥንድ
ሁለተኛ IR ጥንድ

አሁን ለግራ አይአርአይ ፕሮግራሙ አለዎት ፣ ወረዳውን ለማድረግ እና ትክክለኛውን IR Pair ን ለማዘጋጀት የእርስዎ ተራ ነው

  1. ትክክለኛውን የ IR ጥንድ ለማመልከት የ DEBUG መግለጫውን ፣ ርዕሱን እና አስተያየቶችን ይለውጡ።
  2. ተለዋዋጭውን ስም ከ irDetectLeft ወደ irDetectRight ይለውጡ። በፕሮግራሙ ውስጥ ይህንን በአራት ቦታዎች ማድረግ ያስፈልግዎታል።
  3. የ FREQOUT ትዕዛዙን የፒን ክርክር ከ 8 ወደ 2 ይለውጡ።
  4. በ irDetectRight ተለዋዋጭ ከ IN9 ወደ IN0 የሚከታተለውን የግብዓት ምዝገባ ይለውጡ።
  5. ለትክክለኛው የ IR ጥንድ በዚህ እንቅስቃሴ ውስጥ የሙከራ ደረጃዎችን ይድገሙ ፤ ከ P2 ጋር ከተገናኘ እና ከ P0 ጋር ከተገናኘው የ IR LED ወረዳ ጋር።

ደረጃ 9 የኢንፍራሬድ ጣልቃ ገብነትን መለየት (ከተፈለገ)

የኢንፍራሬድ ጣልቃ ገብነትን መለየት (ከተፈለገ)
የኢንፍራሬድ ጣልቃ ገብነትን መለየት (ከተፈለገ)

ሊታወቁ የማይገባቸውን ምልክቶች በመለየት ችግሮች እያጋጠሙዎት ወይም የ IR ግኝትዎን በተለዋጭ ሥፍራ ለማሳየት ዕቅድ ቢያወጡ ፣ ጣልቃ ገብነትን ለመፈተሽ ይፈልጉ ይሆናል።

የዚህ የሙከራ መርሃ ግብር ጽንሰ -ሀሳብ በጣም ቀላል ነው ፣ ምንም ሳይወጡ ለኢንፍራሬድ ምልክቶች ያገኙታል።

ትክክለኛውን ተመሳሳይ ወረዳ መጠቀም ይችላሉ ፣ ግን ኮዱን መለወጥ ይኖርብዎታል። የራስዎን ኮድ ለመጻፍ መምረጥ ይችላሉ ፣ ግን ከዚህ በታች የቀረበውን ኮድ መጠቀም ይችላሉ-

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 ወይም IN0 = 0 ከዚያ DEBUG «ጣልቃ ገብነት ተገኝቷል» 100 ሎፕ

ጣልቃ ገብነት ካጋጠመዎት ፣ ምንጩን ምንጭ ይወስኑ እና ያጥፉት/ያስወግዱት ወይም Boe-Botዎን በሚሠሩበት ቦታ ያዛውሩ።

ደረጃ 10 - ተጨማሪ የ IR ጥንዶችን ማከል

ተጨማሪ የ IR ጥንዶችን በማከል ላይ
ተጨማሪ የ IR ጥንዶችን በማከል ላይ

በእርስዎ Boe-Bot እንቅስቃሴ ውስጥ የበለጠ ትክክለኛነት ከፈለጉ ፣ ብዙ የ IR ጥንዶችን ማከል ይፈልጉ ይሆናል። 3 ከሁለት ጋር ሲነፃፀር አፈፃፀሙን በእጅጉ ያሻሽላል ፣ ቀጥተኛ መሰናክልን ለመቃኘት የመሃከለኛ ጥንድን መጠቀም እና ምን ያህል መዞር እንዳለበት ለመወሰን ሁለት ጎን IRs ን መጠቀም ይችላሉ። ሆኖም ፣ የ 3 IR ጥንድ ንድፍ ውድቀት በግድግዳ ላይ ሲንሸራተቱ ማወቅ ይችላሉ ፣ ምክንያቱም የማዕከላዊው IR ጥንድ መሰናክሎችን ለመለየት ጥቅም ላይ ይውላል። ይህንን ችግር ለመፍታት ከፍተኛ የመቋቋም እሴት ካለው ለእያንዳንዱ ጎን የ IR ጥንድ ማከል ይችላሉ-ስለሆነም እና የኢንፍራሬድ ምልክት የሚታወቀው ቦ-ቦት ከጎኑ ቅርብ ከሆነ ወይም ረጋ ባለ አንግል ላይ ግድግዳ ከሆነ ብቻ ነው።

ደረጃ 11 - አምስት የ IR ጥንድ - ወረዳ

አምስት የ IR ጥንድ - ወረዳ
አምስት የ IR ጥንድ - ወረዳ

ሁለቱንም የ IR LED ዎች ሲመሩ ጠመዝማዛዎቹ ሊነኩ እና አጭር ዙር ሊያስከትሉ ስለሚችሉ ይጠንቀቁ።

ደረጃ 12 - አምስት የ IR ጥንድ - ኮድ

አምስት IR ጥንድ - ኮድ
አምስት IR ጥንድ - ኮድ

ይህንን ኮድ ከመጠቀምዎ በፊት የእርስዎን Boe-Bot ፕሮግራም ለማዘጋጀት መሞከር ይፈልጉ ይሆናል-

'{$ STAMP BS2}' {$ PBASIC 2.5} 'አምስት IR Pair Deatection Code' Matthew Shaw 'May 8 2019 (Version 7)' Mazes ለመፍታት የነገሮችን እና መሰረታዊ አመክንዮአዊ ሂደትን መለየት።

irDetectLeft VAR Bit 'ተለዋዋጭ ለግራ

irDetectCentre VAR Bit 'Variable for center irDetectRight VAR Bit' Variable for right irDetectLSide VAR Bit 'Variable for left side irDetectRSide VAR Bit' Variable for right side

mLoop VAR ቃል

Lmotor PIN 15 'የግራ ሞተር ከፒን 14 ጋር ተገናኝቷል ፣ ጥራጥሬዎች እዚህ ያልፋሉ

ሮሞተር ፒን 14 'ቀኝ = 15

ፍጥነቶች-> 650-750-850 ናቸው

LFast CON 850 'ኮንስታንት ለግራ ሞተር በሙሉ ፍጥነት RFast CON 650' ለትክክለኛው ሞተር በሙሉ ፍጥነት

LStop CON 750 'ኮንስታንት ለግራ ሞተር በሙሉ ፍጥነት

RStop CON 650 'ለትክክለኛ ሞተር በሙሉ ፍጥነት

LMid CON 830 'ለግራ ሞተር በመካከለኛ ፍጥነት

RMid CON 700 'ለትክክለኛ ሞተር በመካከለኛ ፍጥነት

LSlow CON 770 'ኮንስታንት ለግራ ሞተር በዝቅተኛ ፍጥነት

RSlow CON 730 'ለትክክለኛው ሞተር በትንሹ ፍጥነት

LRev CON 650 'ተቃራኒ ለግራ ሞተር በተገላቢጦሽ በሙሉ ፍጥነት

RRev CON 850 'ተቃራኒ ለግራ ሞተር በተገላቢጦሽ በሙሉ ፍጥነት

FREQOUT 7 ፣ 1 ፣ 38500 'ግራ ጎን

irDetectLeft = IN8

FREQOUT 6 ፣ 1 ፣ 38500 'ማዕከል

irDetectCentre = IN5

FREQOUT 3 ፣ 1 ፣ 38500 'በቀኝ በኩል

irDetectRight = IN2

FREQOUT 10 ፣ 1 ፣ 38500 'ግራ ዝጋ

irDetectLSide = IN11

FREQOUT 1 ፣ 1 ፣ 38500 'ቀኝ ዝጋ

irDetectRSide = IN0

FREQOUT 9 ፣ 1 ፣ 38500

irDetectLSideFar = IN11

FREQOUT 4 ፣ 1 ፣ 38500 'በቀኝ በኩል

irDetectRSideFar = IN0

IF irDetectLSide = 0 እና irDetectRSide = 0 ከዚያም ዋናው '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''

ዋና ፦

ለአፍታ አቁም 1000 ያድርጉ

PULSOUT Lmotor ፣ LFast የግራ ሞተር በሙሉ ፍጥነት ይሠራል

PULSOUT Rmotor ፣ RFast 'ቀኝ ሞተር በሙሉ ፍጥነት ይሠራል

FREQOUT 6 ፣ 1 ፣ 38500 'ማዕከል

irDetectCentre = IN5

FREQOUT 10 ፣ 1 ፣ 38500 'ግራ ዝጋ

irDetectLSide = IN11

FREQOUT 1 ፣ 1 ፣ 38500 'በቀኝ በኩል

irDetectRSide = IN0

ከሆነ irDetectLSide = 0 እና irDetectRSide = 1 ከዚያ

PULSOUT Lmotor ፣ LFast ያድርጉ

FREQOUT 6 ፣ 1 ፣ 38500 'ማዕከል

irDetectCentre = IN5 IF irDetectCentre = 0 THEN cent

FREQOUT 10 ፣ 1 ፣ 38500 'ግራ ዝጋ

irDetectLSide = IN11

FREQOUT 3 ፣ 1 ፣ 38500 'በቀኝ በኩል

irDetectRight = IN2

እስከ {irDetectLSide = 1 ወይም irDetectRSide = 0 ድረስ ይዝለሉ

ELSEIF irDetectLSide = 1 እና irDetectRSide = 0 ከዚያ

PULSOUT Rmotor ፣ RFast ያድርጉ

FREQOUT 6 ፣ 1 ፣ 38500 'ማዕከል

irDetectCentre = IN5 IF irDetectCentre = 0 THEN cent

FREQOUT 10 ፣ 1 ፣ 38500 'ግራ ዝጋ

irDetectLSide = IN11

FREQOUT 3 ፣ 1 ፣ 38500 'በቀኝ በኩል

irDetectRight = IN2

እስከ {irDetectLSide = 0 ወይም irDetectRSide = 1 ድረስ ይዝለሉ

'ENDIF

IrDetectCentre = 0 ከሆነ ከዚያ ይጀምሩ

FREQOUT 7, 1, 38500 'በግራ በኩል irDetectLeft = IN8

FREQOUT 6 ፣ 1 ፣ 38500 'ማዕከል

irDetectCentre = IN5

FREQOUT 3 ፣ 1 ፣ 38500

irDetectRight = IN2

ምልክት የተገኘበትን ለማሳየት 1000 'ለአፍታ አቁም

IF (irDetectLeft = 1 እና irDetectRight = 0) ከዚያ ‹ቆይታውን ይገምግሙ

GOSUB turnLeft

ELSEIF (irDetectLeft = 0 እና irDetectRight = 1) ከዚያ

GOSUB turnRight

ELSEIF (irDetectLeft = 1 እና irDetectRight = 1) ከዚያ

GOSUB turnDecide

ሌላ

GOSUB turnReverse

ENDIF

መጨረሻ 'መጨረሻ

ዝለል

ጨርስ

ወደ ግራ ታጠፍ:

PULSOUT Lmotor ፣ LRev FREQOUT 8 ፣ 1 ፣ 38500 irDetectLeft = IN9 FREQOUT 5 ፣ 1 ፣ 38500 irDetectCentre = IN4 FREQOUT 2 ፣ 1 ፣ 38500 irDetectRight = IN0 LOOP እስከ IN0 = 1 ተመለስ

ወደ ቀኝ ታጠፍ:

PULSOUT Rmotor ፣ RRev FREQOUT 8 ፣ 1 ፣ 38500 irDetectLeft = IN9 FREQOUT 5 ፣ 1 ፣ 38500 irDetectCentre = IN4 FREQOUT 2 ፣ 1 ፣ 38500 irDetectRight = IN0 LOOP እስከ IN9 = 1 ድረስ

ተመለስ

turnReverse

ለ mLoop = 0 እስከ 50 PULSOUT Rmotor ፣ RRev PULSOUT Lmotor ፣ LRev PAUSE 20 PULSOUT Lmotor ፣ LRev PAUSE 20 ቀጥሎ PULSOUT Rmotor ፣ RRev FREQOUT 8 ፣ 1 ፣ 38500 irDetectLeft = INF FRET, 38500 irDetectRight = IN0 LOP እስከ IN9 = 1 ድረስ

ተመለስ

turnDecide: 'ተጨማሪ ለማየት ዝቅተኛ ተቃውሞ ይጠቀማል

FREQOUT 9 ፣ 1 ፣ 38500

irDetectLSideFar = IN11

FREQOUT 4 ፣ 1 ፣ 38500 'በቀኝ በኩል

irDetectRSideFar = IN0

ከሆነ (irDetectLSideFar = 1 እና irDetectRSideFar = 0) ከዚያ 'ቆይታውን ይገምግሙ

GOSUB turnLeft

ELSEIF (irDetectLSideFar = 0 እና irDetectRSideFar = 1) ከዚያ

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 እና irDetectRSideFar = 1) ከዚያ

GOSUB turnLeft

ሌላ

GOSUB turnReverse

ENDIF

ተመለስ

የሚመከር: