วิธีสร้างหุ่นยนต์ที่บ้าน (พร้อมรูปภาพ)

สารบัญ:

วิธีสร้างหุ่นยนต์ที่บ้าน (พร้อมรูปภาพ)
วิธีสร้างหุ่นยนต์ที่บ้าน (พร้อมรูปภาพ)

วีดีโอ: วิธีสร้างหุ่นยนต์ที่บ้าน (พร้อมรูปภาพ)

วีดีโอ: วิธีสร้างหุ่นยนต์ที่บ้าน (พร้อมรูปภาพ)
วีดีโอ: ใช้ Sketchup เป็นในคลิปเดียว (มือใหม่) 2024, อาจ
Anonim

คุณต้องการที่จะเรียนรู้วิธีการสร้างหุ่นยนต์ของคุณเอง? มีหุ่นยนต์หลายประเภทที่คุณสามารถสร้างได้ด้วยตัวเอง คนส่วนใหญ่ต้องการเห็นหุ่นยนต์ทำงานง่ายๆ ในการย้ายจากจุด A ไปยังจุด B คุณสามารถสร้างหุ่นยนต์จากส่วนประกอบแอนะล็อกได้อย่างสมบูรณ์หรือซื้อชุดเริ่มต้นตั้งแต่เริ่มต้น! การสร้างหุ่นยนต์ของคุณเองเป็นวิธีที่ยอดเยี่ยมในการสอนตัวเองทั้งด้านอิเล็กทรอนิกส์และการเขียนโปรแกรมคอมพิวเตอร์

ขั้นตอน

ตอนที่ 1 จาก 6: การประกอบหุ่นยนต์

1123333 1
1123333 1

ขั้นตอนที่ 1 รวบรวมส่วนประกอบของคุณ

ในการสร้างหุ่นยนต์พื้นฐาน คุณจะต้องมีส่วนประกอบง่ายๆ หลายอย่าง คุณสามารถหาส่วนประกอบส่วนใหญ่ (แต่ไม่ใช่ทั้งหมด) ได้ที่ร้านขายอุปกรณ์อิเล็กทรอนิกส์ใกล้บ้านคุณ หรือร้านค้าปลีกออนไลน์หลายแห่ง ชุดพื้นฐานบางชุดอาจมีส่วนประกอบเหล่านี้ทั้งหมดด้วย หุ่นยนต์ตัวนี้ไม่ต้องการการบัดกรี:

  • Arduino Uno (หรือไมโครคอนโทรลเลอร์อื่น ๆ)
  • เซอร์โวหมุนต่อเนื่อง 2 ตัว
  • 2 ล้อที่พอดีกับเซอร์โว
  • ลูกล้อ 1 ลูก
  • เขียงหั่นขนมขนาดเล็ก 1 อัน (มองหาเขียงหั่นขนมที่มีเส้นบวกและลบสองเส้นในแต่ละด้าน)
  • เซ็นเซอร์วัดระยะ 1 ตัว (พร้อมสายต่อสี่พิน)
  • สวิตช์ปุ่มกดขนาดเล็ก 1 ตัว
  • ตัวต้านทาน 1 10kΩ
  • สาย USB A ถึง B 1 เส้น
  • หัวแตก 1 ชุด
  • 1 6 x ที่ใส่แบตเตอรี่ AA พร้อมแจ็คไฟ 9V DC
  • สายจัมเปอร์ 1 แพ็คหรือสายเกี่ยว 22 เกจ
  • เทปกาวสองหน้าแข็งแรงหรือกาวร้อน
1123333 2
1123333 2

ขั้นตอนที่ 2 พลิกก้อนแบตเตอรี่กลับด้านโดยให้แผ่นหลังเรียบขึ้น

คุณจะต้องสร้างร่างกายของหุ่นยนต์โดยใช้ก้อนแบตเตอรี่เป็นฐาน

1123333 3
1123333 3

ขั้นตอนที่ 3 จัดตำแหน่งเซอร์โวสองตัวที่ส่วนท้ายของก้อนแบตเตอรี่

นี่ควรเป็นจุดสิ้นสุดที่สายของก้อนแบตเตอรี่ออกมาจากเซอร์โวควรสัมผัสก้น และกลไกการหมุนของแต่ละอันควรหันออกด้านข้างของก้อนแบตเตอรี่ เซอร์โวต้องอยู่ในตำแหน่งที่ถูกต้องเพื่อให้ล้อตรง สายไฟสำหรับเซอร์โวควรจะหลุดออกจากด้านหลังของก้อนแบตเตอรี่

1123333 4
1123333 4

ขั้นตอนที่ 4 ติดเซอร์โวด้วยเทปหรือกาวของคุณ

ตรวจสอบให้แน่ใจว่าได้ต่อเข้ากับก้อนแบตเตอรี่อย่างแน่นหนา ด้านหลังของเซอร์โวควรอยู่ในแนวเดียวกับด้านหลังของก้อนแบตเตอรี่

เซอร์โวควรจะกินครึ่งหลังของก้อนแบตเตอรี่

1123333 5
1123333 5

ขั้นตอนที่ 5. ติดเขียงหั่นขนมในแนวตั้งฉากกับพื้นที่เปิดของก้อนแบตเตอรี่

ควรแขวนไว้ที่ด้านหน้าของก้อนแบตเตอรี่เพียงเล็กน้อยและจะขยายออกไปนอกแต่ละด้าน ตรวจสอบให้แน่ใจว่าได้ยึดอย่างแน่นหนาก่อนดำเนินการต่อ แถว "A" ควรอยู่ใกล้กับเซอร์โวมากที่สุด

1123333 6
1123333 6

ขั้นตอนที่ 6 แนบไมโครคอนโทรลเลอร์ Arduino เข้ากับส่วนบนของเซอร์โว

หากคุณติดเซอร์โวอย่างถูกต้อง ควรมีพื้นที่ราบที่พวกเขาสัมผัสกัน ติดบอร์ด Arduino ไว้บนพื้นที่เรียบนี้ โดยให้ขั้วต่อ USB และ Power ของ Arduino หันเข้าหาด้านหลัง (ห่างจากเขียงหั่นขนม) ด้านหน้าของ Arduino ควรจะแทบจะไม่ทับซ้อนกันของเขียงหั่นขนม

1123333 7
1123333 7

ขั้นตอนที่ 7. ใส่ล้อบนเซอร์โว

กดล้อเข้ากับกลไกการหมุนของเซอร์โวอย่างแน่นหนา ซึ่งอาจต้องใช้แรงมาก เนื่องจากล้อได้รับการออกแบบมาเพื่อให้กระชับที่สุดเท่าที่จะเป็นไปได้เพื่อการยึดเกาะที่ดีที่สุด

1123333 8
1123333 8

ขั้นตอนที่ 8 แนบล้อไปที่ด้านล่างของเขียงหั่นขนม

หากคุณพลิกโครงเครื่อง คุณควรเห็นเขียงหั่นขนมที่ยื่นออกมาจากก้อนแบตเตอรี่ ติดลูกล้อเข้ากับชิ้นส่วนที่ขยายออกนี้ โดยใช้ตัวยกหากจำเป็น ลูกล้อทำหน้าที่เป็นล้อหน้า ช่วยให้หุ่นยนต์หมุนไปในทิศทางใดก็ได้

หากคุณซื้อชุดอุปกรณ์ ล้อเลื่อนอาจมีตัวยกสองสามตัวที่คุณสามารถใช้เพื่อให้แน่ใจว่าลูกล้อจะถึงพื้น ผม

ตอนที่ 2 จาก 6: การเดินสายไฟหุ่นยนต์

1123333 9
1123333 9

ขั้นตอนที่ 1 แยกส่วนหัว 3 พินออกสองอัน

