สารบัญ:
- ขั้นตอนที่ 1: กล่องดำ
- ขั้นตอนที่ 2: Arduino
- ขั้นตอนที่ 3: การแนบ Arduino กับ Blackbox
- ขั้นตอนที่ 4: อัลตราโซนิกเซนเซอร์
- ขั้นตอนที่ 5: การเชื่อมต่อ Breadboard ของเซ็นเซอร์กับ Arduino
- ขั้นตอนที่ 6: มอเตอร์ชิลด์
- ขั้นตอนที่ 7: เชื่อมต่อ Motor Shield กับ Arduino
- ขั้นตอนที่ 8: เชื่อมต่อมอเตอร์ 4 ตัวและแบตเตอรี่เข้ากับ Shield
- ขั้นตอนที่ 9: ตั้งโปรแกรมหุ่นยนต์
วีดีโอ: อุปสรรคในการหลีกเลี่ยงรถหุ่นยนต์: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
วิธีสร้างสิ่งกีดขวางเพื่อหลีกเลี่ยงหุ่นยนต์
ขั้นตอนที่ 1: กล่องดำ
ขั้นตอนแรก ฉันใช้กล่องดำเป็นฐานสำหรับหุ่นยนต์ของฉัน
ขั้นตอนที่ 2: Arduino
Arduino เป็นสมองของทั้งระบบและควบคุมมอเตอร์ของเรา
ขั้นตอนที่ 3: การแนบ Arduino กับ Blackbox
ฉันแนบ Arduino เข้ากับกล่องดำโดยใช้กาวร้อน
ขั้นตอนที่ 4: อัลตราโซนิกเซนเซอร์
ในการสร้างหุ่นยนต์ที่สามารถเคลื่อนที่ได้ด้วยตัวเอง เราต้องการข้อมูลบางอย่าง เซ็นเซอร์ที่เหมาะกับเป้าหมายของเรา เซ็นเซอร์อัลตราโซนิกเป็นเครื่องมือที่วัดระยะทางไปยังวัตถุโดยใช้คลื่นเสียงอัลตราโซนิก เซ็นเซอร์อัลตราโซนิกใช้ทรานสดิวเซอร์เพื่อส่งและรับพัลส์อัลตราโซนิกที่ถ่ายทอดข้อมูลกลับเกี่ยวกับความใกล้ชิดของวัตถุ
ขั้นตอนที่ 5: การเชื่อมต่อ Breadboard ของเซ็นเซอร์กับ Arduino
ฉันใช้สายไฟเพื่อเชื่อมต่อระหว่างเขียงหั่นขนมกับ Arduino
โปรดทราบว่าเซ็นเซอร์ ping ของคุณอาจมีรูปแบบพินที่แตกต่างกัน แต่ควรมีพินแรงดันไฟ พินกราวด์ พินตรีโกณมิติ และพินก้อง
ขั้นตอนที่ 6: มอเตอร์ชิลด์
บอร์ด Arduino ไม่สามารถควบคุมมอเตอร์กระแสตรงได้ด้วยตัวเอง เนื่องจากกระแสที่สร้างขึ้นนั้นต่ำเกินไป ในการแก้ปัญหานี้ เราใช้ตัวป้องกันมอเตอร์ ตัวป้องกันมอเตอร์มี 2 ช่องสัญญาณ ซึ่งช่วยให้สามารถควบคุมมอเตอร์ DC สองตัว หรือ 1 ตัว สเต็ปเปอร์มอเตอร์ … โดยการระบุหมุดเหล่านี้ คุณสามารถเลือกช่องสัญญาณมอเตอร์เพื่อเริ่มต้น ระบุทิศทางของมอเตอร์ (ขั้ว) ตั้งค่าความเร็วมอเตอร์ (PWM) หยุดและสตาร์ทมอเตอร์ และตรวจสอบการดูดกลืนกระแสไฟฟ้าของแต่ละช่องสัญญาณ
ขั้นตอนที่ 7: เชื่อมต่อ Motor Shield กับ Arduino
เพียงติดแผงป้องกันมอเตอร์เข้ากับ Arduino โดยที่สายเซ็นเซอร์ถูกขันเข้า
ขั้นตอนที่ 8: เชื่อมต่อมอเตอร์ 4 ตัวและแบตเตอรี่เข้ากับ Shield
Motor Shield ทุกตัวมี (อย่างน้อย) สองช่องสัญญาณหนึ่งช่องสำหรับมอเตอร์และอีกช่องหนึ่งสำหรับแหล่งพลังงาน เชื่อมต่อพวกเขาด้วยความเคารพซึ่งกันและกัน
ขั้นตอนที่ 9: ตั้งโปรแกรมหุ่นยนต์
เรียกใช้รหัสนี้
#รวม #รวม
ใหม่ปิงโซนาร์ (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
AF_DCMotor motor1 (1, MOTOR12_1KHZ); AF_DCMotor motor2 (2, MOTOR12_1KHZ); AF_DCมอเตอร์มอเตอร์3(3, MOTOR34_1กิโลเฮิร์ตซ์); AF_DCMotor motor4 (4, MOTOR34_1KHZ); เซอร์โว myservo;
#กำหนด TRIG_PIN A2 #กำหนด ECHO_PIN A3 #กำหนด MAX_DISTANCE 150 #กำหนด MAX_SPEED 100 #กำหนด MAX_SPEED_OFFSET 10
บูลีน goForward=false; ระยะทาง int = 80; int speedSet = 0;
การตั้งค่าเป็นโมฆะ () {
myservo.attach(10); myservo.write(115); ล่าช้า (2000); ระยะทาง = readPing(); ล่าช้า (100); ระยะทาง = readPing(); ล่าช้า (100); ระยะทาง = readPing(); ล่าช้า (100); ระยะทาง = readPing(); ล่าช้า (100); }
วงเป็นโมฆะ () { int distanceR = 0; ระยะทาง intL = 0; ล่าช้า(40); ถ้า(ระยะทาง<=15) { moveStop(); ล่าช้า (50); ย้ายย้อนกลับ(); ล่าช้า (150); moveStop(); ล่าช้า (100); DistanceR = lookRight(); ล่าช้า (100); ระยะทางL = lookLeft(); ล่าช้า (100);
if(distanceR>=distanceL) { เลี้ยวขวา (); moveStop(); } อื่น ๆ { เลี้ยวซ้าย (); moveStop(); } }อื่น { เลื่อนไปข้างหน้า (); } ระยะทาง = readPing(); }
int lookRight () { myservo.write (50); ล่าช้า (250); ระยะทาง int = readPing(); ล่าช้า (50); myservo.write(100); ระยะทางกลับ; }
int lookLeft () { myservo.write (120); ล่าช้า (300); ระยะทาง int = readPing(); ล่าช้า (100); myservo.write(115); ระยะทางกลับ; ล่าช้า (100); }
int readPing () { ล่าช้า (70); int cm = sonar.ping_cm(); ถ้า(ซม.==0) { ซม. = 200; } กลับซม.; }
เป็นโมฆะ moveStop () { motor1.run (ปล่อย); motor2.run(ปล่อย); motor3.run(ปล่อย); motor4.run(ปล่อย); } โมฆะ moveForward() {
if(!goesForward) { gosForward=true; 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 () { goForward = false; 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); } ถือเป็นโมฆะ turnLeft () { motor1.run (ย้อนกลับ); motor2.run(ย้อนกลับ); motor3.run (ไปข้างหน้า); motor4.run (ไปข้างหน้า); ล่าช้า (500); motor1.run (ไปข้างหน้า); motor2.run (ไปข้างหน้า); motor3.run (ไปข้างหน้า); motor4.run (ไปข้างหน้า); }
ถือเป็นโมฆะ turnLeft () { motor1.run (ย้อนกลับ); motor2.run(ย้อนกลับ); motor3.run (ไปข้างหน้า); motor4.run (ไปข้างหน้า); ล่าช้า (500); motor1.run (ไปข้างหน้า); motor2.run (ไปข้างหน้า); motor3.run (ไปข้างหน้า); motor4.run (ไปข้างหน้า); }
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง