- ส่วนประกอบที่ต้องการ:
- โมดูลเซนเซอร์อัลตราโซนิก:
- คำอธิบายวงจร:
- มันทำงานอย่างไร:
- คำอธิบายการเขียนโปรแกรม:
หุ่นยนต์เป็นเครื่องจักรที่ลดความพยายามของมนุษย์ในการทำงานหนักโดยการทำงานอัตโนมัติในอุตสาหกรรมโรงงานโรงพยาบาลเป็นต้นหุ่นยนต์ส่วนใหญ่ทำงานโดยใช้ชุดควบคุมหรือส่วนประกอบบางอย่างเช่นปุ่มกดรีโมทจอยสติ๊กพีซีท่าทางและโดย ดำเนินการบางคำสั่งโดยใช้คอนโทรลเลอร์หรือโปรเซสเซอร์ แต่วันนี้เราอยู่ที่นี่กับหุ่นยนต์อัตโนมัติซึ่งย้ายโดยอัตโนมัติโดยไม่เหตุการณ์ภายนอกใด ๆ หลีกเลี่ยงอุปสรรคทั้งหมดในเส้นทางของมันใช่เรากำลังพูดถึงอุปสรรคหลีกเลี่ยงหุ่นยนต์ในโครงการนี้เราได้ใช้Raspberry Pi และไดรเวอร์มอเตอร์เพื่อขับเคลื่อนหุ่นยนต์และเซ็นเซอร์อัลตราโซนิกสำหรับตรวจจับวัตถุในเส้นทางของหุ่นยนต์
ก่อนหน้านี้เราได้กล่าวถึงหุ่นยนต์ที่มีประโยชน์มากมายคุณสามารถค้นหาได้ในส่วนโครงการ Robotics ของเรา
ส่วนประกอบที่ต้องการ:
- ราสเบอร์รี่ Pi
- โมดูลเซนเซอร์อัลตราโซนิก HC-SR04
- ROBOT Chassis พร้อมสกรู
- มอเตอร์กระแสตรง
- L293D IC
- ล้อ
- คณะกรรมการขนมปัง
- ตัวต้านทาน (1k)
- ตัวเก็บประจุ (100nF)
- การเชื่อมต่อสายไฟ
- แหล่งจ่ายไฟหรือพาวเวอร์แบงค์
โมดูลเซนเซอร์อัลตราโซนิก:
An Obstacle Avoider Robotเป็นหุ่นยนต์อัตโนมัติและไม่จำเป็นต้องควบคุมโดยใช้รีโมทใด ๆ หุ่นยนต์อัตโนมัติประเภทนี้มีเซ็นเซอร์ 'สัมผัสที่หก' บางอย่างเช่นเครื่องตรวจจับสิ่งกีดขวางเครื่องตรวจจับเสียงเครื่องตรวจจับความร้อนหรือเครื่องตรวจจับโลหะ ที่นี่เราได้ทำอุปสรรคการตรวจสอบโดยใช้สัญญาณอัลตราซาวด์เพื่อจุดประสงค์นี้เราได้ใช้โมดูลเซนเซอร์อัลตราโซนิก
อัลตราโซนิกเซนเซอร์มักใช้เพื่อตรวจจับวัตถุและกำหนดระยะห่างของสิ่งกีดขวางจากเซ็นเซอร์ นี่เป็นเครื่องมือที่ยอดเยี่ยมในการวัดระยะทางโดยไม่ต้องสัมผัสทางกายภาพเช่นการวัดระดับน้ำในถังการวัดระยะทางหุ่นยนต์หลีกเลี่ยงอุปสรรคเป็นต้นดังนั้นที่นี่เราจึงตรวจจับวัตถุและวัดระยะทางโดยใช้ Ultrasonic Sensor และ Raspberry Pi
เซ็นเซอร์อัลตราโซนิก HC-SR04ใช้สำหรับวัดระยะทางในช่วง 2 ซม. - 400 ซม. โดยมีความแม่นยำ 3 มม. โมดูลเซ็นเซอร์ประกอบด้วยเครื่องส่งสัญญาณอัลตราโซนิกตัวรับและวงจรควบคุม อัลตราโซนิกเซนเซอร์ประกอบด้วยดวงตากลมสองดวงซึ่งใช้ในการส่งคลื่นอัลตราโซนิกและอีกดวงหนึ่งเพื่อรับ
เราสามารถคำนวณระยะห่างของวัตถุโดยอาศัยเวลาที่คลื่นอัลตราโซนิกถ่ายกลับไปที่เซ็นเซอร์ เนื่องจากทราบเวลาและความเร็วของเสียงเราจึงสามารถคำนวณระยะทางได้ตามสูตรต่อไปนี้
- ระยะทาง = (เวลา x ความเร็วของเสียงในอากาศ (343 ม. / วินาที)) / 2.
ค่านี้หารด้วยสองเนื่องจากคลื่นเคลื่อนที่ไปข้างหน้าและข้างหลังโดยครอบคลุมระยะทางเท่ากันดังนั้นเวลาในการเข้าถึงสิ่งกีดขวางจึงเป็นเพียงครึ่งหนึ่งของเวลาทั้งหมด
ดังนั้นเราจึงคำนวณระยะทาง (เป็นเซนติเมตร) จากสิ่งกีดขวางดังต่อไปนี้:
pulse_start = time.time () ในขณะที่ GPIO.input (ECHO) == 1: # ตรวจสอบว่า ECHO สูง GPIO.output (led, False) pulse_end = time.time () pulse_duration = pulse_end - ระยะทาง pulse_start = pulse_duration * 17150 ระยะทาง = รอบ (ระยะทาง 2) avgDistance = avgDistance + ระยะทาง
โดยที่ pulse_duration คือเวลาระหว่างการส่งและรับสัญญาณอัลตราโซนิก
คำอธิบายวงจร:
วงจรเป็นเรื่องง่ายมากสำหรับการนี้อุปสรรคหลีกเลี่ยงการใช้หุ่นยนต์ราสเบอร์รี่ Pi โมดูลอัลตราโซนิคเซนเซอร์ที่ใช้ในการตรวจหาวัตถุที่มีการเชื่อมต่อ GPIO ขา 17 และ 27 ของราสเบอร์รี่ Pi ขับมอเตอร์ IC L293Dเชื่อมต่อกับราสเบอร์รี่ Pi 3 สำหรับการขับรถมอเตอร์ของหุ่นยนต์ หมุดอินพุตของไดรเวอร์มอเตอร์ 2, 7, 10 และ 15 เชื่อมต่อกับขา Raspberry Pi GPIO หมายเลข 12, 16, 20 และ 21 ตามลำดับ ที่นี่เราใช้มอเตอร์กระแสตรงสองตัวเพื่อขับเคลื่อนหุ่นยนต์โดยที่มอเตอร์ตัวหนึ่งเชื่อมต่อกับขาเอาต์พุต 3 และ 6 ของ IC ไดรเวอร์มอเตอร์และมอเตอร์อีกตัวเชื่อมต่อที่ Pin 11 และ 14 ของ IC ไดรเวอร์มอเตอร์
มันทำงานอย่างไร:
การทำงานของหุ่นยนต์อัตโนมัตินี้ทำได้ง่ายมาก เมื่อหุ่นยนต์เปิดเครื่องและเริ่มทำงาน Raspberry Pi จะวัดระยะทางของวัตถุด้านหน้าโดยใช้โมดูลเซ็นเซอร์อัลตราโซนิกและเก็บไว้ในตัวแปร จากนั้น RPi จะเปรียบเทียบค่านี้กับค่าที่กำหนดไว้ล่วงหน้าและทำการตัดสินใจตามเพื่อเลื่อน Robot ไปทางซ้ายขวาไปข้างหน้าหรือถอยหลัง
ในโครงการนี้เราได้เลือกระยะทาง 15 ซม. สำหรับการตัดสินใจโดย Raspberry Pi เมื่อใดก็ตามที่ Raspberry Pi อยู่ห่างจากวัตถุใด ๆ น้อยกว่าระยะ 15 ซม. Raspberry Pi จะหยุดหุ่นยนต์และขยับกลับจากนั้นหมุนไปทางซ้ายหรือขวา ตอนนี้ก่อนที่จะเคลื่อนไปข้างหน้าอีกครั้ง Raspberry Pi ตรวจสอบอีกครั้งว่ามีสิ่งกีดขวางอยู่ในระยะ 15 ซม. หรือไม่ถ้าใช่จากนั้นให้ทำซ้ำขั้นตอนก่อนหน้าอีกครั้งมิฉะนั้นให้เคลื่อนหุ่นยนต์ไปข้างหน้าจนกว่าจะตรวจพบสิ่งกีดขวางหรือวัตถุอีกครั้ง
คำอธิบายการเขียนโปรแกรม:
เรากำลังใช้ ภาษา Python ที่นี่สำหรับโปรแกรม ก่อนที่จะเข้ารหัสผู้ใช้ต้องกำหนดค่า Raspberry Pi คุณสามารถตรวจสอบบทช่วยสอนก่อนหน้าของเราสำหรับการเริ่มต้นใช้งาน Raspberry Pi และการติดตั้งและกำหนดค่า Raspbian Jessie OS ใน Pi
ส่วนการเขียนโปรแกรมของโครงการนี้มีบทบาทสำคัญมากในการดำเนินการทั้งหมด ก่อนอื่นเรารวมไลบรารีที่จำเป็นเริ่มต้นตัวแปรและกำหนดพินสำหรับเซ็นเซอร์อัลตราโซนิกมอเตอร์และส่วนประกอบ
import RPi.GPIO เป็นเวลานำเข้า GPIO #Import time library GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27……………..
หลังจากนั้นเราได้สร้างฟังก์ชันบางอย่าง def forward (), def back (), def left (), def right () เพื่อเคลื่อนหุ่นยนต์ไปข้างหน้าถอยหลังซ้ายหรือขวาตามลำดับและ def stop () เพื่อหยุดหุ่นยนต์ ตรวจสอบฟังก์ชั่นใน Code ที่ระบุด้านล่าง
จากนั้นในโปรแกรมหลักเราได้เริ่มต้น Ultrasonic Sensor และอ่านเวลาระหว่างการส่งและการรับสัญญาณและคำนวณระยะทาง ที่นี่เราได้ทำซ้ำขั้นตอนนี้เป็นเวลา 5 ครั้งเพื่อความแม่นยำที่ดีขึ้น เราได้อธิบายขั้นตอนการคำนวณระยะทางโดยใช้ Ultrasonic sensor ไปแล้ว
i = 0 avgDistance = 0 สำหรับ i ในช่วง (5): GPIO.output (TRIG, False) time.sleep (0.1) GPIO.output (TRIG, True) time.sleep (0.00001) GPIO.output (TRIG, False) ในขณะที่ GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time () ในขณะที่ GPIO.input (ECHO) == 1: # ตรวจสอบว่า ECHO มี GPIO สูงหรือไม่ (led, เท็จ) pulse_end = time.time () pulse_duration = pulse_end - ระยะทาง pulse_start = pulse_duration * ระยะทาง 17150 = รอบ (ระยะทาง 2) avgDistance = avgDistance + ระยะทาง
สุดท้ายหาก Robot พบสิ่งกีดขวางข้างหน้าหลังจากได้ระยะห่างจากสิ่งกีดขวางแล้วเราได้ตั้งโปรแกรมให้ Robot ใช้เส้นทางอื่น
ถ้า avgDistance <15: count = count + 1 stop () time.sleep (1) back () time.sleep (1.5) if (count% 3 == 1) & (flag == 0): right () flag = 1 else: left () flag = 0 time.sleep (1.5) stop () time.sleep (1) else: forward () flag = 0
รหัสที่สมบูรณ์สำหรับหุ่นยนต์หลีกเลี่ยงอุปสรรค Raspberry Piนี้ได้รับด้านล่างพร้อมกับวิดีโอสาธิต