สารบัญ:

วิธีสร้างหุ่นยนต์อัจฉริยะโดยใช้ Arduino: 4 ขั้นตอน
วิธีสร้างหุ่นยนต์อัจฉริยะโดยใช้ Arduino: 4 ขั้นตอน

วีดีโอ: วิธีสร้างหุ่นยนต์อัจฉริยะโดยใช้ Arduino: 4 ขั้นตอน

วีดีโอ: วิธีสร้างหุ่นยนต์อัจฉริยะโดยใช้ Arduino: 4 ขั้นตอน
วีดีโอ: 3ข้อควรรู้ก่อนเริ่มทำหุ่นยนต์ - สำหรับผู้เริ่มต้น 2024, พฤศจิกายน
Anonim
Image
Image

สวัสดี,

ฉันเป็นผู้ผลิต Arduino และในบทช่วยสอนนี้ฉันจะแสดงให้คุณเห็นว่าวิธีสร้างหุ่นยนต์อัจฉริยะโดยใช้ Arduino

หากคุณชอบบทช่วยสอนของฉันลองพิจารณาสนับสนุนช่อง youtube ของฉันที่ชื่อว่า arduino maker

เสบียง

สิ่งที่คุณต้องการ:

1) Arduino uno

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

3) บ่อมอเตอร์

4) ล้อ

5) ไอศกรีมแท่ง

6) แบตเตอรี่ 9v

ขั้นตอนที่ 1: การเชื่อมต่อ

กาวส่วนประกอบทั้งหมดในสถานที่
กาวส่วนประกอบทั้งหมดในสถานที่

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

ขั้นตอนที่ 2: กาวส่วนประกอบทั้งหมดในสถานที่

ตกลง,

ตอนนี้เชื่อมต่อทุกสิ่งเข้าที่ตามที่แสดงในภาพด้านบน

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

ตอนนี้,

เริ่มเขียนโปรแกรมบอร์ดด้วยรหัสที่ระบุด้านล่าง

// ARDUINO อุปสรรคหลีกเลี่ยงรถ//// ก่อนอัปโหลดโค้ด คุณต้องติดตั้งไลบรารีที่จำเป็น// // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // NewPing Library https://github.com/livetronic/Arduino-NewPing// //Servo Library https://github.com/arduino-libraries/Servo.git // // ในการติดตั้งไลบรารี่ ให้ไปที่ Sketch >> รวม ไลบรารี >> เพิ่มไฟล์. ZIP >> เลือกไฟล์ ZIP ที่ดาวน์โหลดจากลิงก์ด้านบน //

#รวม

#รวม

#รวม

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // ตั้งค่าความเร็วของมอเตอร์กระแสตรง

#define MAX_SPEED_OFFSET 20

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

AF_DCMotor motor1 (1, MOTOR12_1KHZ);

// AF_DCMotor motor2 (2, MOTOR12_1KHZ); // AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DCMotor motor4 (4, MOTOR34_1KHZ); เซอร์โว myservo;

บูลีน goForward=false;

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

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

myservo.attach(10);

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

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

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

ถ้า(distanceR>=ระยะทางL)

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

int lookRight()

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

int lookLeft()

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

int readPing() {

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

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

motor1.run(ปล่อย); //motor2.run(ปล่อย); //motor3.run(ปล่อย); motor4.run(ปล่อย); } โมฆะ moveForward() {

ถ้า (!goesForward)

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

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

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

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

motor1.run(ย้อนกลับ); //motor2.run(ถอยหลัง); //motor3.run (ไปข้างหน้า); motor4.run (ไปข้างหน้า); ล่าช้า (350); motor1.run(ไปข้างหน้า); //motor2.run (ไปข้างหน้า); //motor3.run (ไปข้างหน้า); motor4.run (ไปข้างหน้า); } ถือเป็นโมฆะ turnLeft() { motor1.run (ไปข้างหน้า); //motor2.run (ไปข้างหน้า); //motor3.run(ถอยหลัง); motor4.run(ย้อนกลับ); ล่าช้า (350); motor1.run (ไปข้างหน้า); //motor2.run (ไปข้างหน้า); //motor3.run (ไปข้างหน้า); motor4.run (ไปข้างหน้า); }

แนะนำ: