สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ในคำแนะนำนี้ คุณจะได้เรียนรู้วิธีสร้างหุ่นยนต์แก้เขาวงกตที่แก้เขาวงกตที่วาดโดยมนุษย์
ในขณะที่หุ่นยนต์ส่วนใหญ่แก้ปริศนาเขาวงกตที่วาดขึ้นประเภทแรก (คุณต้องไปตามเส้น พวกมันคือเส้นทาง) คนปกติมักจะวาดเขาวงกตประเภทที่สอง สิ่งเหล่านี้ยากกว่าและพิถีพิถันกว่ามากสำหรับหุ่นยนต์ แต่ก็ใช่ว่าจะเป็นไปไม่ได้!
ขั้นตอนที่ 1: ขั้นตอนที่ 1: การแก้ปัญหาเขาวงกต
ฉันได้พิจารณาวิธีการแก้เขาวงกตมาหลายวิธีแล้ว แต่วิธีที่ใช้บ่อยที่สุดคือวิธีการตั้งโปรแกรมที่ง่ายในขณะที่ยังคงแก้เขาวงกตเกือบทุกชนิด!
ในวิธีนี้ เราบอกให้หุ่นยนต์:
- เลี้ยวขวาเมื่อไหร่ก็ได้
- ถ้าไม่ก็ขับไปข้างหน้าถ้าเป็นไปได้
- เลี้ยวซ้ายเป็นทางออกสุดท้ายและ
- พลิกกลับถ้ามันวิ่งไปสู่ทางตัน
ในภาพที่คุณเห็นเขาวงกตกำลังแก้ปัญหาด้วยวิธีนี้ วิธีนี้มักเรียกว่า Wall Follower ตราบใดที่ปลายทางคือทางออกในกำแพงชั้นนอก Wall Follower จะพบมัน
ขั้นตอนที่ 2: ขั้นตอนที่ 2: สั่งซื้ออะไหล่
สำหรับหุ่นยนต์ตัวนี้ เราต้องการ:
- 1× Arduino Uno
- ที่ใส่แบตเตอรี่ AA 1 × 4 ก้อน
- 3× TCRT5000 เซ็นเซอร์ (QTR-1A)
- มอเตอร์ DC 2 × 6V
- ลวดเขียงหั่นขนมชาย - หญิง 13 ×
- ลวดเขียงหั่นขนมหญิง - หญิง 10 ×
- ส่วนหัวของพินที่มีอย่างน้อย 29 พิน
- อุปกรณ์บัดกรี
นอกจากนี้ ให้ดาวน์โหลดและติดตั้ง Arduino IDE เพื่อพัฒนาบน Arduino ของคุณและตรวจสอบให้แน่ใจว่า Arduino ของคุณมาพร้อมกับสายเคเบิล USB ชนิด A/B เพื่อเชื่อมต่อกับคอมพิวเตอร์ของคุณ
ขั้นตอนที่ 3: ขั้นตอนที่ 3: อ่านจากเซ็นเซอร์
เซ็นเซอร์ TCRT5000 สร้างขึ้นจากไฟ LED อินฟราเรด (ลูกโลกสีน้ำเงิน) และตัวรับสัญญาณ (ลูกโลกสีดำ)
เมื่อไฟ LED ปล่อยแสงอินฟราเรดลงบนพื้นผิวสีขาว มันจะสะท้อนเข้าสู่เครื่องรับ และจะคืนค่ากลับมาเป็นค่าต่ำ (ในกรณีของฉัน 40~60) เมื่อไฟ LED ปล่อยแสงลงบนพื้นผิวสีดำ มันจะดูดกลืนและจะคืนค่าเป็น มูลค่าสูง (700~1010 ในกรณีของฉัน)
ภาพที่สองแสดงสคีมาที่บอกวิธีเชื่อมต่อเซ็นเซอร์กับ Arduino ถือเซ็นเซอร์ไว้เพื่อให้คุณเห็นไฟ LED และตัวรับสัญญาณ และหมุดชี้ไปที่สคีมาเพื่อให้แน่ใจว่าคุณเชื่อมต่อพินที่ถูกต้อง
ตอนนี้เราเพียงแค่ต้องเชื่อมต่อ Arduino กับคอมพิวเตอร์ของเรา ใส่รหัสต่อไปนี้ใน Arduino IDE และคอมไพล์:
// เปลี่ยน A0 เป็นพอร์ตใดก็ตามที่คุณเชื่อมต่อเซ็นเซอร์เป็น#define FRONT_SENSOR A0void start() { Serial.begin(9600); } วงเป็นโมฆะ () { int frontValue = analogRead (FRONT_SENSOR); Serial.println (frontValue);}
ตอนนี้ หากคุณขยับเซ็นเซอร์อย่างใกล้ชิดบนพื้นผิวสีขาวและสีดำ คุณจะเห็นค่าที่เปลี่ยนไปตามนั้นในจอภาพแบบอนุกรม