วิธีการสร้างหุ่นยนต์หลีกเลี่ยงอุปสรรคโดยใช้ 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: การประกอบส่วนประกอบ
ตอนนี้เมื่อเราทราบการทำงานของส่วนประกอบส่วนใหญ่ที่ใช้แล้วให้เราเริ่มประกอบส่วนประกอบทั้งหมดและสร้างหุ่นยนต์ที่หลีกเลี่ยงสิ่งกีดขวาง
- ใช้ล้อรถและติดเขียงหั่นขนมที่ด้านบน ติดตั้งเซ็นเซอร์อัลตราโซนิกที่ด้านหน้าของแชสซีและฝาแบตเตอรี่ด้านหลังแชสซี
- แก้ไขบอร์ด Arduino Nano บนเขียงหั่นขนมและติดตั้งไดรเวอร์มอเตอร์ไว้ด้านหลังเขียงหั่นขนมบน Chasses เชื่อมต่อพินเปิดใช้งานของมอเตอร์เข้ากับ Pin6 และ Pin9 ของ Arduino nano พิน In1, In2, In3 และ In4 ของโมดูลไดรเวอร์มอเตอร์เชื่อมต่อกับพิน2, พิน3, พิน4 และพิน5 ของ Arduino nano ตามลำดับ
- ขา Trig และ echo ของเซ็นเซอร์อัลตราโซนิกเชื่อมต่อกับขา 11 และ in10 ของ Arduino nano ตามลำดับ Vcc และพินกราวด์ของเซ็นเซอร์อัลตราโซนิกเชื่อมต่อกับ 5V และกราวด์ของ Arduino Nano
- โมดูลตัวควบคุมมอเตอร์ใช้พลังงานจากแบตเตอรี่ บอร์ด Arduino Nano ได้รับพลังงานจากพอร์ต 5V ของโมดูลไดรเวอร์มอเตอร์และเซ็นเซอร์อัลตราโซนิกจะได้รับพลังงานจากบอร์ด Arduino nano น้ำหนักและพลังงานของแบตเตอรี่อาจกลายเป็นปัจจัยกำหนดประสิทธิภาพของแบตเตอรี่
- ตรวจสอบให้แน่ใจว่าการเชื่อมต่อของคุณเหมือนกับที่แสดงด้านล่างในแผนภาพวงจร
ขั้นตอนที่ 4: เริ่มต้นใช้งาน Arduino
หากคุณยังไม่คุ้นเคยกับ Arduino IDE ไม่ต้องกังวลเพราะขั้นตอนทีละขั้นตอนในการตั้งค่าและใช้ Arduino IDE กับบอร์ดไมโครคอนโทรลเลอร์มีคำอธิบายด้านล่าง
- ดาวน์โหลด Arduino IDE เวอร์ชันล่าสุดจาก Arduino
- เชื่อมต่อบอร์ด Arduino Nano เข้ากับแล็ปท็อปของคุณและเปิดแผงควบคุม ในแผงควบคุม ให้คลิกที่ฮาร์ดแวร์และเสียง. ตอนนี้คลิกที่อุปกรณ์และเครื่องพิมพ์ค้นหาพอร์ตที่บอร์ดไมโครคอนโทรลเลอร์ของคุณเชื่อมต่ออยู่ที่นี่ ในกรณีของฉันมันคือ COM14แต่จะแตกต่างกันในคอมพิวเตอร์เครื่องอื่น
- คลิกที่เมนูเครื่องมือ และตั้งกระดานเป็น Arduino นาโน จากเมนูแบบเลื่อนลง
- ในเมนูเครื่องมือเดียวกันตั้งค่าพอร์ตเป็นหมายเลขพอร์ตที่คุณสังเกตเห็นก่อนหน้านี้ในไฟล์ อุปกรณ์และเครื่องพิมพ์.
- ในเมนูเครื่องมือเดียวกันตั้งค่าโปรเซสเซอร์เป็น ATmega328P (Bootloader เก่า)
- ดาวน์โหลดโค้ดที่แนบด้านล่างและวางลงใน 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); }
แอพพลิเคชั่น
ดังนั้นนี่คือขั้นตอนในการสร้างสิ่งกีดขวางเพื่อหลีกเลี่ยงหุ่นยนต์เทคโนโลยีการหลีกเลี่ยงอุปสรรคนี้สามารถฟ้องร้องในแอปพลิเคชันอื่นได้เช่นกัน บางส่วนของแอปพลิเคชันเหล่านี้มีดังต่อไปนี้
- ระบบติดตาม.
- วัตถุประสงค์ในการวัดระยะทาง
- สามารถใช้ในหุ่นยนต์ดูดฝุ่นอัตโนมัติ
- สามารถใช้ใน Sticks สำหรับคนตาบอดได้