สารบัญ:

หุ่นยนต์หลีกเลี่ยงอุตตราโซนิกโดยใช้ Arduino: 7 ขั้นตอน
หุ่นยนต์หลีกเลี่ยงอุตตราโซนิกโดยใช้ Arduino: 7 ขั้นตอน

วีดีโอ: หุ่นยนต์หลีกเลี่ยงอุตตราโซนิกโดยใช้ Arduino: 7 ขั้นตอน

วีดีโอ: หุ่นยนต์หลีกเลี่ยงอุตตราโซนิกโดยใช้ Arduino: 7 ขั้นตอน
วีดีโอ: หุ่นยนต์หลบสิ่งกีดขวาง 2WD Robot Car #ZeroBike 2024, พฤศจิกายน
Anonim
Image
Image
หุ่นยนต์หลีกเลี่ยงอุตตราโซนิกโดยใช้ Arduino
หุ่นยนต์หลีกเลี่ยงอุตตราโซนิกโดยใช้ Arduino

ในบทช่วยสอนนี้ ฉันจะแสดงวิธีสร้างหุ่นยนต์หลบสิ่งกีดขวางของคุณเอง! เราจะใช้บอร์ด Arduino UNO และเซ็นเซอร์อัลตราโซนิก หากหุ่นยนต์ตรวจพบวัตถุที่อยู่ด้านหน้า โดยใช้เซอร์โวมอเตอร์ขนาดเล็ก หุ่นยนต์จะสแกนพื้นที่ด้านซ้ายและขวาเพื่อหาวิธีที่ดีที่สุดในการเลี้ยว นอกจากนี้ยังมีไฟ LED แจ้งเตือน ออดเพื่อเล่นเสียงเมื่อตรวจพบวัตถุ และปุ่มสำหรับเปลี่ยนการทำงานของหุ่นยนต์ (หยุด/เคลื่อนที่ไปข้างหน้า)

มันง่ายมากที่จะทำ!

ขั้นตอนที่ 1: สิ่งที่ต้องทำ

สิ่งที่ต้องทำ !
สิ่งที่ต้องทำ !
สิ่งที่ต้องทำ !
สิ่งที่ต้องทำ !
สิ่งที่ต้องทำ !
สิ่งที่ต้องทำ !
สิ่งที่ต้องทำ !
สิ่งที่ต้องทำ !

สำหรับโครงการนี้ คุณจะต้อง:

  1. Arduino UNO (ซื้อจาก gearbest.com)
  2. เขียงหั่นขนมขนาดเล็ก (ซื้อจาก gearbest.com)
  3. โมดูลไดรเวอร์มอเตอร์ L298 (ซื้อจาก gearbest.com)
  4. มอเตอร์ dc 2x พร้อมล้อ เซ็นเซอร์อัลตราโซนิก HC-SR04 (ซื้อจาก gearbest.com)
  5. ไมโครเซอร์โวมอเตอร์ (ซื้อจาก gearbest.com)
  6. ปุ่ม LED สีแดง 220 โอห์ม ตัวต้านทาน 9V ที่ใส่แบตเตอรี่ (มีหรือไม่มีแจ็คไฟ)
  7. 8 สเปเซอร์ (ชาย-หญิง)
  8. น็อต 8 ตัวและสกรู 8 ตัว คุณจะต้องใช้ขนาดใหญ่ (โลหะ) หนึ่งตัว

คลิปหนีบกระดาษและลูกปัดทำล้อรองรับหลัง

สำหรับฐานหุ่นยนต์ ฉันใช้ Acryllic Chasis จาก Aliexpress คุณยังสามารถใช้ชิ้นไม้หรือโลหะ (หรือแผ่นไฟฟ้าสองแผ่น)

ค่าใช้จ่ายของโครงการทั้งหมดอยู่ที่ประมาณ 20 เหรียญ

เครื่องมือ: เครื่องเจาะ กาวซุปเปอร์กาวลูกเรือ ปืนร้อน กาว (อุปกรณ์เสริม) กำลังไฟ:

เราจะใช้แบตเตอรี่ 9V เพื่อจ่ายไฟให้กับหุ่นยนต์ของเราเพราะมันมีขนาดเล็กและราคาถูก แต่ก็ไม่ได้ทรงพลังมากนักและจะว่างเปล่าหลังจากผ่านไปประมาณหนึ่งชั่วโมง พิจารณาว่าคุณต้องการใช้ก้อนแบตเตอรี่แบบชาร์จไฟได้ (ขั้นต่ำ 6V, สูงสุด 7V) ที่จะมีประสิทธิภาพมากขึ้น แต่จะมีราคาแพงกว่าและใหญ่กว่าแบตเตอรี่ 9V หรือไม่ สมัครสมาชิกช่อง YouTube ของเรา คลิกที่นี่

ขั้นตอนที่ 2: ทำความเข้าใจแนวคิด

การทำความเข้าใจแนวคิด
การทำความเข้าใจแนวคิด
การทำความเข้าใจแนวคิด
การทำความเข้าใจแนวคิด
การทำความเข้าใจแนวคิด
การทำความเข้าใจแนวคิด

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

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

HC-SR04 เป็นวงจรที่สามารถวัดระยะห่างจากวัตถุได้ไกลถึง 4 เมตร โดยใช้คลื่นอัลตราโซนิก มันส่ง ping (เช่นเรือดำน้ำ) และวัดเวลา (เป็นไมโครวินาที) ระหว่างการส่งและรับสิ่งใด ๆ กลับ เวลานี้หารด้วย 2 เมื่อคลื่นเคลื่อนที่ไปมา แล้วหารด้วย 29 เพื่อให้ได้ระยะทางเป็นเซนติเมตร (หรือ 74 สำหรับนิ้ว) เพราะเสียงเดินทาง 29.4µs ต่อเซนติเมตร (340 m/s) เซ็นเซอร์มีความแม่นยำมาก โดยมีความคลาดเคลื่อนประมาณ 3 มม. และรวมเข้ากับ Arduino ได้ง่าย

การเชื่อมต่อ Ultrasonic Sensor กับไมโครคอนโทรลเลอร์ AVR

หุ่นยนต์ที่เป็นอิสระควรมีการหลีกเลี่ยงสิ่งกีดขวางและติดเซ็นเซอร์วัดระยะทาง คู่ตัวรับส่งสัญญาณ IR หรือเซ็นเซอร์ระดับสีเทาสามารถทำงานได้อย่างง่ายดายเพื่อตรวจจับสิ่งกีดขวางในช่วง 1 ซม. - 10 ซม. เครื่องวัดระยะอินฟราเรด (เช่น ระยะที่แหลม) สามารถวัดระยะทางไปยังสิ่งกีดขวางที่ใกล้ที่สุดได้ด้วยระยะสูงสุด 100 ซม. อย่างไรก็ตาม เซ็นเซอร์อินฟราเรดได้รับผลกระทบจากแสงแดดและแหล่งกำเนิดแสงอื่นๆ IR rangefinders มีระยะน้อยกว่าและมีราคาแพงสำหรับสิ่งที่ทำ เซ็นเซอร์อัลตราโซนิก (หรือที่เรียกว่าเซ็นเซอร์ความใกล้ชิดแบบอัลตราโซนิกหรือโซนาร์สำหรับคนเก่ง) ทำงานทั้งสองนี้ด้วยต้นทุนที่เหมาะสมและความแม่นยำเป็นพิเศษ ช่วงอยู่ระหว่าง 3 ซม. ถึง 350 ซม. โดยมีความแม่นยำประมาณ 3 มม. ด้วยการผูกเซ็นเซอร์อัลตราโซนิกตัวใดตัวหนึ่งเข้ากับหุ่นยนต์ของเรา มันสามารถทำหน้าที่เป็นทั้งตัวหลีกเลี่ยงสิ่งกีดขวางและเซ็นเซอร์วัดระยะทาง

เสียง “อัลตราโซนิก” หมายถึงสิ่งที่อยู่เหนือความถี่ของเสียงที่ได้ยิน และในนามรวมทุกอย่างที่เกิน 20, 000 Hz หรือ 20kHz! เซ็นเซอร์อัลตราโซนิกราคาไม่แพงที่ใช้สำหรับหุ่นยนต์มักทำงานในช่วง 40 kHz ถึง 250 kHz ในขณะที่เซ็นเซอร์ที่ใช้ในอุปกรณ์ทางการแพทย์สูงถึง 10Mhz

ขั้นตอนที่ 3: เครื่องมือที่จำเป็น

เครื่องมือที่จำเป็น
เครื่องมือที่จำเป็น
เครื่องมือที่จำเป็น
เครื่องมือที่จำเป็น
เครื่องมือที่จำเป็น
เครื่องมือที่จำเป็น
เครื่องมือที่จำเป็น
เครื่องมือที่จำเป็น
  1. มัลติมิเตอร์
  2. เขียงหั่นขนม
  3. คีมจมูกเข็ม
  4. เครื่องปอกสายไฟ
  5. เครื่องตัดลวด
  6. ปืนกาว

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

วัสดุก่อสร้าง

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

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

เครื่องมือช่าง

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

เขียงหั่นขนม Solderless

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

ชุดไขควงเล็ก

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

ชุดไขควงธรรมดา

การประชุมเชิงปฏิบัติการทั้งหมดต้องมีเครื่องมือหลายตัวหรือชุดเครื่องมือซึ่งรวมถึงหัวแบน / หัวแฉกและหัวไขควงอื่นๆ

คีมจมูกเข็ม

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

คีมปอกสายไฟ

คุณกำลังวางแผนที่จะตัดสายไฟใดๆ ก็ตาม เครื่องปอกสายไฟจะช่วยคุณประหยัดเวลาและความพยายามอย่างมาก เมื่อใช้อย่างถูกต้อง เครื่องปอกสายไฟจะถอดฉนวนสายเคเบิลออกเท่านั้นและจะไม่ทำให้เกิดการหักงอหรือทำให้ตัวนำเสียหาย อีกทางเลือกหนึ่งสำหรับเครื่องปอกสายไฟคือกรรไกรคู่หนึ่ง แม้ว่าผลลัพธ์ที่ได้อาจดูยุ่งเหยิงก็ตาม กรรไกร ไม้บรรทัด ปากกา ดินสอมาร์กเกอร์ มีด Exacto (หรือเครื่องมือตัดแบบใช้มือถืออื่นๆ) สิ่งเหล่านี้จำเป็นสำหรับสำนักงานทุกแห่ง

ขั้นตอนที่ 4: Cocepts สำหรับการเข้ารหัส AVR

แนวคิดสำหรับการเข้ารหัส AVR
แนวคิดสำหรับการเข้ารหัส AVR

การคำนวณความเร็วของเสียงที่สัมพันธ์กับเซ็นเซอร์อัลตราโซนิก

คณิตน้อย แต่ไม่ต้องกลัว มันง่ายกว่าที่คุณคิด

ความเร็วของเสียงในอากาศแห้งที่อุณหภูมิห้อง (~20°C) = 343 เมตร/วินาที

สำหรับคลื่นเสียงที่กระทบและเดินทางไปกลับวัตถุใกล้เคียงคือ = 343/2 = 171.5 ม./เนื่องจากระยะสูงสุดของเซ็นเซอร์อัลตราโซนิกราคาถูกไม่เกิน 5 เมตร (ไป-กลับ) จึงจะสมเหตุสมผลกว่า เปลี่ยนหน่วยเป็นเซนติเมตรและไมโครวินาที

1 เมตร = 100 เซนติเมตร1 วินาที = 10^6 ไมโครวินาที = (วินาที / 171.5) x (ม. / 100 ซม.) x ((1x10^6)/s) = (1/171.5) x (1/100) x (1000000/ 1) = 58.30903790087464 us/cm = 58.31 us/cm (ปัดเศษเป็นตัวเลขสองหลักเพื่อให้การคำนวณง่ายขึ้น)ดังนั้น เวลาที่ชีพจรเคลื่อนที่ไปยังวัตถุและกระเด้งกลับ 1 เซนติเมตร คือ 58.31 ไมโครวินาที

พื้นหลังเล็กๆ ของวงจรนาฬิกา AVR

ต้องใช้บทที่แตกต่างไปจากเดิมอย่างสิ้นเชิงในการทำความเข้าใจวงจรนาฬิกา AVR แต่เราจะเข้าใจคร่าวๆ ว่ามันทำงานอย่างไรเพื่อให้การคำนวณของเราง่ายขึ้น

ตัวอย่างเช่น เราจะใช้บอร์ด AVR Draco ซึ่งมีไมโครคอนโทรลเลอร์ AVR – Atmega328P 8 บิต เพื่อให้ง่ายขึ้น เราจะไม่ปรับแต่งการตั้งค่าของไมโครคอนโทรลเลอร์ ไม่มีการสัมผัสบิตฟิวส์ ไม่มีคริสตัลภายนอกติดอยู่ ไม่ปวดหัว. ที่การตั้งค่าจากโรงงาน มันทำงานบนออสซิลเลเตอร์ 8MHz ภายในพร้อมพรีสเกลเลอร์ /8; หากคุณไม่เข้าใจทั้งหมดนี้ ก็หมายความว่าไมโครคอนโทรลเลอร์กำลังทำงานที่ RC Oscillator ภายใน 1MHz และแต่ละรอบนาฬิกาจะใช้เวลา 1 ไมโครวินาที

1 2 1MHz = 1000000 รอบต่อวินาที ดังนั้น 1s/100000 = 1/1000000 = 1us

นาฬิกา AVR และการแปลงระยะทาง

เราเกือบจะอยู่ที่นั่นแล้ว! เมื่อเรารู้วิธีแปลงรอบนาฬิกา AVR เป็นระยะทางที่คลื่นเสียงเดินทางแล้ว การใช้ตรรกะในโปรแกรมก็เป็นเรื่องง่าย

เรารู้ว่าความเร็วของเสียงอัลตราโซนิกในสภาพแวดล้อมที่เหมาะสมคือ: 58.31 us/cm

เรารู้ว่าความละเอียดของไมโครคอนโทรลเลอร์ AVR คือ 1us/รอบนาฬิกา (CLK)

ดังนั้น ระยะทางที่เดินทางโดยเสียงต่อรอบนาฬิกา (CLK) คือ:

1 2 3 = (58.31 us/cm) x (1us/ clk) = 58.31 clock cycles / cm หรือ = 1/58.31 cm/ clk

หากทราบจำนวนรอบนาฬิกาที่เสียงเดินทางและสะท้อนกลับ เราสามารถคำนวณระยะทางได้อย่างง่ายดาย ตัวอย่างเช่น หากเซ็นเซอร์ใช้เวลา 1,000 รอบนาฬิกาในการเดินทางและสะท้อนกลับ ระยะทางจากเซ็นเซอร์ไปยังวัตถุที่ใกล้ที่สุดคือ = 1000/58.31 = 17.15 ซม. (โดยประมาณ)

ตอนนี้ทุกอย่างสมเหตุสมผลหรือไม่? เลขที่? อ่านอีกที

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

ขั้นตอนที่ 5: การเชื่อมต่อฮาร์ดแวร์:

การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์

Arduino Board ทำให้ง่ายต่อการเชื่อมต่อเซ็นเซอร์ภายนอกและดูผลลัพธ์บน LCD สำหรับการตรวจจับช่วงอัลตราโซนิก เราใช้โมดูล HC-SR04 ราคาไม่แพง โมดูลมี 4 พินที่สามารถเชื่อมต่อกับบอร์ดไมโครคอนโทรลเลอร์: VCC, TRIG, ECHO และ GND

เชื่อมต่อพิน VCC กับ 5V และพิน GND กับกราวด์บนบอร์ด Arduino

หมุด TRIG และพิน ECHO สามารถเชื่อมต่อกับพินที่มีอยู่บนบอร์ดได้ การส่งสัญญาณ 'สูง' ขั้นต่ำ 10us เพื่อทริกเกอร์พินจะส่งคลื่นเสียง 40 kHz แปดคลื่นและดึงพินสะท้อนสูง หากเสียงกระเด็นออกจากวัตถุใกล้เคียงและกลับมา เสียงนั้นจะถูกจับโดยรับทรานสดิวเซอร์และหมุดสะท้อนจะถูกดึง "ต่ำ"

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

เมื่อเชื่อมต่อแล้ว สามารถกำหนดค่าทริกเกอร์และ Echo Pins ผ่านซอฟต์แวร์ได้ เพื่อให้ตัวอย่างนี้เรียบง่าย เราจะไม่ใช้พินอินเทอร์รัปต์ (หรือ Input Capture Pin) ในตัวอย่างนี้ การไม่ใช้หมุดขัดจังหวะที่กำหนดทำให้เรามีอิสระในการเชื่อมต่อโมดูลกับพินที่มีอยู่บนบอร์ด

ขั้นตอนที่ 6: รหัส

รหัสโค้ดด้านล่างมีเพียงส่วนขยาย "อัลตราโซนิก" สำหรับการควบคุมมอเตอร์ DC โดยใช้ H-Bridge จากบทความก่อนหน้านี้ เมื่อหุ่นยนต์ตรวจพบสิ่งกีดขวางข้างหน้า เขาจะหันหลังกลับ (สุ่มระดับ) และเดินหน้าต่อไป ฟังก์ชันนี้สามารถขยายออกได้อย่างง่ายดายเพื่อให้เลี้ยวและตรวจจับสิ่งกีดขวางได้พร้อมๆ กัน ดังนั้นหุ่นยนต์จะไม่หมุนแบบสุ่ม แต่จะเริ่มเคลื่อนที่ไปข้างหน้าเมื่อตรวจไม่พบวัตถุเท่านั้น

สำหรับคำอธิบายรหัสอ้างอิงวิดีโอ Youtube ที่ระบุไว้ในช่อง

ขั้นตอนที่ 7: วิดีโอ

ดูวิดีโอสำหรับกระบวนการทั้งหมด

แนะนำ: