የራስዎን ሮቦት እንዴት እንደሚሠሩ መማር ይፈልጋሉ? ብዙ የተለያዩ የሮቦቶች ዓይነቶች አሉ ፣ እርስዎ እራስዎ መገንባት የሚችሉት። ብዙ ሰዎች ሮቦት ከ A ነጥብ ወደ B. የመንቀሳቀስን ቀላል ሥራ ሲያከናውን ማየት ይፈልጋሉ ከአናሎግ ክፍሎች ሮቦትን ሙሉ በሙሉ መገንባት ወይም የማስጀመሪያ መሣሪያ መግዛት ይችላሉ። የራስዎን ሮቦት መሥራት የኤሌክትሮኒክስ እና የኮምፒተር ፕሮግራምን ለመማር ጥሩ መንገድ ነው።
ደረጃ
ክፍል 1 ከ 5 - ሮቦትን መሰብሰብ
ደረጃ 1. ክፍሎችዎን ይሰብስቡ።
መሠረታዊ ሮቦት ለመገንባት ፣ ጥቂት ቀላል ክፍሎች ያስፈልግዎታል። እነዚህን ወይም አብዛኞቹን ክፍሎች በአከባቢዎ የኤሌክትሮኒክስ የትርፍ ጊዜ ማሳለፊያ መደብር ፣ ወይም በአንዳንድ የመስመር ላይ ቸርቻሪዎች ላይ ማግኘት ይችላሉ። አንዳንድ ስብስቦች እነዚህን ሁሉ ክፍሎች ያካትታሉ። ይህ ሮቦት ምንም ብየዳ አያስፈልገውም-
- አርዱዲኖ ኡኖ (ወይም ሌላ ማይክሮ መቆጣጠሪያ)
- 2 servos 360 ዲግሪ
- 2 ጎማዎች ተዛማጅ servo
- 1 ነፃ ጎማ
- ያልተሸጠ 1 የሙከራ ሰሌዳ (የዳቦ ሰሌዳ ወይም የፕሮጀክት ቦርድ) (በእያንዳንዱ ጎን ሁለት አዎንታዊ እና አሉታዊ ረድፎች ያሉት የሙከራ ሰሌዳ ይፈልጉ)
- 1 የአቅራቢያ ዳሳሽ (በአራት ፒን አያያዥ ገመድ)
- 1 የግፋ አዝራር መቀየሪያ
- 1 ተከላካይ 10 ኪ
- 1 ዩኤስቢ ሀ ለ ቢ ገመድ
- 1 የተሰበሩ የራስጌዎች ስብስብ
- 1 6 x AA የባትሪ መያዣ ከ 9 ቮ ዲሲ። የኃይል ሶኬት
- 1 ጥቅል የ 22. ዝላይ ገመዶች ወይም ነጠላ ገመድ
- ማገጃ ወደ ኋላ እና ወደ ፊት (ድርብ ቴፕ) ወይም ሙጫ ጠመንጃ
ደረጃ 2. ጠፍጣፋ ጀርባው ወደ ፊት እንዲታይ የባትሪ ክፍሉን ያዙሩ።
የባትሪውን ክፍል እንደ መሠረት በመጠቀም የሮቦቱን አካል ይገነባሉ።
ደረጃ 3. በባትሪው ወሽመጥ መጨረሻ ላይ ተመሳሳይ አቅጣጫ የሚገጥሙ ሁለት ሰርቮችን ያዘጋጁ።
ይህ ጫፍ ገመዱ ከባትሪው የሚወጣበት መጨረሻ ነው። ሰርቪሶቹ የታችኛውን መንካት አለባቸው ፣ እና የእያንዳንዱ ሰርቪው የማዞሪያ ዘዴ ከባትሪው ክፍል ጎኖች ፊት ለፊት መሆን አለበት። መንኮራኩሮቹ ቀጥ እንዲሉ እነዚህ servos በትክክል መደረጋቸው አስፈላጊ ነው። ለ servo ኬብሎች ከባትሪው ክፍል ጀርባ መውጣት አለባቸው።
ደረጃ 4. ሰርዶሶቹን በመያዣዎ ወይም በሙጫዎ ያጣብቅ።
ሰርቪው ከባትሪው ክፍል ጋር በጥብቅ መገናኘቱን ያረጋግጡ። የ servo ጀርባ ከባትሪው ክፍል ጀርባ ጋር የተስተካከለ መሆን አለበት።
አሁን አገልጋዮቹ በባትሪ ወንዙ ጀርባ ያለውን ግማሽ ቦታ መያዝ አለባቸው።
ደረጃ 5. የሙከራ ሰሌዳውን በባትሪው ክፍል ውስጥ ካለው ቀሪ ቦታ ጋር ያያይዙ።
ይህ የሙከራ ሰሌዳ በባትሪው ክፍል ፊት ላይ በትንሹ ይንጠለጠላል ፣ እና ወደ ሁለቱም ጎኖች ይዘልቃል። ከመቀጠልዎ በፊት የሙከራ ሰሌዳው ጥብቅ መሆኑን ያረጋግጡ። የ “ሀ” ረድፍ ወደ servo ቅርብ መሆን አለበት።
ደረጃ 6. የአርዱዲኖ ማይክሮ መቆጣጠሪያውን ከ servo አናት ጋር ያያይዙ።
ሰርቪሱን በትክክል ካያያዙት እርስ በእርስ የሚነኩ የሁለቱ ሰርቪስ ጠፍጣፋ ክፍል መኖር አለበት። የዩኤስቢ እና የአርዱዲኖ የኃይል ማያያዣዎች ወደታች (ከሙከራ ሰሌዳው ርቀው) እንዲታዩ የአርዱዲኖ ሰሌዳውን ወደዚህ ጠፍጣፋ ቦታ ያክብሩ። የአርዱዲኖ ፊት ከሙከራ ቦርድ ጋር ይደራረባል።
ደረጃ 7. በ servos ላይ መንኮራኩሮችን ይጫኑ።
በሚሽከረከረው የ servo ዘዴ ላይ መንኮራኩሮችን በጥብቅ ይጫኑ። መንኮራኩሮቹ ከ servo ጫፉ ቅርፅ ጋር በትክክል የሚዛመዱ ቀዳዳዎች እንዲኖራቸው የተነደፉ በመሆኑ ይህ ከፍተኛ ኃይል ሊፈልግ ይችላል።
ደረጃ 8. በፈተና ሰሌዳ ታችኛው ክፍል ላይ ነፃውን ተሽከርካሪ ይጫኑ።
ሮቦቱን ወደታች ካዞሩት በባትሪ ክፍሉ ላይ ተንጠልጥሎ ትንሽ የሙከራ ሰሌዳ ያያሉ። በዚህ ተንጠልጣይ ክፍል ላይ ነፃውን ጎማ ያያይዙ። አስፈላጊ ከሆነ ክዳን ይጠቀሙ። ነፃው መንኮራኩር ሮቦቱ በቀላሉ ወደየትኛውም አቅጣጫ እንዲዞር የሚያስችል የፊት ተሽከርካሪ ሆኖ ያገለግላል።
አንድ ኪት ከገዙ ፣ ነፃው ጎማ መንኮራኩሩ መሬቱን ለመንካት ነፃ መሆኑን ለማረጋገጥ ሊጠቀሙባቸው የሚችሏቸው አንዳንድ ቁርጥራጮች ሊኖሩት ይችላል።
ክፍል 2 ከ 5 - ሮቦትን ማገናኘት
ደረጃ 1. ሁለት ባለ 3-ፒን ራስጌዎችን ይቁረጡ።
ሰርቪውን ከሙከራ ሰሌዳ ጋር ለማገናኘት ይህንን ይጠቀማሉ። ራስጌዎቹን በኩል ፒኖችን ወደታች ይግፉት ፣ ስለዚህ በሁለቱም በኩል እኩል ርቀት ይወጣሉ።
ደረጃ 2. በፈተና ሰሌዳው ላይ ሁለቱን ራስጌዎች ወደ ፒን 1-3 እና 6-8 በተከታታይ ኢ ያስገቡ።
እነሱ በጥብቅ ወይም በጥብቅ መግባታቸውን ያረጋግጡ።
ደረጃ 3. የ servo ሽቦዎችን ከጭንቅላቱ ጋር ፣ በግራ በኩል ካለው ጥቁር ሽቦ (ፒን 1 እና 6) ጋር ያገናኙ።
ይህ servo ን ከሙከራ ሰሌዳ ጋር ያገናኘዋል። የግራ አገልጋዩ ከግራ ራስጌው ጋር መገናኘቱን ያረጋግጡ ፣ እና ትክክለኛው servo ከትክክለኛው ራስጌ ጋር መገናኘቱን ያረጋግጡ።
ደረጃ 4. ቀዩን ዝላይ ሽቦ ከፒን C2 እና C7 ወደ ቀይ የባቡር ሐዲድ (አዎንታዊ) ያገናኙ።
በፈተና ሰሌዳው ጀርባ ላይ (ከቀሪው የሮቦት አካል ቅርብ) ቀዩን ባቡር መጠቀምዎን ያረጋግጡ።
ደረጃ 5. ጥቁር ዝላይ ሽቦን ከፒን B1 እና B6 ወደ ሰማያዊ ሀዲድ ፒን (መሬት) ያገናኙ።
በፈተና ሰሌዳ ጀርባ ላይ ያለውን ሰማያዊ ባቡር መጠቀምዎን ያረጋግጡ። ገመዱን ከቀይ ባቡር ፒን ጋር አያይዙ።
ደረጃ 6. አርዱinoኖ ላይ ከፒን 12 እና 13 ላይ የነጭ ዝላይ ሽቦዎችን ወደ A3 እና A8 ያገናኙ።
ይህ አርዱዲኖ አገልጋዩን እንዲቆጣጠር እና መንኮራኩሩን እንዲያዞር ያስችለዋል።
ደረጃ 7. አነፍናፊውን ከሙከራ ቦርድ ፊት ለፊት ያያይዙት።
አነፍናፊው በፈተናው ሰሌዳ ላይ ባለው ውጫዊ የኃይል ባቡር ላይ አልተጫነም ፣ ግን በመጀመሪያዎቹ ሁለት ረድፎች ፒን ፊደላት (ጄ)። በእያንዳንዱ ጎን በእኩል ባዶ ካስማዎች ብዛት በመሃል ላይ በትክክል ማስቀመጥዎን ያረጋግጡ።
ደረጃ 8. ጥቁር ዝላይ ሽቦውን ከፒን I14 ወደ አነፍናፊው በግራ በኩል ወዳለው የመጀመሪያው ሰማያዊ የባቡር ሐዲድ ፒን ያገናኙ።
ይህ ዳሳሹን ያጠፋል።
ደረጃ 9. ቀዩን ዝላይ ሽቦ ከፒን I17 ወደ ዳሳሹ በቀኝ በኩል ወዳለው የመጀመሪያው ቀይ የባቡር ሐዲድ ፒን ያገናኙ።
ይህ ለዳሳሽ ኃይል ይሰጣል።
ደረጃ 10. የነጭ ዝላይ ሽቦዎችን ከፒን I15 ወደ ፒን 9 በአርዱዲኖ ፣ እና ከ I16 እስከ ፒን 8 ያገናኙ።
ይህ መረጃ ከአነፍናፊው ወደ ማይክሮ መቆጣጠሪያ ይሰጣል።
ክፍል 3 ከ 5 - የኃይል ገመዱን መትከል
ደረጃ 1. በውስጡ ያለውን የባትሪ ክፍል ማየት እንዲችሉ ሮቦቱን ያዙሩት።
ገመዱ ከታች በግራ በኩል እንዲወጣ የባትሪውን ክፍል ያዘጋጁ።
ደረጃ 2. ቀይ ሽቦውን ከሁለተኛው ፀደይ ጋር ከግራ ወደ ታች ያገናኙ።
የባትሪው ክፍል በትክክል የተስተካከለ ወይም ትክክለኛውን አቅጣጫ የሚመለከት መሆኑን ያረጋግጡ።
ደረጃ 3. ከታች በስተቀኝ ካለው የመጨረሻው ጸደይ ጋር ጥቁር ሽቦውን ያገናኙ።
እነዚህ ሁለት ሽቦዎች ትክክለኛውን ቮልቴጅ ለአርዱዲኖ ለማቅረብ ይረዳሉ።
ደረጃ 4. ቀይ እና ጥቁር ሽቦዎችን ከሙከራ ሰሌዳ ጀርባ በስተቀኝ በኩል ከሚገኙት ቀይ እና ሰማያዊ ካስማዎች ጋር ያገናኙ።
ጥቁር ሽቦው በፒን 30 ላይ ወደ ሰማያዊው የባቡር ሐዲድ ፒን መሄድ አለበት።
ደረጃ 5. ጥቁር ሽቦውን ከ GND ፒን በአርዱዲኖ ላይ ወደ ሰማያዊ ሀዲዱ ጀርባ ያገናኙ።
በሰማያዊ ባቡር ላይ 28 ን ለመሰካት ሽቦውን ያገናኙ።
ደረጃ 6. ለሁለቱም ሀዲዶች በፒን 29 ላይ ከሰማያዊው የባቡር ሐዲድ በስተጀርባ ያለውን ጥቁር ሽቦ ከሰማያዊው ሐዲድ ፊት ለፊት ያገናኙ።
አርዱዲኖን ሊጎዱ ስለሚችሉ ቀዩን ባቡር አያገናኙ።
ደረጃ 7. ቀዩን ሽቦ ከቀይ ባቡሩ ፊት ለፊት በፒን 30 ላይ በአርዱዲኖ ላይ ወደ 5 ቪ ፒን ያገናኙ።
ይህ ለአርዱዲኖ ኃይል ይሰጣል።
ደረጃ 8. በ 24-26 ፒኖች መካከል ባለው ክፍተት ውስጥ የግፋ አዝራር መቀየሪያውን ያስገቡ።
ይህ ማብሪያ / ማጥፊያ ኃይልን ሳያጠፉ ሮቦቱን እንዲያጠፉ ያስችልዎታል።
ደረጃ 9. ቀዩን ሽቦ ከኤች 24 ወደ ቀጣዩ ባቡር በሚቀጥለው አነፍናፊ በስተቀኝ በኩል ወደ ቀይ ባቡር ያገናኙ።
ይህ ለአዝራሩ ኃይል ይሰጣል።
ደረጃ 10. H26 ን ከሰማያዊው ባቡር ጋር ለማገናኘት ተከላካይ ይጠቀሙ።
በቀደሙት ደረጃዎች ውስጥ አሁን ካገናኙት ጥቁር ሽቦ በቀጥታ ከፒን ጋር ያገናኙት።
ደረጃ 11. ነጩን ሽቦ ከ G26 ወደ አርዱዲኖ ላይ ወደ ፒን 2 ያገናኙ።
ይህ አርዱዲኖ የግፊት ቁልፎችን እንዲለይ ያስችለዋል።
ክፍል 4 ከ 5: የአርዱዲኖ ሶፍትዌርን መጫን
ደረጃ 1. Arduino IDE ን ያውርዱ እና ያውጡ።
ይህ አርዱዲኖ የተገነባበት እና ከዚያ ወደ አርዱዲኖ ማይክሮ መቆጣጠሪያዎ የሚሰቅሏቸው መመሪያዎችን እንዲያዘጋጁ ያስችልዎታል። ከ arduino.cc/en/main/software በነፃ ማውረድ ይችላሉ። በፋይሉ ላይ ሁለቴ ጠቅ በማድረግ እና በውስጡ የያዘውን አቃፊ በቀላሉ ወደሚገኝበት ቦታ በማዛወር የወረደውን ፋይል ይንቀሉ። በእውነቱ ፕሮግራሙን አይጭኑም ፣ ይልቁንስ በ arduino.exe ላይ ሁለቴ ጠቅ በማድረግ ከተወጣው አቃፊ ያሂዱታል።
ደረጃ 2. የባትሪውን ክፍል ከአርዲኖ ጋር ያገናኙ።
እሱን ለማብራት በአርዱዲኖ ላይ ባለው አያያዥ ውስጥ የባትሪውን የኋላ ሶኬት ያስገቡ።
ደረጃ 3. አርዱዲኖን በዩኤስቢ በኩል በኮምፒተርዎ ውስጥ ያስገቡ።
ዕድሎች ፣ ዊንዶውስ መሣሪያውን አያውቀውም።
ደረጃ 4. ይጫኑ።
Win+R እና ይተይቡ devmgmt.msc.
ይህ ትእዛዝ የመሣሪያ አስተዳዳሪውን ይከፍታል።
ደረጃ 5. በሌሎች መሣሪያዎች ስር ባልታወቀ መሣሪያ ላይ በቀኝ ጠቅ ያድርጉ እና የአሽከርካሪ ሶፍትዌርን አዘምን የሚለውን ይምረጡ።
ይህንን አማራጭ ካላዩ ባሕሪያትን ጠቅ ያድርጉ ፣ የአሽከርካሪ ትርን ይምረጡ እና ከዚያ ነጂን አዘምን የሚለውን ጠቅ ያድርጉ።
ደረጃ 6. ለአሽከርካሪ ሶፍትዌሮች ኮምፒተርዬን አስስ የሚለውን ይምረጡ።
ይህ ከ Arduino IDE ጋር የመጡትን አብሮገነብ ነጂዎችን እንዲመርጡ ያስችልዎታል።
ደረጃ 7. አስስ የሚለውን ጠቅ ያድርጉ ፣ ከዚያ ቀደም ብለው ያወጡትን አቃፊ ይክፈቱ።
በውስጡ የአሽከርካሪዎች አቃፊን ያገኛሉ።
ደረጃ 8. የአሽከርካሪዎች አቃፊን ይምረጡ እና እሺን ጠቅ ያድርጉ።
ስለማይታወቁ ሶፍትዌሮች ማስጠንቀቂያ ከሰጠዎት መቀጠል እንደሚፈልጉ ያረጋግጡ።
ክፍል 5 ከ 5 የፕሮግራም ሮቦቶች
ደረጃ 1. በ IDE አቃፊ ውስጥ በ arduino.exe ፋይል ላይ ሁለቴ ጠቅ በማድረግ Arduino IDE ን ይክፈቱ።
በባዶ ፕሮጀክት ሰላምታ ይሰጥዎታል።
ደረጃ 2. ሮቦትዎን የላቀ ለማድረግ የሚከተለውን ኮድ ይለጥፉ ወይም ይለጥፉ።
ከዚህ በታች ያለው ኮድ አርዱዲኖዎን እንዲቀጥል ያደርገዋል።
#ያካትቱ // ይህ የ “Servo” ቤተ -መጽሐፍትን ወደ ፕሮግራሙ ያክላል / / የሚከተለው ትእዛዝ ሁለት servo ነገሮችን ይፈጥራል Servo leftMotor; Servo rightMotor; ባዶነት ማዋቀር () {leftMotor.attach (12); // በስህተት የፒን ቁጥሮችን ለ servo ከቀየሩ ፣ እዚህ ያሉትን ቁጥሮች በትክክል መለዋወጥ ይችላሉ motot.attach (13); } ባዶነት loop () {leftMotor.write (180); // በ 360 ዲግሪ ሽክርክሪት (ቀጣይ ሽክርክሪት) ፣ ቁጥር 180 አገልጋዩን በሙሉ ፍጥነት “ወደ ፊት” እንዲሄድ ያስተምራል። rightMotor.write (0); // ሁለቱም እሴቶች 180 ከሆኑ ሮቦው ሰርቪስ ስለተለወጠ ሮቦቱ በክበብ ውስጥ ይሽከረከራል። “0” ሮቦቱን በሙሉ ፍጥነት ወደ ኋላ እንዲንቀሳቀስ ይነግረዋል። }
ደረጃ 3. ፕሮግራሙን ይፍጠሩ እና ይስቀሉ።
ወደ ተገናኘው አርዱinoኖ ፕሮግራም ለመፍጠር እና ለመስቀል በላይኛው ግራ ጥግ ላይ የቀኝ ቀስት ቁልፍን ጠቅ ያድርጉ።
ፕሮግራሙ ከተሰቀለ በኋላ ሮቦቱ ወደ ፊት መሄዱን ስለሚቀጥል ሮቦቱን ከምድር ላይ ማንሳት ይፈልጉ ይሆናል።
ደረጃ 4. የማቆሚያ መቀየሪያ ተግባር (የመግደል መቀየሪያ) ያክሉ።
በ “ጻፍ ()” ተግባር ላይ የማቆሚያ መቀየሪያ ተግባርን ለማከል የሚከተለውን ኮድ ወደ ኮድዎ “ባዶ ባዶ loop ()” ክፍል ያክሉ።
(digitalRead (2) == HIGH) // አዝራሩ በፒን 2 አርዱinoኖ ላይ ሲጫን (1) {leftMotor.write (90) ሲጫን ይህ ትእዛዝ ይሠራል። // "90" ለ servo ገለልተኛ አቋም ነው ፣ እሱም አገልጋዩ ቀኝ መሞተርን መጻፍ እንዲያቆም የሚነግረው (90) ፤ }}
ደረጃ 5. ኮድዎን ይስቀሉ እና ያረጋግጡ።
የማቆሚያ መቀየሪያ ኮድ አስቀድሞ በተጨመረ ፣ ኮዱን መስቀል እና ሮቦቱን መሞከር ይችላሉ። ሮቦቱ እንዲቆም የሚያደርገውን የማቆሚያ መቀየሪያ ቁልፍ እስኪጫኑ ድረስ ሮቦቱ ወደፊት መቀጠል አለበት። ሙሉ ኮዱ እንደዚህ ይመስላል
#ያካትቱ // የሚከተለው ትዕዛዝ ሁለት Servo leftMotor servo ነገሮችን ይፈጥራል። Servo rightMotor; ባዶነት ማዋቀር () {leftMotor.attach (12); rightMotor.attach (13); } ባዶነት loop () {ከሆነ (digitalRead (2) == ከፍተኛ) {ሳለ (1) {leftMotor.write (90) ፤ rightMotor.write (90); }} leftMotor.write (180) ፤ rightMotor.write (0); }
ለምሳሌ
ሮቦቱ እንቅፋት ባጋጠመው ቁጥር የሚከተለው ኮድ በሮቦቱ ላይ የተጫኑ ዳሳሾችን ይጠቀማል። እያንዳንዱን ክፍል እንዴት እንደሚጠቀሙ ዝርዝሮችን ለማግኘት በኮዱ ውስጥ ያሉትን አስተያየቶች ይመልከቱ። ከዚህ በታች ያለው ኮድ ሙሉው ፕሮግራም ነው።
#Servo leftMotor ን ያካትቱ ፤ Servo rightMotor; const int serialPeriod = 250; // ይህ ኮድ የኮንሶል ውፅዓት የጊዜ መዘግየት በየ 1/4 ሰከንድ (250 ሚሴ) ያልተፈረመ ረጅም ጊዜSerialDelay = 0 እንዲሆን ያደርገዋል። const int loopPeriod = 20; // ይህ ኮድ የአነፍናፊ ንባብ ድግግሞሽን ወደ 20 ሚሴ ያዘጋጃል ፣ ይህም 50 Hz ያልተፈረመ ረጅም ጊዜ ነው LoopDelay = 0; // ይህ ኮድ የ TRIG እና ECHO ተግባሮችን በአርዱዲኖ ላይ ላሉት ፒኖች ይመድባል። ቁጥሮቹን በተለየ መንገድ ካገናኙዋቸው እዚህ ያስተካክሉ const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2 ርቀት; int ultrasonic2Duration; // ይህ ኮድ ሁለት ሊሆኑ የሚችሉ የሮቦት ግዛቶችን ይገልፃል -ወደ ፊት ይቀጥሉ ወይም ወደ ግራ ይታጠፉ #ተለይተው DRIVE_FORWARD 0 #ይግለጹ TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = ወደ ፊት ቀጥል (DEFAULT) ፣ 1 = ወደ ግራ ባዶ ባዶ ማዋቀር () {Serial.begin (9600)); // ይህ አነፍናፊ የፒን ውቅር ፒን ሞዶን (ultrasonic2TrigPin ፣ OUTPUT) ይወስናል። pinMode (ultrasonic2EchoPin ፣ ማስገቢያ); // ይህ ሞተሩን ለ Arduino ፒኖች leftMotor.attach (12) ይመድባል። rightMotor.attach (13); } ባዶነት loop () {(digitalRead (2) == HIGH) // ይህ ኮድ '' ማቆሚያ '' ሲያገኝ (1) {leftMotor.write (90) ፤ rightMotor.write (90); }} ማረም () ማረም (); // ይህ ኮድ (ሚሊስ () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ይህ ኮድ አነፍናፊው ስለተለካው የርቀት ሁኔታ መረጃን እንዲያነብ እና እንዲያከማች ያዝዛል (ማሽን); timeLoopDelay = ሚሊስ (); }} ባዶ ቦታ stateMachine () {ከሆነ (state == DRIVE_FORWARD) // ምንም እንቅፋት ካልተገኘ {{(ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ከሮቦቱ ፊት ምንም ከሌለ። ምንም መሰናክሎች ከሌሉ ለአልትራሳውንድ ለአልትራሳውንድ ርቀት አሉታዊ ይሆናል {// drive ወደፊት rightMotor.write (180) ፤ leftMotor.write (0); } ሌላ // ከፊታችን አንድ ነገር ካለ {state = TURN_LEFT; }} ሌላ ከሆነ (ሁኔታ == TURN_LEFT) // እንቅፋት ከተገኘ ወደ ግራ ይታረሙ {ያልተፈረመ ረጅም ጊዜToTurnLeft = 500; // 90 ዲግሪ ለመዞር 0.5 ሰከንዶች ያህል ይወስዳል። በምሳሌው ባልተፈረመ ረዥም turnStartTime = millis () ውስጥ መንኮራኩሮችዎ በመጠን መጠኑ ቢለያዩ ይህንን እሴት ማስተካከል ሊያስፈልግዎት ይችላል። // ((ሚሊስ ()-turnStartTime) <timeToTurnLeft) // ይህን ዑደት ያዙት/ ጊዜ (ToTurnLeft) (500) እስኪያልፍ ድረስ ይህንን ዑደት ያኑሩ {// ወደ ግራ መታጠፍ ፣ ሁለቱም “180” ሲሆኑ ፣ ያስታውሱ ሮቦቱ ይለወጣል። rightMotor.write (180); leftMotor.write (180); } ግዛት = DRIVE_FORWARD; }} ባዶ ባዶ አንባቢ UltrasonicSensors () {// ይህ ለአልትራሳውንድ ነው 2. የተለየ ዳሳሽ የሚጠቀሙ ከሆነ ይህንን ትእዛዝ መለወጥ ሊያስፈልግዎት ይችላል። ዲጂታል ፃፍ (ultrasonic2TrigPin ፣ HIGH); መዘግየት ማይክሮ ሰከንድ (10); // ቢያንስ ለ 10 ማይክሮ ሰከንዶች ዲጂታል ፃፍ (TRIG ፒን) ከፍተኛ ይጎትቱ (ultrasonic2TrigPin ፣ LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin ፣ HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // የሚከተለው በኮንሶል ውስጥ ስህተቶችን ለማረም ነው። ባዶ አርም () Serial.print (ultrasonic2Distance); Serial.print ("ሴሜ"); Serial.println (); timeSerialDelay = ሚሊስ (); }}