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

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

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

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

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

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

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

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

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

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

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 สำหรับมอเตอร์ตัวที่สอง

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

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

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

  1. ใช้ล้อรถและติดเขียงหั่นขนมที่ด้านบน ติดตั้งเซ็นเซอร์อัลตราโซนิกที่ด้านหน้าของแชสซีและฝาแบตเตอรี่ด้านหลังแชสซี
  2. แก้ไขบอร์ด Arduino Nano บนเขียงหั่นขนมและติดตั้งไดรเวอร์มอเตอร์ไว้ด้านหลังเขียงหั่นขนมบน Chasses เชื่อมต่อพินเปิดใช้งานของมอเตอร์เข้ากับ Pin6 และ Pin9 ของ Arduino nano พิน In1, In2, In3 และ In4 ของโมดูลไดรเวอร์มอเตอร์เชื่อมต่อกับพิน2, พิน3, พิน4 และพิน5 ของ 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); โหมดพิน (trigPin, OUTPUT); pinMode (echoPin, อินพุต); โหมดพิน (เปิดใช้งาน 1 พิน, เอาต์พุต); pinMode (enable2pin, เอาท์พุท); pinMode (motor1pin1, เอาท์พุท); pinMode (motor1pin2, เอาท์พุท); pinMode (motor2pin1, เอาท์พุท); pinMode (motor2pin2, เอาท์พุท); }

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

โมฆะ loop () {digitalWrite (trigPin, LOW); // การส่งและตรวจจับความล่าช้าของสัญญาณอัลตราโซนิกไมโครวินาที (2); digitalWrite (trigPin, สูง); ล่าช้าไมโครวินาที (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) // เลี้ยวขวาหักมุมถ้าระยะน้อยกว่า 50 ซม. {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, สูง); digitalWrite (motor1pin1, สูง); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, LOW); digitalWrite (motor2pin2, LOW); } ล่าช้า (300); }

แอพพลิเคชั่น

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

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