คุณจะใช้สิ่งเหล่านี้เพื่อเชื่อมต่อเซอร์โวกับเขียงหั่นขนม ดันหมุดลงไปทางส่วนหัวเพื่อให้หมุดออกมาในระยะห่างเท่ากันทั้งสองด้าน

1123333 10
1123333 10

ขั้นตอนที่ 2 ใส่ส่วนหัวทั้งสองลงในพิน 1-3 และ 6-8 บนแถว E ของเขียงหั่นขนม

ตรวจสอบให้แน่ใจว่าใส่เข้าที่อย่างแน่นหนา

1123333 11
1123333 11

ขั้นตอนที่ 3 เชื่อมต่อสายเซอร์โวเข้ากับส่วนหัวโดยใช้สายสีดำทางด้านซ้าย (พิน 1 และ 6)

สิ่งนี้จะเชื่อมต่อเซอร์โวกับเขียงหั่นขนม ตรวจสอบให้แน่ใจว่าเซอร์โวด้านซ้ายเชื่อมต่อกับส่วนหัวด้านซ้ายและเซอร์โวด้านขวาไปยังส่วนหัวด้านขวา

1123333 12
1123333 12

ขั้นตอนที่ 4. เชื่อมต่อสายจัมเปอร์สีแดงจากพิน C2 และ C7 กับพินรางสีแดง (บวก)

ตรวจสอบให้แน่ใจว่าคุณใช้รางสีแดงที่ด้านหลังของเขียงหั่นขนม (ใกล้กับส่วนที่เหลือของโครงเครื่อง)

1123333 13
1123333 13

ขั้นตอนที่ 5. เชื่อมต่อสายจัมเปอร์สีดำจากพิน B1 และ B6 กับพินรางสีน้ำเงิน (กราวด์)

ตรวจสอบให้แน่ใจว่าคุณใช้รางสีน้ำเงินที่ด้านหลังของเขียงหั่นขนม อย่าเสียบเข้ากับหมุดรางสีแดง

1123333 14
1123333 14

ขั้นตอนที่ 6 เชื่อมต่อสายจัมเปอร์สีขาวจากพิน 12 และ 13 บน Arduino กับ A3 และ A8

ซึ่งจะช่วยให้ Arduino สามารถควบคุมเซอร์โวและหมุนล้อได้

1123333 15
1123333 15

ขั้นตอนที่ 7 ติดเซ็นเซอร์ไว้ที่ด้านหน้าของเขียงหั่นขนม

มันไม่ได้เสียบเข้ากับรางไฟด้านนอกบนเขียงหั่นขนม แต่เสียบเข้ากับพินตัวอักษร (J) แถวแรกแทน ตรวจสอบให้แน่ใจว่าคุณวางหมุดไว้ตรงกลาง โดยมีจำนวนหมุดที่เท่ากันในแต่ละด้าน

1123333 16
1123333 16

ขั้นตอนที่ 8 เชื่อมต่อสายจัมเปอร์สีดำจากพิน I14 กับพินรางสีน้ำเงินเส้นแรกที่ด้านซ้ายของเซ็นเซอร์

สิ่งนี้จะกราวด์เซ็นเซอร์

1123333 17
1123333 17

ขั้นตอนที่ 9 เชื่อมต่อสายจัมเปอร์สีแดงจากพิน I17 กับพินรางสีแดงตัวแรกที่ด้านขวาของเซ็นเซอร์

สิ่งนี้จะจ่ายพลังงานให้กับเซ็นเซอร์

1123333 18
1123333 18

ขั้นตอนที่ 10. เชื่อมต่อสายจัมเปอร์สีขาวจากพิน I15 กับพิน 9 บน Arduino และจาก I16 ถึงพิน 8

สิ่งนี้จะดึงข้อมูลจากเซ็นเซอร์ไปยังไมโครคอนโทรลเลอร์

ตอนที่ 3 จาก 6: การเดินสายไฟ

1123333 19
1123333 19

ขั้นตอนที่ 1. พลิกหุ่นยนต์ไปด้านข้างเพื่อให้คุณเห็นแบตเตอรี่ในชุด

วางสายโดยให้สายชุดแบตเตอรี่ออกมาทางซ้ายที่ด้านล่าง

1123333 20
1123333 20

ขั้นตอนที่ 2 เชื่อมต่อสายสีแดงกับสปริงที่สองจากด้านซ้ายที่ด้านล่าง

ตรวจสอบให้แน่ใจว่าได้วางก้อนแบตเตอรี่ไว้อย่างถูกต้อง

1123333 21
1123333 21

ขั้นตอนที่ 3 ต่อสายสีดำเข้ากับสปริงสุดท้ายที่ด้านล่างขวา

สายเคเบิลทั้งสองนี้จะช่วยให้แรงดันไฟฟ้าที่ถูกต้องแก่ Arduino

1123333 22
1123333 22

ขั้นตอนที่ 4 เชื่อมต่อสายสีแดงและสีดำเข้ากับหมุดสีแดงและสีน้ำเงินด้านขวาสุดที่ด้านหลังของเขียงหั่นขนม

ควรเสียบสายเคเบิลสีดำเข้ากับพินรางสีน้ำเงินที่พิน 30 สายเคเบิลสีแดงควรเสียบเข้ากับพินรางสีแดงที่พิน 30

1123333 23
1123333 23

ขั้นตอนที่ 5. เชื่อมต่อสายสีดำจากพิน GND บน Arduino เข้ากับรางสีน้ำเงินด้านหลัง

เชื่อมต่อที่พิน 28 บนรางสีน้ำเงิน

1123333 24
1123333 24

ขั้นตอนที่ 6 ต่อสายสีดำจากรางสีน้ำเงินด้านหลังเข้ากับรางสีน้ำเงินด้านหน้าที่พิน 29 สำหรับแต่ละอัน

อย่าต่อรางสีแดง เพราะอาจทำให้ Arduino เสียหายได้

1123333 25
1123333 25

ขั้นตอนที่ 7 เชื่อมต่อสายสีแดงจากรางสีแดงด้านหน้าที่พิน 30 กับพิน 5V บน Arduino

สิ่งนี้จะให้พลังงานแก่ Arduino

1123333 26
1123333 26

ขั้นตอนที่ 8 ใส่สวิตช์ปุ่มกดในช่องว่างระหว่างแถวบนหมุด 24-26

สวิตช์นี้จะช่วยให้คุณสามารถปิดหุ่นยนต์โดยไม่ต้องถอดปลั๊กไฟ

1123333 27
1123333 27

ขั้นตอนที่ 9 เชื่อมต่อสายสีแดงจาก H24 เข้ากับรางสีแดงในพินถัดไปทางด้านขวาของเซ็นเซอร์

นี่จะเป็นการเปิดเครื่องให้กับปุ่ม

1123333 28
1123333 28

ขั้นตอนที่ 10. ใช้ตัวต้านทานเพื่อเชื่อมต่อ H26 กับรางสีน้ำเงิน

เชื่อมต่อเข้ากับหมุดถัดจากสายสีดำที่คุณเชื่อมต่อเมื่อไม่กี่ขั้นตอนที่แล้ว

1123333 29
1123333 29

ขั้นตอนที่ 11 เชื่อมต่อสายสีขาวจาก G26 เข้ากับขา 2 บน Arduino

ซึ่งจะช่วยให้ Arduino สามารถลงทะเบียนปุ่มกดได้

ส่วนที่ 4 จาก 6: การติดตั้งซอฟต์แวร์ Arduino

1123333 30
1123333 30

ขั้นตอนที่ 1. ดาวน์โหลดและแตก Arduino IDE

นี่คือสภาพแวดล้อมการพัฒนา Arduino และอนุญาตให้คุณตั้งโปรแกรมคำสั่งที่คุณสามารถอัปโหลดไปยังไมโครคอนโทรลเลอร์ Arduino ของคุณได้ คุณสามารถดาวน์โหลดได้ฟรีจาก arduino.cc/en/main/software เปิดเครื่องรูดไฟล์ที่ดาวน์โหลดโดยดับเบิลคลิกและย้ายโฟลเดอร์ภายในไปยังตำแหน่งที่เข้าถึงได้ง่าย คุณจะไม่ได้ติดตั้งโปรแกรมจริงๆ คุณจะเรียกใช้จากโฟลเดอร์ที่แยกออกมาโดยดับเบิลคลิก arduino.exe แทน

1123333 31
1123333 31

ขั้นตอนที่ 2 เชื่อมต่อก้อนแบตเตอรี่กับ Arduino

เสียบแจ็คแบตเตอรี่กลับเข้ากับขั้วต่อบน Arduino เพื่อให้มีไฟ

1123333 32
1123333 32

ขั้นตอนที่ 3 เสียบ Arduino เข้ากับคอมพิวเตอร์ของคุณผ่าน USB

Windows มักจะไม่รู้จักอุปกรณ์

1123333 33
1123333 33

ขั้นตอนที่ 4. กด

⊞ ชนะ+รับ และพิมพ์ devmgmt.msc

การดำเนินการนี้จะเปิดตัวจัดการอุปกรณ์

1123333 34
1123333 34

ขั้นตอนที่ 5. คลิกขวาที่ "อุปกรณ์ที่ไม่รู้จัก" ในส่วน "อุปกรณ์อื่นๆ" และเลือก "อัปเดตซอฟต์แวร์ไดรเวอร์

" หากคุณไม่เห็นตัวเลือกนี้ ให้คลิก "คุณสมบัติ" แทน เลือกแท็บ "ไดรเวอร์" แล้วคลิก "อัปเดตไดรเวอร์"

1123333 35
1123333 35

ขั้นตอนที่ 6 เลือก "เรียกดูคอมพิวเตอร์ของฉันเพื่อหาซอฟต์แวร์ไดรเวอร์

" ซึ่งจะช่วยให้คุณสามารถเลือกไดรเวอร์ที่มาพร้อมกับ Arduino IDE ได้

1123333 36
1123333 36

ขั้นตอนที่ 7 คลิก "เรียกดู" จากนั้นไปที่โฟลเดอร์ที่คุณแตกก่อนหน้านี้

คุณจะพบโฟลเดอร์ "drivers" อยู่ข้างใน

1123333 37
1123333 37

ขั้นตอนที่ 8 เลือกโฟลเดอร์ "ไดรเวอร์" และคลิก "ตกลง

" ยืนยันว่าคุณต้องการดำเนินการต่อหากคุณได้รับคำเตือนเกี่ยวกับซอฟต์แวร์ที่ไม่รู้จัก

ตอนที่ 5 จาก 6: การเขียนโปรแกรมหุ่นยนต์

1123333 38
1123333 38

ขั้นตอนที่ 1 เริ่ม Arduino IDE โดยดับเบิลคลิกที่ไฟล์ arduino.exe ในโฟลเดอร์ IDE

คุณจะได้รับการต้อนรับด้วยโครงการเปล่า

1123333 39
1123333 39

ขั้นตอนที่ 2 วางรหัสต่อไปนี้เพื่อให้หุ่นยนต์ของคุณตรง

รหัสด้านล่างจะทำให้ Arduino ของคุณก้าวไปข้างหน้าอย่างต่อเนื่อง

#include // นี่จะเพิ่มไลบรารี "Servo" ให้กับโปรแกรม // ต่อไปนี้จะสร้างวัตถุเซอร์โวสองตัวที่ Servo leftMotor; เซอร์โวขวามอเตอร์; การตั้งค่าเป็นโมฆะ () { leftMotor.attach (12); // หากคุณเปลี่ยนหมายเลขพินสำหรับเซอร์โวของคุณโดยไม่ได้ตั้งใจ คุณสามารถสลับตัวเลขได้ที่นี่ rightMotor.attach(13); } วงเป็นโมฆะ () { leftMotor.write (180); // ด้วยการหมุนอย่างต่อเนื่อง 180 บอกให้เซอร์โวเคลื่อนที่ด้วยความเร็วเต็มที่ "ไปข้างหน้า" ขวามอเตอร์ เขียน(0); // หากทั้งสองสิ่งนี้อยู่ที่ 180 หุ่นยนต์จะไปเป็นวงกลมเพราะเซอร์โวถูกพลิก "0," บอกให้เคลื่อนที่ด้วยความเร็วเต็มที่ "ถอยหลัง" }

