สารบัญ:

วิธีทำ DIY Arduino Obstacle หลีกเลี่ยงหุ่นยนต์ที่บ้าน: 4 ขั้นตอน
วิธีทำ DIY Arduino Obstacle หลีกเลี่ยงหุ่นยนต์ที่บ้าน: 4 ขั้นตอน

วีดีโอ: วิธีทำ DIY Arduino Obstacle หลีกเลี่ยงหุ่นยนต์ที่บ้าน: 4 ขั้นตอน

วีดีโอ: วิธีทำ DIY Arduino Obstacle หลีกเลี่ยงหุ่นยนต์ที่บ้าน: 4 ขั้นตอน
วีดีโอ: How to make a DIY obstacle avoiding robot car at home [Step by step instrctions] 2024, กรกฎาคม
Anonim
Image
Image

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

ดังนั้นโดยไม่ต้องกังวลใจต่อไป มาเริ่มกันเลย !

ขั้นตอนที่ 1: สิ่งที่คุณต้องการในโครงการนี้:

สิ่งที่คุณต้องการในโครงการนี้
สิ่งที่คุณต้องการในโครงการนี้
สิ่งที่คุณต้องการในโครงการนี้
สิ่งที่คุณต้องการในโครงการนี้

นี่คือรายการอะไหล่:

1) Arduino Uno

2) โล่ไดรเวอร์มอเตอร์

3) ชุดมอเตอร์เกียร์ เฟรมและล้อ

4) เซอร์โวมอเตอร์

5) อัลตราโซนิกเซนเซอร์

6) แบตเตอรี่ลิเธียมไอออน (2x)

7) ที่ใส่แบตเตอรี่

8) สายจัมเปอร์ชายและหญิง

9) หัวแร้ง

10) เครื่องชาร์จ

ขั้นตอนที่ 2: แผนภาพวงจร

แผนภูมิวงจรรวม
แผนภูมิวงจรรวม

การทำงาน:

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

ด้วยการใช้สัญญาณทริกเกอร์ภายนอก หมุด Trig บนเซ็นเซอร์อัลตราโซนิกทำให้ลอจิกสูงอย่างน้อย 10µs มีการส่งเสียงระเบิดจากโมดูลเครื่องส่งสัญญาณ ประกอบด้วย 8 พัลส์ 40KHz

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

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

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

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

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

ขั้นตอนที่ 3: การเขียนโปรแกรม Arduino UNO

#รวม

#รวม

#รวม

# กำหนด TRIG_PIN A1

# กำหนด ECHO_PIN A0

# กำหนด MAX_DISTANCE 200

# กำหนด MAX_SPEED 255 // ตั้งค่าความเร็วของมอเตอร์กระแสตรง

# กำหนด MAX_SPEED_OFFSET 20

ใหม่ปิงโซนาร์ (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCมอเตอร์มอเตอร์3(3, MOTOR34_1กิโลเฮิร์ตซ์);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); เซอร์โว myservo;

บูลีนไปไปข้างหน้า = เท็จ;

ระยะทาง int = 100; int speedSet = 0;

การตั้งค่าเป็นโมฆะ () {

myservo.attach(10);

myservo.write(115); ล่าช้า (2000); ระยะทาง = readPing(); ล่าช้า (100); ระยะทาง = readPing(); ล่าช้า (100); ระยะทาง = readPing(); ล่าช้า (100); ระยะทาง = readPing(); ล่าช้า (100); }

วงเป็นโมฆะ () {

ระยะทาง intR = 0; ระยะทาง intL = 0; ล่าช้า(40);

ถ้า (ระยะทาง <= 15) { moveStop(); ล่าช้า (100); ย้ายย้อนกลับ(); ล่าช้า (300); moveStop(); ล่าช้า(200); DistanceR = lookRight(); ล่าช้า(200); ระยะทางL = lookLeft(); ล่าช้า(200);

ถ้า (distanceR >= distanceL) {

เลี้ยวขวา(); moveStop(); } อื่น ๆ { turnLeft(); moveStop(); } } อื่น { เลื่อนไปข้างหน้า (); } ระยะทาง = readPing(); }

int lookRight() {

myservo.write(50); ล่าช้า (500); ระยะทาง int = readPing(); ล่าช้า (100); myservo.write(115); ระยะทางกลับ; }

int lookLeft() {

myservo.write(170); ล่าช้า (500); ระยะทาง int = readPing(); ล่าช้า (100); myservo.write(115); ระยะทางกลับ; ล่าช้า (100); }

int readPing() {

ล่าช้า(70); int cm = sonar.ping_cm(); ถ้า (ซม. == 0) { ซม. = 250; } กลับซม.; }

เป็นโมฆะ moveStop() {

motor3.run(ปล่อย);

motor4.run(ปล่อย); }

โมฆะ moveForward() {

ถ้า (!goesForward) {

ไปข้างหน้า = จริง;

motor3.run (ไปข้างหน้า);

motor4.run (ไปข้างหน้า); สำหรับ (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // ค่อยๆ เพิ่มความเร็วเพื่อหลีกเลี่ยงการโหลดแบตเตอรี่เร็วเกินไป {

motor3.setSpeed(speedSet);

motor4.setSpeed(speedSet); ล่าช้า(5); } } }

เป็นโมฆะ moveBackward () {

ไปข้างหน้า = เท็จ;

motor3.run(ย้อนกลับ);

motor4.run(ย้อนกลับ); สำหรับ (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // ค่อยๆ เพิ่มความเร็วเพื่อหลีกเลี่ยงการโหลดแบตเตอรี่เร็วเกินไป {

motor3.setSpeed(speedSet);

motor4.setSpeed(speedSet); ล่าช้า(5); } }

ถือเป็นโมฆะเลี้ยวขวา () {

motor3.run (ไปข้างหน้า);

motor4.run(ย้อนกลับ); ล่าช้า (500);

motor3.run (ไปข้างหน้า);

motor4.run (ไปข้างหน้า); }

เป็นโมฆะเลี้ยวซ้าย () {

motor3.run(ย้อนกลับ);

motor4.run (ไปข้างหน้า); ล่าช้า (500);

motor3.run (ไปข้างหน้า);

motor4.run (ไปข้างหน้า); }

1) ดาวน์โหลดและติดตั้ง Arduino Desktop IDE

  • วินโดว์ -
  • Mac OS X -
  • ลินุกซ์ -

2) ดาวน์โหลดและวางไฟล์ไลบรารี NewPing (ไลบรารีฟังก์ชันเซ็นเซอร์อัลตราโซนิก) ลงในโฟลเดอร์ไลบรารี Arduino

  1. ดาวน์โหลด NewPing.rar ด้านล่าง
  2. แตกไฟล์ไปยังเส้นทาง - C:\Arduino\libraries

3) อัปโหลดรหัสไปยังบอร์ด Arduino ผ่านสาย USB

ดาวน์โหลดโค้ด:

ขั้นตอนที่ 4: เยี่ยมมาก

ตอนนี้หุ่นยนต์ของคุณพร้อมที่จะหลีกเลี่ยงอุปสรรคใดๆ…

ยินดีตอบทุกคำถาม

Emailme: [email protected]

เว็บไซต์:

สมัครสมาชิกช่อง YouTube ของฉัน:

อินสตาแกรม:

เฟสบุ๊ค:

ขอบคุณ:)

แนะนำ: