በቤት ውስጥ ሮቦት እንዴት እንደሚሠራ (ከስዕሎች ጋር)

ዝርዝር ሁኔታ:

በቤት ውስጥ ሮቦት እንዴት እንደሚሠራ (ከስዕሎች ጋር)
በቤት ውስጥ ሮቦት እንዴት እንደሚሠራ (ከስዕሎች ጋር)

ቪዲዮ: በቤት ውስጥ ሮቦት እንዴት እንደሚሠራ (ከስዕሎች ጋር)

ቪዲዮ: በቤት ውስጥ ሮቦት እንዴት እንደሚሠራ (ከስዕሎች ጋር)
ቪዲዮ: የአርኪደሩን ፋይል ወደ Lumion እንዴት ማስገባት እንደሚቻል 2024, ሚያዚያ
Anonim

የራስዎን ሮቦት እንዴት እንደሚገነቡ መማር ይፈልጋሉ? በእራስዎ ሊሠሩ የሚችሉ ብዙ የተለያዩ ሮቦቶች አሉ። ብዙ ሰዎች ሮቦት ከ A ወደ ነጥብ ቢ የመንቀሳቀስ ቀላል ተግባሮችን ሲያከናውን ማየት ይፈልጋሉ ሮቦትን ከአናሎግ ክፍሎች ሙሉ በሙሉ መሥራት ወይም የማስነሻ መሣሪያን ከባዶ መግዛት ይችላሉ! የራስዎን ሮቦት መገንባት እራስዎን ሁለቱንም ኤሌክትሮኒክስን እንዲሁም የኮምፒተር ፕሮግራምን ለማስተማር ጥሩ መንገድ ነው።

ደረጃዎች

ክፍል 1 ከ 6 - ሮቦትን መሰብሰብ

1123333 1
1123333 1

ደረጃ 1. ክፍሎችዎን ይሰብስቡ።

መሠረታዊ ሮቦት ለመገንባት ፣ በርካታ ቀላል ክፍሎች ያስፈልግዎታል። በአከባቢዎ የኤሌክትሮኒክስ የትርፍ ጊዜ ማሳለፊያ ሱቅ ፣ ወይም ብዙ የመስመር ላይ ቸርቻሪዎች ላይ ፣ እነዚህን ካልሆነ ፣ አብዛኛዎቹን ማግኘት ይችላሉ። አንዳንድ መሠረታዊ ስብስቦች እነዚህን ሁሉ ክፍሎችም ሊያካትቱ ይችላሉ። ይህ ሮቦት ምንም ብየዳ አያስፈልገውም-

  • አርዱዲኖ ኡኖ (ወይም ሌላ ማይክሮ መቆጣጠሪያ)
  • 2 ቀጣይነት ማሽከርከር servos
  • ከ servos ጋር የሚገጣጠሙ 2 ጎማዎች
  • 1 ካስተር ሮለር
  • 1 ትንሽ የማይሸጥ የዳቦ ሰሌዳ (በእያንዳንዱ ጎን ሁለት አዎንታዊ እና አሉታዊ መስመሮች ያሉት የዳቦ ሰሌዳ ይፈልጉ)
  • 1 የርቀት ዳሳሽ (በአራት ፒን አያያዥ ገመድ)
  • 1 አነስተኛ የግፋ-ቁልፍ መቀየሪያ
  • 1 10kΩ ተከላካይ
  • 1 ዩኤስቢ ሀ ለ ቢ ገመድ
  • 1 የተሰበሩ የራስጌዎች ስብስብ
  • 1 6 x AA ባትሪ መያዣ ከ 9 ቪ ዲሲ የኃይል መሰኪያ ጋር
  • 1 ጥቅል ዝላይ ሽቦዎች ወይም 22-ልኬት መንጠቆ-ሽቦ
  • ጠንካራ ባለ ሁለት ጎን ቴፕ ወይም ሙቅ ሙጫ
1123333 2
1123333 2

ደረጃ 2. ጠፍጣፋ ጀርባው ወደ ፊት እንዲታይ የባትሪውን ጥቅል ወደ ላይ ያንሸራትቱ።

የባትሪውን ጥቅል እንደ መሠረት በመጠቀም የሮቦቱን አካል ይገነባሉ።

1123333 3
1123333 3

ደረጃ 3. በባትሪ ማሸጊያው መጨረሻ ላይ ሁለቱን ሰርቮች አሰልፍ።

የባትሪ እሽግ ሽቦው የሚወጣው መጨረሻው መሆን አለበት ሰርቪስ የታችኛው ክፍልን መንካት አለበት ፣ እና የእያንዳንዱ የማዞሪያ ስልቶች ከባትሪ ማሸጊያው ጎኖች ፊት ለፊት መሆን አለባቸው። መንኮራኩሮቹ ቀጥ ብለው እንዲሄዱ ሰርቪዎቹ በትክክል መስተካከል አለባቸው። ለ servos ሽቦዎች ከባትሪ ጥቅል ጀርባ መውረድ አለባቸው።

1123333 4
1123333 4

ደረጃ 4. ሰርዶቹን በቴፕዎ ወይም ሙጫዎ ላይ ይለጥፉ።

እነሱ ከባትሪው ጥቅል ጋር በጥብቅ የተያዙ መሆናቸውን ያረጋግጡ። የ servos ጀርባዎች ከባትሪ ማሸጊያው ጀርባ ጋር ተጣጥመው መሆን አለባቸው።

አገልጋዮቹ አሁን የባትሪውን የኋላ ግማሹን በግማሽ መውሰድ አለባቸው።

1123333 5
1123333 5

ደረጃ 5. በባትሪ ማሸጊያው ላይ ባለው ክፍት ቦታ ላይ የዳቦ ሰሌዳውን በአቀባዊ ያያይዙ።

በባትሪ ማሸጊያው ፊት ላይ ትንሽ ብቻ ተንጠልጥሎ ከእያንዳንዱ ጎን በላይ ሊራዘም ይገባል። ከመቀጠልዎ በፊት ደህንነቱ በተጠበቀ ሁኔታ መዘጋቱን ያረጋግጡ። የ “ሀ” ረድፍ ለ servos ቅርብ መሆን አለበት።

1123333 6
1123333 6

ደረጃ 6. የአርዱዲኖ ማይክሮ መቆጣጠሪያውን በ servos ጫፎች ላይ ያያይዙ።

ሰርቪሶቹን በትክክል ካያያዙት ፣ በመንካት የተሰራ ጠፍጣፋ ቦታ መኖር አለበት። የአርዱዲኖ ዩኤስቢ እና የኃይል ማገናኛዎች ጀርባውን (ከዳቦ ሰሌዳው ርቀው) እንዲመለከቱት የአርዱዲኖ ሰሌዳውን በዚህ ጠፍጣፋ ቦታ ላይ ይለጥፉ። የአርዱዲኖ ፊት ከቂጣው ሰሌዳ ጋር እምብዛም መደራረብ አለበት።

1123333 7
1123333 7

ደረጃ 7. ጎማዎቹን በ servos ላይ ያድርጉ።

በተሽከርካሪው የማዞሪያ ዘዴ ላይ መንኮራኩሮችን በጥብቅ ይጫኑ። መንኮራኩሮቹ በተቻለ መጠን በጥብቅ ለመገጣጠም የተነደፉ በመሆኑ ይህ ጉልህ የሆነ ኃይል ሊፈልግ ይችላል።

1123333 8
1123333 8

ደረጃ 8. መያዣውን ከዳቦርዱ ታችኛው ክፍል ጋር ያያይዙት።

ቻሲሱን ከገለበጡ ፣ ከባትሪ ማሸጊያው ያለፈ ትንሽ የዳቦ ሰሌዳ ማየት አለብዎት። አስፈላጊ ከሆነ ተንሳፋፊዎችን በመጠቀም መያዣውን ከዚህ የተራዘመ ቁራጭ ጋር ያያይዙት። ቆጣሪው እንደ የፊት ተሽከርካሪ ሆኖ ይሠራል ፣ ይህም ሮቦቱ በማንኛውም አቅጣጫ በቀላሉ እንዲዞር ያስችለዋል።

አንድ ኪት ከገዙ ፣ ቀማሚው መሬት ላይ መድረሱን ለማረጋገጥ ሊጠቀሙበት ከሚችሉት ጥቂት መነሻዎች ጋር ሊመጣ ይችላል። እኔ

ክፍል 2 ከ 6 - ሮቦትን ማገናኘት

1123333 9
1123333 9

ደረጃ 1. ሁለት ባለ 3-ፒን ራስጌዎችን ይሰብሩ።

ሰርቦቹን ከዳቦ ሰሌዳ ጋር ለማገናኘት እነዚህን ይጠቀማሉ። ፒኖቹ በሁለቱም ጎኖች በእኩል ርቀት እንዲወጡ በአርዕስቱ በኩል ወደ ታች ይግፉት።

1123333 10
1123333 10

ደረጃ 2. የዳቦ ሰሌዳውን ረድፍ E ላይ ሁለቱን ራስጌዎች ወደ ፒን 1-3 እና 6-8 ያስገቡ።

እነሱ በጥብቅ መግባታቸውን ያረጋግጡ።

1123333 11
1123333 11

ደረጃ 3. የ servo ኬብሎችን ወደ ራስጌዎቹ ያገናኙ ፣ በግራ በኩል ባለው ጥቁር ገመድ (ፒን 1 እና 6)።

ይህ ሰርዶቹን ከዳቦ ሰሌዳ ጋር ያገናኛል። የግራ አገልጋዩ ከግራ ራስጌው እና ከትክክለኛው servo ወደ ቀኝ ራስጌ መገናኘቱን ያረጋግጡ።

1123333 12
1123333 12

ደረጃ 4. ቀይ ዝላይ ሽቦዎችን ከፒን C2 እና C7 ወደ ቀይ (አዎንታዊ) የባቡር ካስማዎች ያገናኙ።

በዳቦ ሰሌዳው ጀርባ ላይ (ከቀሪው የሻሲው አቅራቢያ) ቀዩን ባቡር መጠቀምዎን ያረጋግጡ።

1123333 13
1123333 13

ደረጃ 5. ጥቁር ዝላይ ሽቦዎችን ከፒን B1 እና B6 ወደ ሰማያዊ (መሬት) የባቡር ካስማዎች ያገናኙ።

በመጋገሪያ ሰሌዳ ጀርባ ላይ ሰማያዊውን ሐዲድ መጠቀሙን ያረጋግጡ። ወደ ቀይ የባቡር ሐዲዶች ካስገባቸው።

1123333 14
1123333 14

ደረጃ 6. በአርዱinoኖ ላይ ከፒን 12 እና 13 ላይ የነጭ ዝላይ ሽቦዎችን ወደ A3 እና A8 ያገናኙ።

ይህ አርዱዲኖ ሰርዶሶቹን እንዲቆጣጠር እና መንኮራኩሮችን እንዲዞር ያስችለዋል።

1123333 15
1123333 15

ደረጃ 7. ዳሳሹን ከዳቦ ሰሌዳ ፊት ለፊት ያያይዙት።

በዳቦ ሰሌዳው ላይ ባለው የውጪ ኃይል ሀዲዶች ውስጥ አይሰካም ፣ ይልቁንም በፊደላት ፒን (ጄ) የመጀመሪያ ረድፍ ውስጥ። በእያንዳንዱ ጎን እኩል የፒን ብዛት ያለው በትክክለኛው ማእከል ውስጥ ማስቀመጥዎን ያረጋግጡ።

1123333 16
1123333 16

ደረጃ 8. ጥቁር መዝለያ ሽቦን ከፒን I14 ወደ አነፍናፊው በግራ በኩል ወዳለው የመጀመሪያው ሰማያዊ የባቡር ሐዲድ ፒን ያገናኙ።

ይህ ዳሳሹን ያጠፋል።

1123333 17
1123333 17

ደረጃ 9. ከቀይ I17 ወደ አነፍናፊው በቀኝ በኩል ካለው የመጀመሪያው ቀይ የባቡር ሐዲድ ፒን ቀይ ዝላይ ሽቦ ያገናኙ።

ይህ አነፍናፊውን ኃይል ይሰጣል።

1123333 18
1123333 18

ደረጃ 10. በአርዱዲኖ ላይ ከፒን I15 እስከ ፒን 9 እና ከ I16 እስከ 8 ድረስ የነጭ ዝላይ ሽቦዎችን ያገናኙ።

ይህ መረጃ ከአነፍናፊው ወደ ማይክሮ መቆጣጠሪያው ይመገባል።

ክፍል 3 ከ 6 - ኃይሉን ሽቦ ማድረግ

1123333 19
1123333 19

ደረጃ 1. በጥቅሉ ውስጥ ያሉትን ባትሪዎች ማየት እንዲችሉ ሮቦቱን ከጎኑ ያዙሩት።

የባትሪ ማሸጊያ ገመድ ከታች ወደ ግራ እየወጣ እንዲሄድ አቅጣጫውን ያዙሩት።

1123333 20
1123333 20

ደረጃ 2. ከታችኛው በኩል ከግራ ወደ ሁለተኛው የፀደይ ቀይ ሽቦ ያገናኙ።

የባትሪ ማሸጊያው በትክክል መሄዱን ያረጋግጡ።

1123333 21
1123333 21

ደረጃ 3. ከታች በስተቀኝ በኩል ካለፈው የፀደይ ወቅት ጥቁር ሽቦን ያገናኙ።

እነዚህ ሁለት ኬብሎች ትክክለኛውን ቮልቴጅ ለአርዱዲኖ ለማቅረብ ይረዳሉ።

1123333 22
1123333 22

ደረጃ 4. በቀይ እና ጥቁር ሽቦዎች ከዳቦ ሰሌዳው ጀርባ ካለው ከቀኝ ከቀይ እና ሰማያዊ ካስማዎች ጋር ያገናኙ።

ጥቁር ገመድ በፒን 30 ላይ በሰማያዊ የባቡር ሐዲድ ላይ መሰካት አለበት።

1123333 23
1123333 23

ደረጃ 5. በአርዱዲኖ ላይ ካለው የ GND ፒን ወደ ጥቁር ሰማያዊ ባቡር ጥቁር ሽቦ ያገናኙ።

በሰማያዊ ባቡር ላይ በፒን 28 ላይ ያገናኙት።

1123333 24
1123333 24

ደረጃ 6. ለእያንዳንዱ ከፒን 29 ላይ ጥቁር ሽቦን ከኋላ ሰማያዊ ባቡር ወደ የፊት ሰማያዊ ባቡር ያገናኙ።

አርዱዲኖን ሊጎዱ ስለሚችሉ ቀይ ሐዲዶችን አያገናኙ።

1123333 25
1123333 25

ደረጃ 7. ከቀይ ቀይ ባቡር ላይ ቀይ ሽቦን በፒን 30 ላይ ወደ አርዱዲኖ 5V ፒን ይገናኙ።

ይህ ለአርዱዲኖ ኃይልን ይሰጣል።

1123333 26
1123333 26

ደረጃ 8. በፒን 24-26 ላይ ባሉ ረድፎች መካከል ባለው ክፍተት ውስጥ የግፋ ቁልፍ መቀየሪያውን ያስገቡ።

ይህ ማብሪያ ኃይልን መንቀል ሳያስፈልግዎት ሮቦቱን እንዲያጠፉ ያስችልዎታል።

1123333 27
1123333 27

ደረጃ 9. ከኤች2424 ቀዩን ሽቦ ከቀይ ሀዲዱ ወደ ቀጣዩ ባቡር ከአነፍናፊው በቀኝ በኩል ያገናኙ።

ይህ አዝራሩን ኃይል ያደርገዋል።

1123333 28
1123333 28

ደረጃ 10. H26 ን ወደ ሰማያዊ ሀዲድ ለማገናኘት ተቃዋሚውን ይጠቀሙ።

ከጥቂት ደረጃዎች በፊት ካገናኙት ጥቁር ሽቦ ቀጥሎ በቀጥታ ከፒን ጋር ያገናኙት።

1123333 29
1123333 29

ደረጃ 11. በአርዱዲኖ ላይ ነጭ ሽቦን ከ G26 ወደ ፒን 2 ያገናኙ።

ይህ አርዱዲኖ የግፋ ቁልፍን እንዲመዘገብ ያስችለዋል።

ክፍል 4 ከ 6: የአርዱዲኖ ሶፍትዌርን መጫን

1123333 30
1123333 30

ደረጃ 1. የ Arduino IDE ን ያውርዱ እና ያውጡ።

ይህ የአርዱዲኖ ልማት አከባቢ ነው እና ከዚያ ወደ አርዱዲኖ ማይክሮ መቆጣጠሪያዎ ሊሰቅሏቸው የሚችሉ መመሪያዎችን እንዲያዘጋጁ ያስችልዎታል። ከ arduino.cc/en/main/software በነፃ ማውረድ ይችላሉ። እሱን ሁለቴ ጠቅ በማድረግ የወረደውን ፋይል ይንቀሉ እና አቃፊውን ወደ በቀላሉ ወደሚገኝበት ቦታ ያንቀሳቅሱት። በእውነቱ ፕሮግራሙን አይጭኑም። በምትኩ ፣ arduino.exe ን ሁለቴ ጠቅ በማድረግ ከተወጣው አቃፊ ያስኬዱታል።

1123333 31
1123333 31

ደረጃ 2. የባትሪውን ጥቅል ከአርዱዲኖ ጋር ያገናኙ።

ኃይል ለመስጠት የባትሪውን የኋላ መሰኪያ በአርዱዲኖ ላይ ባለው አያያዥ ውስጥ ይሰኩት።

1123333 32
1123333 32

ደረጃ 3. አርዱዲኖን በዩኤስቢ በኩል ወደ ኮምፒተርዎ ይሰኩት።

ዊንዶውስ መሣሪያውን ላያውቅ ይችላል።

1123333 33
1123333 33

ደረጃ 4. ይጫኑ።

⊞ Win+R እና ይተይቡ devmgmt.msc.

ይህ የመሣሪያ አስተዳዳሪውን ይጀምራል።

1123333 34
1123333 34

ደረጃ 5. በ “ሌሎች መሣሪያዎች” ክፍል ውስጥ ባለው “ያልታወቀ መሣሪያ” ላይ በቀኝ ጠቅ ያድርጉ እና “የአሽከርካሪ ሶፍትዌርን አዘምን” ን ይምረጡ።

" ይህንን አማራጭ ካላዩ በምትኩ “ባሕሪዎች” ን ጠቅ ያድርጉ ፣ “ሾፌር” ትርን ይምረጡ እና ከዚያ “ነጂን አዘምን” ን ጠቅ ያድርጉ።

1123333 35
1123333 35

ደረጃ 6. “ለአሽከርካሪ ሶፍትዌሮች ኮምፒተርዬን አስስ” ን ይምረጡ።

" ይህ ከ Arduino IDE ጋር የመጣውን ነጂ ለመምረጥ ያስችልዎታል።

1123333 36
1123333 36

ደረጃ 7. «አስስ» ን ጠቅ ያድርጉ እና ከዚያ ቀደም ብለው ያወጡትን አቃፊ ያስሱ።

በውስጡ የ "ሾፌሮች" አቃፊ ያገኛሉ።

1123333 37
1123333 37

ደረጃ 8. “ሾፌሮች” የሚለውን አቃፊ ይምረጡ እና “እሺ” ን ጠቅ ያድርጉ።

" ስለ ያልታወቁ ሶፍትዌሮች ማስጠንቀቂያ ከሰጠዎት መቀጠል እንደሚፈልጉ ያረጋግጡ።

ክፍል 5 ከ 6 - ሮቦትን ፕሮግራም ማድረግ

1123333 38
1123333 38

ደረጃ 1. በ IDE አቃፊ ውስጥ የ arduino.exe ፋይልን ሁለቴ ጠቅ በማድረግ የ Arduino IDE ን ይጀምሩ።

በባዶ ፕሮጀክት ሰላምታ ይሰጥዎታል።

1123333 39
1123333 39

ደረጃ 2. ሮቦትዎ በቀጥታ እንዲሄድ ለማድረግ የሚከተለውን ኮድ ይለጥፉ።

ከዚህ በታች ያለው ኮድ አርዱዲኖዎን ያለማቋረጥ ወደፊት እንዲገፋ ያደርገዋል።

#ያካትቱ // ይህ የ “ሰርቪ” ቤተ -መጽሐፍትን ወደ ፕሮግራሙ ያክላል / የሚከተለው ሁለት የ servo ነገሮችን ይፈጥራል Servo leftMotor; Servo rightMotor; ባዶነት ማዋቀር () {leftMotor.attach (12); // ለአገልጋዮችዎ የፒን ቁጥሮችን በድንገት ከቀየሩ ፣ እዚህ ያሉትን ቁጥሮች በትክክል መለዋወጥ ይችላሉ motot.attach (13); } ባዶነት loop () {leftMotor.write (180) ፤ // በተከታታይ ሽክርክሪት ፣ 180 አገልጋዩን በሙሉ ፍጥነት “ወደ ፊት” እንዲሄድ ይነግረዋል። ቀኝ ሞተር መጻፍ (0); // ሁለቱም እነዚህ በ 180 ከሆኑ ሮቦዎቹ ተገለባበጡ ስለሆነ ሮቦቱ በክበብ ውስጥ ይሄዳል። "0" ሙሉውን ፍጥነት ወደ ኋላ እንዲንቀሳቀስ ይነግረዋል። }

1123333 40
1123333 40

ደረጃ 3. ፕሮግራሙን ይገንቡ እና ይስቀሉ።

በላይኛው ግራ ጥግ ላይ ፕሮግራሙን ወደ ተገናኘው አርዱinoኖ ለመገንባት እና ለመስቀል የቀኝ ቀስት ቁልፍን ጠቅ ያድርጉ።

ፕሮግራሙ ከተሰቀለ በኋላ ወደፊት መጓዙን ስለሚቀጥል ሮቦቱን ከምድር ላይ ማንሳት ይፈልጉ ይሆናል።

1123333 41
1123333 41

ደረጃ 4. የግድያ መቀየሪያ ተግባርን ያክሉ።

ከ “ጻፍ ()” ተግባራት በላይ የመግደል መቀየሪያን ለማንቃት በኮድዎ “ባዶ ባዶ loop ()” ክፍል ውስጥ የሚከተለውን ኮድ ያክሉ።

(digitalRead (2) == HIGH) // አዝራሩ በአርዱዲኖ ፒን 2 ላይ ሲጫን ይመዘገባል {ሳለ (1) {leftMotor.write (90) ፤ // “90” ለ servos ገለልተኛ አቋም ነው ፣ ይህም ወደ ቀኝ መሞተር (መጻፍ) (90) መዞሩን እንዲያቆሙ ይነግራቸዋል። }}

1123333 42
1123333 42

ደረጃ 5. ኮድዎን ይስቀሉ እና ይሞክሩት።

የመግደል መቀየሪያ ኮድ ሲታከል ሮቦቱን መስቀል እና መሞከር ይችላሉ። መቀየሪያውን እስኪጫኑ ድረስ ወደ ፊት መንዳቱን መቀጠል አለበት ፣ በዚህ ጊዜ መንቀሳቀሱን ያቆማል። ሙሉ ኮዱ እንደዚህ መሆን አለበት

#ያካትቱ / / የሚከተለው ሁለት servo ነገሮችን ይፈጥራል Servo leftMotor; Servo rightMotor; ባዶነት ማዋቀር () {leftMotor.attach (12); rightMotor.attach (13); } ባዶነት loop () {ከሆነ (digitalRead (2) == ከፍተኛ) {ሳለ (1) {leftMotor.write (90) ፤ rightMotor.write (90); }} leftMotor.write (180) ፤ rightMotor.write (0); }

ክፍል 6 ከ 6 - ምሳሌ

ደረጃ 1. አንድ ምሳሌ ይከተሉ።

የሚከተለው ኮድ እንቅፋት ባጋጠመው ቁጥር ወደ ሮቦት እንዲዞር ከሮቦቱ ጋር የተያያዘውን ዳሳሽ ይጠቀማል። እያንዳንዱ ክፍል ስለሚሠራው ዝርዝር መረጃ በኮዱ ውስጥ ያሉትን አስተያየቶች ይመልከቱ። ከዚህ በታች ያለው ኮድ አጠቃላይ ፕሮግራሙ ነው።

#Servo leftMotor ን ያካትቱ ፤ Servo rightMotor; const int serialPeriod = 250; // ይህ ወደ ኮንሶል ውፅዓት በየ 1/4 ሰከንድ ያልተፈረመ ረጅም ጊዜSerialDelay = 0; const int loopPeriod = 20; // ይህ አነፍናፊ ምን ያህል ጊዜ ንባብን ወደ 20ms እንደሚወስድ ያዘጋጃል ፣ ይህም የ 50Hz ያልተመዘገበ ረጅም ጊዜ ድግግሞሽ ነው ሎፕ ዲላላይ = 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)); // እነዚህ አነፍናፊ ፒን ውቅሮች pinMode (ultrasonic2TrigPin ፣ OUTPUT); pinMode (ultrasonic2EchoPin ፣ ማስገቢያ); // ይህ ሞተሮችን ወደ አርዱዲኖ ፒኖች leftMotor.attach (12) ይመድባል። rightMotor.attach (13); } ባዶነት loop () {ከሆነ (digitalRead (2) == HIGH) // ይህ የግድያ ማብሪያ / ማጥፊያውን ያገኛል {1) (leftMotor.write (90) ፤ rightMotor.write (90); }} ማረም () ማረም (); // ይህ (ሚሊስ () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ይህ የመለኪያ ርቀቶችን stateMachine () ን እንዲያነብ እና እንዲያከማች አነፍናፊውን ያዛል። timeLoopDelay = ሚሊስ (); }} ባዶ ቦታ stateMachine () {ከሆነ (state == DRIVE_FORWARD) // ምንም እንቅፋቶች ካልተገኙ {{(ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ከሮቦቱ ፊት ምንም ከሌለ። ለአልትራሳውንድ ምንም እንቅፋት ከሌለ ለአንዳንድ አልትራሳውንድ አሉታዊ ይሆናል {// drive ወደፊት rightMotor.write (180) ፤ leftMotor.write (0); } ሌላ // ከፊታችን አንድ ነገር ካለ {state = TURN_LEFT; }} ሌላ ከሆነ (ሁኔታ == TURN_LEFT) // መሰናክል ከተገኘ ወደ ግራ ይታረሙ {ያልተፈረመ ረጅም ጊዜToTurnLeft = 500; // 90 ዲግሪ ለመዞር 5 ሰከንዶች ይወስዳል። መንኮራኩሮችዎ ከምሳሌው ካልተፈረመ ረዥም turnStartTime = millis () የተለየ መጠን ካላቸው ይህንን ማስተካከል ሊያስፈልግዎት ይችላል። // ((ሚሊስ ()-turnStartTime) <timeToTurnLeft) // ጊዜን እስኪያልፍ ድረስ በዚህ ሉፕ ውስጥ ይቆዩ {/ turn left} ፣ // ሁለቱም ወደ “180” ሲዋቀሩ ያስታውሱ. rightMotor.write (180); leftMotor.write (180); } ግዛት = DRIVE_FORWARD; }} ባዶ ንባብ UltrasonicSensors () {// ይህ ለአልትራሳውንድ ነው 2. የተለየ ዳሳሽ የሚጠቀሙ ከሆነ እነዚህን ትዕዛዞች መለወጥ ሊያስፈልግዎት ይችላል። ዲጂታል ፃፍ (ultrasonic2TrigPin ፣ HIGH); መዘግየት ማይክሮ ሰከንድ (10); // የትሪግ ፒን ቢያንስ ለ 10 ማይክሮ ሰከንድ ዲጂታል ፃፍ (ultrasonic2TrigPin ፣ LOW) ከፍ ያደርገዋል። ultrasonic2Duration = pulseIn (ultrasonic2EchoPin ፣ HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // የሚከተለው በኮንሶል ውስጥ ስህተቶችን ለማረም ነው። ባዶ አርም () Serial.print (ultrasonic2 ርቀት); Serial.print ("ሴሜ"); Serial.println (); timeSerialDelay = ሚሊስ (); }}

የሚመከር: