สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณต้องการในโครงการนี้:
- ขั้นตอนที่ 2: แผนภาพวงจร
- ขั้นตอนที่ 3: การเขียนโปรแกรม Arduino UNO
- ขั้นตอนที่ 4: เยี่ยมมาก
วีดีโอ: วิธีทำ DIY Arduino Obstacle หลีกเลี่ยงหุ่นยนต์ที่บ้าน: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
สวัสดีทุกคน ในคำแนะนำนี้ คุณจะสร้างหุ่นยนต์หลบสิ่งกีดขวาง คำแนะนำนี้เกี่ยวข้องกับการสร้างหุ่นยนต์ด้วยเซ็นเซอร์อัลตราโซนิกที่สามารถตรวจจับวัตถุใกล้เคียงและเปลี่ยนทิศทางเพื่อหลีกเลี่ยงวัตถุเหล่านี้ เซ็นเซอร์อัลตราโซนิกจะติดอยู่กับเซอร์โวมอเตอร์ซึ่งทำการสแกนไปทางซ้ายและขวาอย่างต่อเนื่องเพื่อค้นหาวัตถุที่ขวางทาง
ดังนั้นโดยไม่ต้องกังวลใจต่อไป มาเริ่มกันเลย !
ขั้นตอนที่ 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
- ดาวน์โหลด NewPing.rar ด้านล่าง
- แตกไฟล์ไปยังเส้นทาง - C:\Arduino\libraries
3) อัปโหลดรหัสไปยังบอร์ด Arduino ผ่านสาย USB
ดาวน์โหลดโค้ด:
ขั้นตอนที่ 4: เยี่ยมมาก
ตอนนี้หุ่นยนต์ของคุณพร้อมที่จะหลีกเลี่ยงอุปสรรคใดๆ…
ยินดีตอบทุกคำถาม
Emailme: [email protected]
เว็บไซต์:
สมัครสมาชิกช่อง YouTube ของฉัน:
อินสตาแกรม:
เฟสบุ๊ค:
ขอบคุณ:)
แนะนำ:
วิธีทำ DIY 32 Band LED Audio Music Spectrum Analyzer โดยใช้ Arduino Nano ที่บ้าน #arduinoproject: 8 ขั้นตอน
วิธีทำ DIY 32 Band LED Audio Music Spectrum Analyzer โดยใช้ Arduino Nano ที่บ้าน #arduinoproject: วันนี้เราจะสร้างเครื่องวิเคราะห์สเปกตรัมเพลงเสียง LED 32 แบนด์ที่บ้านโดยใช้ Arduino มันสามารถแสดงสเปกตรัมความถี่และเล่นเพลงได้ในเวลาเดียวกันหมายเหตุ max7219LED ต้องต่อที่หน้าตัวต้านทาน 100k ไม่เช่นนั้นเสียงของสปี
วิธีทำ DIY Air Blower ที่บ้านอย่างง่ายดาย: 3 ขั้นตอน
วิธีทำเครื่องเป่าลม DIY ที่บ้านอย่างง่าย: ในวิดีโอนี้ ฉันทำเครื่องเป่าลมโดยใช้ของใช้ในครัวเรือนอย่างง่ายดาย
วิธีทำ USB Flash Drive โดยใช้ยางลบ - DIY USB Drive Case: 4 ขั้นตอน
วิธีทำ USB Flash Drive โดยใช้ยางลบ | DIY USB Drive Case: บล็อกนี้เกี่ยวกับ "วิธีทำ USB Flash Drive โดยใช้ยางลบ | DIY เคสไดรฟ์ USB" ฉันหวังว่าคุณจะชอบมัน
วิธีทำ DIY Arduino ตั้งเวลาซัก 30 วินาที, หยุดการแพร่กระจายของ COVID: 8 ขั้นตอน
วิธีทำ DIY Arduino ตั้งเวลาซัก 30 วินาที หยุดการแพร่กระจายของ COVID: สวัสดี
DIY Arduino Obstacle หลีกเลี่ยงรถที่บ้าน: 5 ขั้นตอน
DIY Arduino Obstacle หลีกเลี่ยงรถที่บ้าน: ในบทความนี้ฉันจะแสดงวิธีสร้าง Arduino Obstacle หลีกเลี่ยงรถที่บ้าน