วิธีการสร้างหุ่นยนต์หลีกเลี่ยงอุปสรรคโดยใช้ Arduino

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



(เอื้อเฟื้อภาพ: Circuit Digest)

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



จะหลีกเลี่ยงอุปสรรคโดยใช้ Ultrasonic Sensor ได้อย่างไร?

ตามที่เราทราบบทคัดย่อของโครงการของเราแล้วให้เราก้าวไปข้างหน้าและรวบรวมข้อมูลบางส่วนเพื่อเริ่มโครงการ



ขั้นตอนที่ 1: รวบรวมส่วนประกอบ

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



  • แชสซีล้อรถยนต์
  • แบตเตอรี่

ขั้นตอนที่ 2: ศึกษาส่วนประกอบ

ตอนนี้เมื่อเรามีรายการส่วนประกอบทั้งหมดแล้วให้เราก้าวไปข้างหน้าหนึ่งก้าวและศึกษาคร่าวๆเกี่ยวกับการทำงานของทุกองค์ประกอบ

Arduino nano เป็นบอร์ดไมโครคอนโทรลเลอร์ที่ใช้งานได้กับ breadboard ซึ่งใช้ในการควบคุมหรือทำงานต่างๆในวงจร เราเผาก รหัส C บน Arduino Nano เพื่อบอกบอร์ดไมโครคอนโทรลเลอร์ว่าจะดำเนินการอย่างไรและอย่างไร Arduino Nano มีฟังก์ชันการทำงานเหมือนกับ Arduino Uno แต่มีขนาดค่อนข้างเล็ก ไมโครคอนโทรลเลอร์บนบอร์ด Arduino Nano คือ ATmega328p.

Arduino นาโน



L298N เป็นวงจรรวมกระแสสูงและแรงดันสูง เป็นสะพานคู่แบบคู่ที่ออกแบบมาเพื่อยอมรับลอจิก TTL มาตรฐาน มีอินพุตเปิดใช้งานสองช่องที่อนุญาตให้อุปกรณ์ทำงานได้อย่างอิสระ มอเตอร์สองตัวสามารถเชื่อมต่อและใช้งานได้ในเวลาเดียวกัน ความเร็วของมอเตอร์แตกต่างกันไปตามพิน PWM Pulse Width Modulation (PWM) เป็นเทคนิคที่สามารถควบคุมการไหลของแรงดันไฟฟ้าในชิ้นส่วนอิเล็กทรอนิกส์ใด ๆ โมดูลนี้มี H-Bridge ซึ่งรับผิดชอบในการควบคุมทิศทางการหมุนของมอเตอร์โดยการกลับทิศทางของกระแสไฟฟ้า Enable pin A และ Enable Pin B ใช้เพื่อเปลี่ยนความเร็วของมอเตอร์ทั้งสองตัว โมดูลนี้สามารถทำงานระหว่าง 5 ถึง 35V และกระแสไฟฟ้าสูงสุดถึง 2A Input Pin1 และ Input Pin2 และสำหรับมอเตอร์ตัวแรกและ Input Pin3 และ Input Pin4 สำหรับมอเตอร์ตัวที่สอง

L298N ขับมอเตอร์

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

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

ขั้นตอนที่ 3: การประกอบส่วนประกอบ

ตอนนี้เมื่อเราทราบการทำงานของส่วนประกอบส่วนใหญ่ที่ใช้แล้วให้เราเริ่มประกอบส่วนประกอบทั้งหมดและสร้างหุ่นยนต์ที่หลีกเลี่ยงสิ่งกีดขวาง

  1. ใช้ล้อรถและติดเขียงหั่นขนมที่ด้านบน ติดตั้งเซ็นเซอร์อัลตราโซนิกที่ด้านหน้าของแชสซีและฝาแบตเตอรี่ด้านหลังแชสซี
  2. แก้ไขบอร์ด Arduino Nano บนเขียงหั่นขนมและติดตั้งไดรเวอร์มอเตอร์ไว้ด้านหลังเขียงหั่นขนมบน Chasses เชื่อมต่อพินเปิดใช้งานของมอเตอร์เข้ากับ Pin6 และ Pin9 ของ Arduino nano หมุด In1, In2, In3 และ In4 ของโมดูลไดรเวอร์มอเตอร์เชื่อมต่อกับ pin2, pin3, pin4 และ pin5 ของ Arduino nano ตามลำดับ
  3. ขา Trig และ echo ของเซ็นเซอร์อัลตราโซนิกเชื่อมต่อกับขา 11 และ in10 ของ Arduino nano ตามลำดับ Vcc และพินกราวด์ของเซ็นเซอร์อัลตราโซนิกเชื่อมต่อกับ 5V และกราวด์ของ Arduino Nano
  4. โมดูลตัวควบคุมมอเตอร์ใช้พลังงานจากแบตเตอรี่ บอร์ด Arduino Nano ได้รับพลังงานจากพอร์ต 5V ของโมดูลไดรเวอร์มอเตอร์และเซ็นเซอร์อัลตราโซนิกจะรับพลังงานจากบอร์ด Arduino nano น้ำหนักและพลังงานของแบตเตอรี่อาจกลายเป็นปัจจัยกำหนดประสิทธิภาพของแบตเตอรี่
  5. ตรวจสอบให้แน่ใจว่าการเชื่อมต่อของคุณเหมือนกับที่แสดงด้านล่างในแผนภาพวงจร

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

ขั้นตอนที่ 4: เริ่มต้นกับ Arduino

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

  1. ดาวน์โหลด Arduino IDE เวอร์ชันล่าสุดจาก Arduino
  2. เชื่อมต่อบอร์ด Arduino Nano เข้ากับแล็ปท็อปของคุณและเปิดแผงควบคุม ในแผงควบคุมคลิกที่ ฮาร์ดแวร์และเสียง . ตอนนี้คลิกที่ อุปกรณ์และเครื่องพิมพ์ ที่นี่ค้นหาพอร์ตที่บอร์ดไมโครคอนโทรลเลอร์ของคุณเชื่อมต่ออยู่ ในกรณีของฉันมันคือ COM14 แต่จะแตกต่างกันในคอมพิวเตอร์เครื่องอื่น

    กำลังค้นหาพอร์ต

  3. คลิกที่เมนูเครื่องมือ และตั้งค่าบอร์ดเป็น Arduino นาโน จากเมนูแบบเลื่อนลง

    คณะกรรมการการตั้งค่า

  4. ในเมนูเครื่องมือเดียวกันตั้งค่าพอร์ตเป็นหมายเลขพอร์ตที่คุณสังเกตเห็นก่อนหน้านี้ในไฟล์ อุปกรณ์และเครื่องพิมพ์ .

    การตั้งค่าพอร์ต

  5. ในเมนูเครื่องมือเดียวกันตั้งค่าโปรเซสเซอร์เป็น ATmega328P (Bootloader เก่า)

    โปรเซสเซอร์

  6. ดาวน์โหลดโค้ดที่แนบด้านล่างและวางลงใน Arduino IDE ของคุณ คลิกที่ ที่อัพโหลด ปุ่มเพื่อเบิร์นโค้ดบนบอร์ดไมโครคอนโทรลเลอร์ของคุณ

    ที่อัพโหลด

ในการดาวน์โหลดรหัส คลิกที่นี่.

ขั้นตอนที่ 5: การทำความเข้าใจรหัส

รหัสนี้แสดงความคิดเห็นได้ดีและอธิบายได้ด้วยตนเอง แต่ยังคงมีการอธิบายไว้ด้านล่าง

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

int enable1pin = 6; // พินสำหรับ First Motor int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // หมุดสำหรับมอเตอร์ที่สอง int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Trigger Pin ของ Ultrasonic Sesnor const int echoPin = 10; // Echo Pin Of Ultrasonic Sesnor ระยะเวลานาน; // ตัวแปรในการคำนวณระยะทางลอยระยะทาง;

2. การตั้งค่าเป็นโมฆะ () เป็นฟังก์ชันที่ใช้ในการตั้งค่าพินที่ใช้เช่น อินพุต และ เอาท์พุท อัตราบอดถูกกำหนดไว้ในฟังก์ชันนี้ Baud Rate คือความเร็วในการสื่อสารที่บอร์ดไมโครคอนโทรลเลอร์สื่อสารกับเซ็นเซอร์ที่รวมอยู่ด้วย

การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); pinMode (trigPin, เอาท์พุท); pinMode (echoPin, INPUT); pinMode (enable1pin, เอาท์พุท); pinMode (enable2pin, เอาท์พุท); pinMode (motor1pin1, เอาท์พุท); pinMode (motor1pin2, เอาท์พุท); pinMode (motor2pin1, เอาท์พุท); pinMode (motor2pin2, เอาท์พุท); }

3. ห่วงเป็นโมฆะ () เป็นฟังก์ชันที่ทำงานซ้ำ ๆ เป็นวงจร ในฟังก์ชั่นนี้เราจะบอกบอร์ดไมโครคอนโทรลเลอร์ว่าต้องดำเนินการอย่างไรและอย่างไร ขั้นแรกให้ตั้งค่าพินทริกเกอร์ให้ส่งสัญญาณซึ่งจะตรวจพบโดยพินสะท้อน จากนั้นเวลาที่สัญญาณอัลตราโซนิกจะเดินทางจากและกลับไปยังเซ็นเซอร์จะถูกคำนวณและบันทึกไว้ในตัวแปร ระยะเวลา. จากนั้นเวลานี้จะใช้ในสูตรคำนวณระยะทางของสิ่งกีดขวางและเซ็นเซอร์อัลตราโซนิก จากนั้นจะใช้เงื่อนไขว่าถ้าระยะทางมากกว่า 5ocm หุ่นยนต์จะเคลื่อนที่ไปข้างหน้าเป็นเส้นตรงและถ้าระยะทางน้อยกว่า 50 ซม. หุ่นยนต์จะเลี้ยวขวาอย่างเฉียบคม

โมฆะ loop () {digitalWrite (trigPin, LOW); // การส่งและตรวจจับสัญญาณอัลตราโซนิก delayMicroseconds (2); digitalWrite (trigPin, สูง); delayMicroseconds (10); digitalWrite (trigPin, LOW); ระยะเวลา = pulseIn (echoPin, HIGH); // การปรับเทียบระยะเวลาที่ถ่ายโดยคลื่นอัลตร้าโซนิคเพื่อสะท้อนระยะทางกลับ = 0.034 * (ระยะเวลา / 2); // การคำนวณระยะทางระหว่างคุณ robbot และอุปสรรค if (ระยะทาง> 50) // เดินหน้าหากระยะทางมากกว่า 50 ซม. {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, สูง); digitalWrite (motor1pin1, สูง); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, สูง); digitalWrite (motor2pin2, LOW); } else if (ระยะทาง<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

การใช้งาน

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

  1. ระบบติดตาม.
  2. วัตถุประสงค์ในการวัดระยะทาง
  3. สามารถใช้ในหุ่นยนต์ดูดฝุ่นอัตโนมัติ
  4. สามารถใช้ใน Sticks สำหรับคนตาบอดได้