- วัสดุที่ต้องการ:
- แนวคิดของ Line Follower
- Raspberry Pi Line Follower Robot Circuit Diagram และคำอธิบาย:
- การเขียนโปรแกรม Raspberry PI ของคุณ:
- ผู้ติดตาม Raspberry Pi Line ในการดำเนินการ:
อย่างที่เราทราบกันดีว่า Raspberry Pi เป็นแพลตฟอร์มการพัฒนาที่ยอดเยี่ยมโดยใช้ไมโครโปรเซสเซอร์ ARM ด้วยพลังการคำนวณและตัวเลือกในการพัฒนาที่สูงทำให้สามารถสร้างสิ่งมหัศจรรย์ในมือของผู้ที่ชื่นชอบอุปกรณ์อิเล็กทรอนิกส์หรือนักเรียน ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับราสเบอร์รี่ Pi และวิธีการทำงานให้เราพยายามสร้างสายติดตามหุ่นยนต์โดยใช้ราสเบอร์รี่ Pi
หากคุณสนใจหุ่นยนต์คุณน่าจะคุ้นเคยกับชื่อ“ Line Follower Robot ” เป็นอย่างดี หุ่นยนต์นี้สามารถเดินตามเส้นได้เพียงแค่ใช้เซ็นเซอร์และมอเตอร์คู่กัน การใช้ไมโครโปรเซสเซอร์ที่ทรงพลังเช่น Raspberry Pi อาจฟังดูไม่ได้ผลในการสร้างหุ่นยนต์ธรรมดา ๆ แต่หุ่นยนต์ตัวนี้ช่วยให้คุณมีพื้นที่สำหรับการพัฒนาที่ไม่สิ้นสุดและหุ่นยนต์เช่น Kiva (หุ่นยนต์คลังสินค้าของ Amazon) เป็นตัวอย่างสำหรับสิ่งนี้ คุณยังสามารถตรวจสอบ Line Follower Robots อื่น ๆ ของเราได้:
- Line Follower Robot โดยใช้ไมโครคอนโทรลเลอร์ 8051
- Line Follower Robot โดยใช้ Arduino
วัสดุที่ต้องการ:
- Raspberry Pi 3 (ทุกรุ่นควรใช้งานได้)
- เซ็นเซอร์ IR (2Nos)
- มอเตอร์เกียร์ DC (2Nos)
- L293D ขับมอเตอร์
- Chaises (คุณสามารถสร้างของคุณเองโดยใช้กระดาษแข็ง)
- แบตสำรอง (แหล่งจ่ายไฟที่มี)
แนวคิดของ Line Follower
Line Follower Robot สามารถติดตามเส้นได้โดยใช้เซ็นเซอร์ IR เซ็นเซอร์นี้มีตัวส่งสัญญาณ IR และตัวรับสัญญาณ IR เครื่องส่งสัญญาณ IR (IR LED) จะส่งแสงและตัวรับ (โฟโตไดโอด) จะรอให้แสงที่ส่งกลับมา แสง IR จะย้อนกลับก็ต่อเมื่อสะท้อนจากพื้นผิวเท่านั้น ในขณะที่พื้นผิวทั้งหมดไม่สะท้อนแสง IR มีเพียงพื้นผิวสีขาวเท่านั้นที่สามารถสะท้อนแสงได้อย่างสมบูรณ์และพื้นผิวสีดำจะสังเกตได้อย่างสมบูรณ์ดังแสดงในรูปด้านล่าง เรียนรู้เพิ่มเติมเกี่ยวกับโมดูลเซ็นเซอร์ IR ที่นี่
ตอนนี้เราจะใช้เซ็นเซอร์ IR สองตัวเพื่อตรวจสอบว่าหุ่นยนต์อยู่ในแนวเดียวกันหรือไม่และมอเตอร์สองตัวเพื่อแก้ไขหุ่นยนต์หากเคลื่อนที่ออกจากแทร็ก มอเตอร์เหล่านี้ต้องการกระแสไฟฟ้าสูงและควรเป็นแบบสองทิศทาง ด้วยเหตุนี้เราจึงใช้โมดูลไดรเวอร์มอเตอร์เช่น L293D เราจะต้องมีอุปกรณ์คำนวณเช่นRaspberry Piเพื่อสั่งการมอเตอร์ตามค่าจากเซ็นเซอร์ IR แผนภาพบล็อกแบบง่ายที่เหมือนกันแสดงอยู่ด้านล่าง
เซ็นเซอร์ IR สองตัวนี้จะถูกวางไว้ที่ด้านใดด้านหนึ่งของเส้น หากไม่มีเซ็นเซอร์ตรวจจับเส้นสีดำพวกมันก็จะสั่งให้มอเตอร์เคลื่อนที่ไปข้างหน้าดังที่แสดงด้านล่าง
หากเซ็นเซอร์ด้านซ้ายเป็นเส้นสีดำ PI จะสั่งให้หุ่นยนต์เลี้ยวซ้ายโดยหมุนล้อขวาเพียงอย่างเดียว
หากเซ็นเซอร์ด้านขวาเป็นเส้นสีดำ PI จะสั่งให้หุ่นยนต์เลี้ยวขวาโดยหมุนล้อซ้ายเพียงอย่างเดียว
หากเซ็นเซอร์ทั้งสองอยู่บนเส้นสีดำหุ่นยนต์จะหยุดทำงาน
วิธีนี้หุ่นยนต์จะสามารถติดตามเส้นได้โดยไม่ต้องออกนอกเส้นทาง ตอนนี้ให้เราดูว่าวงจรและรหัสมีลักษณะอย่างไร
Raspberry Pi Line Follower Robot Circuit Diagram และคำอธิบาย:
แผนภาพวงจรที่สมบูรณ์สำหรับหุ่นยนต์ผู้ติดตาม Raspberry Pi Lineแสดงไว้ด้านล่าง
ดังที่คุณเห็นวงจรประกอบด้วยเซ็นเซอร์ IR สองตัวและมอเตอร์คู่หนึ่งที่เชื่อมต่อกับ Raspberry pi วงจรทั้งหมดใช้พลังงานจาก Mobile Power bank (แสดงโดยแบตเตอรี่ AAA ในวงจรด้านบน)
เนื่องจากรายละเอียดพินไม่ได้ระบุไว้ใน Raspberry Pi เราจึงต้องตรวจสอบพินโดยใช้รูปภาพด้านล่าง
ดังที่แสดงในภาพพินมุมซ้ายบนของ PI คือพิน + 5V เราใช้พิน + 5V นี้เพื่อจ่ายพลังงานให้กับเซ็นเซอร์ IRดังแสดงในแผนภาพวงจร (มีสายสีแดง) จากนั้นเราเชื่อมต่อพินกราวด์กับกราวด์ของเซ็นเซอร์ IR และโมดูลไดรเวอร์มอเตอร์โดยใช้สายสีดำ สายสีเหลืองจะใช้ในการเชื่อมต่อขาออกของเซ็นเซอร์ 1 และ 2 เพื่อหมุด GPIO และ 3 ตามลำดับ
ในการขับเคลื่อนมอเตอร์เราต้องมีหมุดสี่ตัว (A, B, A, B) สี่พินนี้เชื่อมต่อจาก GPIO14,4,17 และ 18 ตามลำดับ สายสีส้มและสีขาวเข้าด้วยกันเป็นการเชื่อมต่อสำหรับมอเตอร์หนึ่งตัว เราจึงมีสองคู่สำหรับมอเตอร์สองตัว
มอเตอร์จะเชื่อมต่อกับไดร์เวอร์ L293D มอเตอร์โมดูลดังแสดงในภาพและโมดูลขับถูกขับเคลื่อนโดยธนาคารอำนาจตรวจสอบให้แน่ใจว่าสายดินของธนาคารพลังงานเชื่อมต่อกับกราวด์ Raspberry Pi จากนั้นการเชื่อมต่อของคุณจะทำงานได้
การเขียนโปรแกรม Raspberry PI ของคุณ:
เมื่อคุณประกอบและเชื่อมต่อหุ่นยนต์เสร็จแล้วควรมีลักษณะดังนี้
ตอนนี้ได้เวลาตั้งโปรแกรมบอทของเราและทำให้มันทำงาน คุณสามารถดูโค้ดทั้งหมดสำหรับบอทนี้ได้ที่ด้านล่างของบทช่วยสอนนี้ เรียนรู้เพิ่มเติมเกี่ยวกับโปรแกรมและรันโค้ดใน Raspberry Pi ที่นี่ บรรทัดสำคัญอธิบายไว้ด้านล่าง
เรากำลังจะนำเข้าไฟล์ GPIO จากไลบรารีฟังก์ชันด้านล่างช่วยให้เราสามารถตั้งโปรแกรมพิน GPIO ของ PI ได้ นอกจากนี้เรายังเปลี่ยนชื่อ "GPIO" เป็น "IO" ดังนั้นในโปรแกรมเมื่อใดก็ตามที่เราต้องการอ้างถึงพิน GPIO เราจะใช้คำว่า 'IO'
นำเข้า RPi.GPIO เป็น IO
บางครั้งเมื่อพิน GPIO ที่เราพยายามใช้อยู่อาจจะทำหน้าที่อื่น ๆ ในกรณีนั้นเราจะได้รับคำเตือนขณะดำเนินการโปรแกรม คำสั่งด้านล่างบอกให้ PI เพิกเฉยต่อคำเตือนและดำเนินการกับโปรแกรม
IO.setwarnings (เท็จ)
เราสามารถอ้างอิงพิน GPIO ของ PI ไม่ว่าจะด้วยหมายเลขพินบนบอร์ดหรือตามหมายเลขฟังก์ชัน เช่นเดียวกับ 'PIN 29' บนกระดานคือ 'GPIO5' เราบอกตรงนี้ว่าเราจะแทนหมุดตรงนี้ด้วย '29' หรือ '5'
IO.setmode (IO.BCM)
เรากำลังตั้ง 6 พินเป็นพินอินพุต / เอาท์พุต สองพินแรกคือพินอินพุตเพื่ออ่านเซ็นเซอร์ IR สี่ตัวถัดไปคือพินเอาต์พุตซึ่งสองตัวแรกใช้เพื่อควบคุมมอเตอร์ด้านขวาและอีกสองตัวถัดไปสำหรับมอเตอร์ด้านซ้าย
IO.setup (2, IO.IN) #GPIO 2 -> IR ซ้ายออก IO.setup (3, IO.IN) #GPIO 3 -> IR ขวาออก IO.setup (4, IO.OUT) #GPIO 4 - > Motor 1 terminal A IO.setup (14, IO.OUT) #GPIO 14 -> Motor 1 terminal B IO.setup (17, IO.OUT) #GPIO 17 -> มอเตอร์ขั้วซ้าย A IO.setup (18, IO.OUT) #GPIO 18 -> มอเตอร์ขั้วซ้าย B
เซ็นเซอร์ IR จะแสดงผล“ True” หากอยู่เหนือพื้นผิวสีขาว ตราบใดที่เซ็นเซอร์ทั้งสองบอกว่า True เราจะก้าวไปข้างหน้าได้
if (IO.input (2) == True และ IO.input (3) == True): #both สีขาวเดินหน้า IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
เราต้องเลี้ยวขวาหากเซ็นเซอร์ IR ตัวแรกมาทับเส้นสีดำ ทำได้โดยการอ่านเซ็นเซอร์ IR และหากเงื่อนไขเป็นที่พอใจเราจะหยุดมอเตอร์ด้านขวาและหมุนมอเตอร์ด้านซ้ายเพียงอย่างเดียวดังแสดงในรหัสด้านล่าง
elif (IO.input (2) == False และ IO.input (3) == True): #turn right IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, จริง) # 2A + IO เอาต์พุต (18, เท็จ) # 2B-
เราต้องเลี้ยวซ้ายหากเซ็นเซอร์ IR ตัวที่สองมาทับเส้นสีดำ ทำได้โดยการอ่านเซ็นเซอร์ IR และหากเงื่อนไขเป็นที่พอใจเราจะหยุดมอเตอร์ด้านซ้ายและหมุนมอเตอร์ด้านขวาเพียงอย่างเดียวดังแสดงในรหัสด้านล่าง
elif (IO.input (2) == True และ IO.input (3) == False): #turn left IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
หากทั้งสองเซ็นเซอร์มามากกว่าเส้นสีดำก็หมายความว่าหุ่นยนต์ที่มีการหยุดซึ่งสามารถทำได้โดยทำให้ขั้วทั้งสองของมอเตอร์เป็นจริงดังที่แสดงในรหัสด้านล่าง
อื่น: #stay ยังคง IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
ผู้ติดตาม Raspberry Pi Line ในการดำเนินการ:
อัปโหลดรหัส python สำหรับผู้ติดตามบรรทัดไปยัง Raspberry Pi ของคุณแล้วเรียกใช้ เราต้องการแหล่งจ่ายไฟแบบพกพาพาวเวอร์แบงค์ในกรณีนี้จึงมีประโยชน์ดังนั้นฉันจึงใช้แบบเดียวกัน อันที่ฉันใช้มาพร้อมกับพอร์ต USB สองพอร์ตดังนั้นฉันจึงใช้เพื่อจ่ายไฟให้กับ PI และอื่น ๆ ให้กับ Power Motor Driver ดังแสดงในภาพด้านล่าง
ตอนนี้สิ่งที่คุณต้องทำคือตั้งค่าแทร็กสีดำของคุณเองแล้วปล่อยบอทของคุณทับมัน ฉันใช้เทปฉนวนสีดำเพื่อสร้างแทร็กคุณสามารถใช้วัสดุสีดำอะไรก็ได้ แต่ต้องแน่ใจว่าสีพื้นของคุณไม่เข้ม
การทำงานที่สมบูรณ์ของบอทที่สามารถพบได้ในวิดีโอได้รับด้านล่างหวังว่าคุณจะเข้าใจโครงการและสนุกกับการสร้าง หากคุณมีคำถามใด ๆ ให้โพสต์ไว้ในส่วนความคิดเห็นด้านล่าง