1123333 40
1123333 40

ขั้นตอนที่ 3 สร้างและอัปโหลดโปรแกรม

คลิกปุ่มลูกศรขวาที่มุมบนซ้ายเพื่อสร้างและอัปโหลดโปรแกรมไปยัง Arduino ที่เชื่อมต่อ

คุณอาจต้องการยกหุ่นยนต์ออกจากพื้นผิว เนื่องจากหุ่นยนต์จะเดินหน้าต่อไปเมื่ออัปโหลดโปรแกรมแล้ว

1123333 41
1123333 41

ขั้นตอนที่ 4 เพิ่มฟังก์ชัน kill switch

เพิ่มโค้ดต่อไปนี้ในส่วน "void loop()" ของโค้ดของคุณเพื่อเปิดใช้งาน kill switch เหนือฟังก์ชัน "write()"

if(digitalRead(2) == HIGH) // สิ่งนี้จะลงทะเบียนเมื่อกดปุ่มที่ขา 2 ของ Arduino { while (1) { leftMotor.write (90); // "90" คือตำแหน่งที่เป็นกลางสำหรับเซอร์โว ซึ่งบอกให้พวกเขาหยุดหมุน rightMotor.write(90); } }

1123333 42
1123333 42

ขั้นตอนที่ 5. อัปโหลดและทดสอบรหัสของคุณ

เมื่อเพิ่มโค้ด kill switch คุณสามารถอัปโหลดและทดสอบหุ่นยนต์ได้ ควรขับไปข้างหน้าต่อไปจนกว่าคุณจะกดสวิตช์ จากนั้นจะหยุดเคลื่อนที่ รหัสเต็มควรมีลักษณะดังนี้:

#include // ต่อไปนี้สร้างวัตถุเซอร์โวสองตัว Servo leftMotor; เซอร์โวขวามอเตอร์; การตั้งค่าเป็นโมฆะ () { leftMotor.attach (12); rightMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) { while(1) { leftMotor.write(90); rightMotor.write(90); } } leftMotor.write(180); rightMotor.write(0); }

ตอนที่ 6 จาก 6: ตัวอย่าง

ขั้นตอนที่ 1 ทำตามตัวอย่าง

รหัสต่อไปนี้จะใช้เซ็นเซอร์ที่ติดอยู่กับหุ่นยนต์เพื่อให้เลี้ยวซ้ายเมื่อใดก็ตามที่พบสิ่งกีดขวาง ดูความคิดเห็นในโค้ดสำหรับรายละเอียดเกี่ยวกับสิ่งที่แต่ละส่วนทำ รหัสด้านล่างเป็นโปรแกรมทั้งหมด

#include เซอร์โว leftMotor; เซอร์โวขวามอเตอร์; const int serialPeriod = 250; // สิ่งนี้ จำกัด การส่งออกไปยังคอนโซลทุกๆ 1/4 วินาทีที่ไม่ได้ลงนามเป็นเวลานาน timeSerialDelay = 0; const int รอบระยะเวลา = 20; // สิ่งนี้กำหนดความถี่ที่เซ็นเซอร์อ่านค่าได้ถึง 20ms ซึ่งเป็นความถี่ 50Hz ที่ไม่ได้ลงนามเป็นเวลานาน timeLoopDelay = 0; // สิ่งนี้กำหนดฟังก์ชัน TRIG และ ECHO ให้กับพินบน Arduino ทำการปรับเปลี่ยนตัวเลขที่นี่หากคุณเชื่อมต่อ const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int Ultrasonic2ระยะเวลา; // สิ่งนี้กำหนดสองสถานะที่เป็นไปได้สำหรับหุ่นยนต์: ขับไปข้างหน้าหรือเลี้ยวซ้าย #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = ขับไปข้างหน้า (ค่าเริ่มต้น), 1 = เลี้ยวซ้ายตั้งค่าโมฆะ () { Serial.begin (9600); // การกำหนดค่าพินเซ็นเซอร์เหล่านี้ pinMode (ultrasonic2TrigPin, OUTPUT); โหมดพิน (ultrasonic2EchoPin, INPUT); // สิ่งนี้กำหนดมอเตอร์ให้กับหมุด Arduino leftMotor.attach(12); rightMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) // ตรวจพบ kill switch { while(1) { leftMotor.write(90); rightMotor.write(90); } } debugOutput(); // สิ่งนี้จะพิมพ์ข้อความการดีบักไปยังซีเรียลคอนโซล if(millis() - timeLoopDelay >= loopPeriod) { readUltrasonicSensors(); // สิ่งนี้สั่งให้เซ็นเซอร์อ่านและจัดเก็บระยะทางที่วัดได้ stateMachine(); timeLoopDelay = มิลลิวินาที (); } } เป็นโมฆะ stateMachine() { if(state == DRIVE_FORWARD) // ถ้าไม่พบสิ่งกีดขวาง { if(ultrasonic2Distance > 6 || Ultrasonic2Distance < 0) // ถ้าไม่มีอะไรอยู่ข้างหน้าหุ่นยนต์ UltrasonicDistance จะเป็นค่าลบสำหรับ Ultrasonics บางตัวหากไม่มีสิ่งกีดขวาง (// ขับไปข้างหน้า rightMotor.write (180); leftMotor.write(0); } else // หากมีวัตถุอยู่ข้างหน้าเรา { state = TURN_LEFT; } } else if(state == TURN_LEFT) // หากตรวจพบสิ่งกีดขวาง ให้เลี้ยวซ้าย { unsigned long timeToTurnLeft = 500; // ใช้เวลาประมาณ.5 วินาทีในการหมุน 90 องศา คุณอาจต้องปรับค่านี้หากล้อของคุณมีขนาดแตกต่างจากตัวอย่างที่ไม่ได้ลงนาม long turnStartTime = millis(); // ประหยัดเวลาที่เราเริ่มหมุนในขณะที่ ((มิลลิวินาที () -turnStartTime) < timeToTurnLeft) // อยู่ในลูปนี้จนกว่า timeToTurnLeft จะผ่านไป { // เลี้ยวซ้าย จำไว้ว่าเมื่อทั้งคู่ตั้งค่าเป็น "180" มันจะเลี้ยว. rightMotor.write(180); leftMotor.write(180); } รัฐ = DRIVE_FORWARD; } } ถือเป็นโมฆะ readUltrasonicSensors() { // นี่สำหรับ Ultrasonic 2 คุณอาจต้องเปลี่ยนคำสั่งเหล่านี้หากคุณใช้เซ็นเซอร์อื่น digitalWrite (อัลตราโซนิก2TrigPin สูง); ดีเลย์ไมโครวินาที(10); // ทำให้ขา trig สูงเป็นเวลาอย่างน้อย 10 microseconds digitalWrite(ultrasonic2TrigPin, LOW); Ultrasonic2Duration = pulseIn (อัลตราโซนิก2EchoPin สูง); Ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // ต่อไปนี้สำหรับการดีบักข้อผิดพลาดในคอนโซล ถือเป็นโมฆะ debugOutput () { ถ้า ((มิลลิวินาที () - timeSerialDelay) > serialPeriod) { Serial.print ("ultrasonic2Distance: "); Serial.print(อัลตราโซนิก2ระยะทาง); Serial.print("ซม."); Serial.println(); timeSerialDelay = มิลลิวินาที (); } }

แนะนำ: