สารบัญ:
- ขั้นตอนที่ 1: การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์
- ขั้นตอนที่ 2: การใช้แอพควบคุม Android
- ขั้นตอนที่ 3: Roomba Open Interface ในตัวอย่าง
- ขั้นตอนที่ 4: RPi Remote Webcam
- ขั้นตอนที่ 5: แผนสำหรับการพัฒนาเพิ่มเติม
- ขั้นตอนที่ 6: การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์ - เวอร์ชัน 2 พร้อมปลอก
วีดีโอ: สารวัตร Roomba: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
พวกเราส่วนใหญ่ใช้หุ่นยนต์ iRobot Roomba สำหรับการดูดฝุ่นเท่านั้น แต่มีเพียงไม่กี่คนที่รู้ว่ามันเป็นฐานที่ดีสำหรับโครงการหุ่นยนต์ใหม่ ผู้ผลิตทั้งหมดควรลองใช้ Roomba Open Interface (OI) เพื่อดูว่าการควบคุมหุ่นยนต์นี้ง่ายเพียงใด ในคำแนะนำนี้ คุณจะได้เรียนรู้วิธีเพิ่มคุณสมบัติที่มีประโยชน์บางอย่างให้กับ Roomba ของคุณ ในตอนเริ่มต้น ฉันจะอธิบายวิธีการควบคุมระยะไกลของ Roomba ผ่านบลูทูธและแอป Android ต่อมาฉันจะแสดงวิธีเรียกใช้การสตรีมวิดีโอตาม RPi และสุดท้ายฉันจะร่างแผนสำหรับการพัฒนาโครงการนี้ต่อไป
ชิ้นส่วนที่จำเป็นในโครงการนี้:
- โมดูลบลูทูธ BTM-222 หรือการทำงานอื่นๆ ที่อัตรารับส่งข้อมูล 115200 x1
- ตัวควบคุมแรงดันไฟฟ้าแบบสเต็ปดาวน์ 5V D24V6F5 x1
- เขียงหั่นขนมขนาดเล็ก x1
- สายไฟไม่กี่เส้น
รุ่นพร้อมปลอก:
- ขั้วต่อ DIN ขนาดเล็ก 8 พิน x1
- สวิตช์ไฟ x1
- นำ 3 มม. x1
- ตัวต้านทาน 10k x1
- ปลอกเล็ก 50x40x20 มม. x1
รุ่นขยาย:
- ราสเบอร์รี่ Pi 3 x1
- อ่างความร้อนทองแดง RPi x1
- อแด็ปเตอร์ USB WiFi x1
- การ์ด micro SD 8GB หรือสูงกว่า x1
- กล้อง RPi - เลนส์ Fisheye x1
- เคสสำหรับ RPi x1
- ก้อนแบตเตอรี่ความจุสูง 5V (อย่างน้อย 10 Ah) x1
- ชิ้นส่วนพลาสติกวงเล็บ x1
- น็อตและสลักเกลียว M2 x4
ขั้นตอนที่ 1: การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์
คราวนี้ ขั้นตอนนี้ง่ายมากเพราะเราจำเป็นต้องเชื่อมต่อสองโมดูลเท่านั้นจึงจะสามารถควบคุม Roomba ของเราได้ อย่างแรกคือโมดูล Bluetooth ที่สามารถทำงานได้ที่ 115200 bps ประการที่สองคือ 5V Step-Down Voltage Regulator D24V6F5 แบตเตอรี่ Roomba ที่ชาร์จแล้วมีแรงดันไฟฟ้าประมาณ 14.4V และโมดูลบลูทูธของเราต้องการ 5V ดังนั้นเราจึงจำเป็นต้องลดแรงดันแบตเตอรี่ให้อยู่ที่ระดับ 5V โดยใช้ตัวควบคุมแรงดันไฟฟ้า ตัวควบคุม D24V6F5 มีประสิทธิภาพระหว่าง 80 ถึง 90% ซึ่งคุ้มค่ามากเมื่อเทียบกับตัวควบคุมเชิงเส้นตรงแบบคลาสสิกซึ่งโดยทั่วไปจะมีประสิทธิภาพต่ำกว่า 40% วิธีที่ง่ายที่สุดในการเชื่อมต่อโมดูลทั้งสองนี้คือการใส่ลงในแผงวงจรทดลองขนาดเล็กและการเดินสายตามแผนภาพการเดินสายด้านบน นอกจากนี้ การเชื่อมต่อทั้งหมดจะแสดงในรูปภาพที่มีหมายเลข ระวังเมื่อเชื่อมต่อกับขั้วแบตเตอรี่ ไฟฟ้าลัดวงจรอาจทำให้แบตเตอรี่เสียหายได้!
ขั้นตอนที่ 2: การใช้แอพควบคุม Android
ฉันได้พัฒนาแอพ Android ที่ให้คุณควบคุมหุ่นยนต์ดูดฝุ่น Roomba 500 series ผ่านบลูทูธ คุณสามารถดาวน์โหลดแอปของฉันได้ฟรีจาก Google Play - Roomb Control ใช้งานได้กับทั้งสมาร์ทโฟนและแท็บเล็ต
วิธีใช้แอพ Roomb Control:
- แตะมุมขวาบนของหน้าจอ (จุดแนวตั้ง 3 จุด)
- เลือกแท็บ "เชื่อมต่อ"
- แตะที่แท็บ "BTM222" และหลังจากนั้นสักครู่คุณจะเห็นข้อความ "เชื่อมต่อกับ BTM222"
- หลังจากเชื่อมต่อแล้ว คุณสามารถควบคุม Roomba. ของคุณได้
- หากคุณไม่เห็นอุปกรณ์บลูทูธของคุณ ให้แตะปุ่ม "สแกนหาอุปกรณ์"
- ในการใช้งานโมดูลบลูทูธครั้งแรก โปรดอย่าลืมจับคู่กับสมาร์ทโฟนของคุณโดยป้อนรหัสเริ่มต้นที่ให้ไว้ในข้อกำหนดโมดูลบลูทูธ
ขั้นตอนที่ 3: Roomba Open Interface ในตัวอย่าง
ในขั้นตอนนี้ คุณจะพบตัวอย่างคำสั่งทั่วไปที่ใช้ในการควบคุม Roomba series 500 คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับ Roomba Open Interface ได้ในเอกสารนี้
Roomba 500+ สามารถทำงานในหนึ่งในสี่โหมด:
- โหมดเต็มช่วยให้คุณควบคุม Roomba ได้อย่างสมบูรณ์ (ไม่มีข้อจำกัดด้านความปลอดภัยเช่นเดียวกับโหมดปลอดภัยและแบบพาสซีฟ)
-
เซฟโหมดแนะนำข้อยกเว้นเกี่ยวกับความปลอดภัยบางอย่างเมื่อคุณไม่สามารถควบคุมแอคทูเอเตอร์ทั้งหมดได้:
- การตรวจจับล้อตก
- การตรวจจับหน้าผาขณะเคลื่อนที่ไปข้างหน้าหรือถอยหลัง
- เสียบสายชาร์จและเปิดเครื่องอยู่
- โหมดพาสซีฟช่วยให้คุณขอและรับข้อมูลเซ็นเซอร์ได้ แต่ในโหมดนี้ คุณไม่สามารถควบคุมแอคทูเอเตอร์ Roomba (มอเตอร์ หลอดไฟ ลำโพง)
- โหมดปิดเมื่อเปิดเครื่องครั้งแรกหรือหลังจากเปลี่ยนแบตเตอรี่ (รอคำสั่ง Start)
โหมดการทำงานที่ปลอดภัยและทำงานได้อย่างสมบูรณ์คือเซฟโหมดซึ่งเป็นโหมดที่ต้องการสำหรับการควบคุมระยะไกล ในการเรียกใช้เซฟโหมดก่อนอื่น เราต้องส่งคำสั่ง 128 ที่เริ่มต้น Open Interface จากนั้นจึงสั่ง 130 (หรือ 131) เพื่อให้ Roomba เข้าสู่เซฟโหมด หากเราต้องการเรียกใช้โหมดการทำความสะอาดในตัวอย่างใดอย่างหนึ่ง (คลีน สปอต ด็อค ฯลฯ) เราควรส่งคำสั่งที่สามพร้อมรหัสที่เหมาะสม (Clean-135, Spot-134, Dock-143) ลำดับอนุกรมแบบเต็มสำหรับโหมดเหล่านี้มีดังนี้:
- ตั้งค่าเซฟโหมด - (128, 130)
- สปอต - (128, 130, 134)
- คลีน - (128, 130, 135)
- ท่าเรือ - (128, 130, 143)
หาก Roomba อยู่ในเซฟโหมด เราสามารถควบคุมล้อขับเคลื่อนของ Roomba ได้โดยใช้คำสั่ง 137 ลำดับอนุกรม 5 ไบต์แบบเต็มมีดังนี้: (137, ไบต์สูงความเร็ว, ไบต์ต่ำความเร็ว, ไบต์สูงรัศมี, ไบต์ต่ำรัศมี) ตัวอย่างของลำดับอนุกรมสำหรับการควบคุมการเคลื่อนที่ของ Roomba:
- ไปข้างหน้า - (137, 100, 0, 128, 0)
- ย้อนกลับ - (137, 254, 12, 128, 0)
- เลี้ยวขวา - (137, 100, 0, 255, 255)
- เลี้ยวซ้าย - (137, 100, 0, 0, 1)
อีกทางหนึ่งเพื่อควบคุมการเคลื่อนไหวของหุ่นยนต์ เราสามารถใช้คำสั่ง 146 คำสั่งนี้ให้เราควบคุม PWM (Pulse-Width Modulation) สำหรับล้อขวาและซ้าย: (146, ไบต์สูง PWM ขวา, ไบต์ต่ำ PWM ขวา, ไบต์สูง PWM ซ้าย, PWM ซ้าย ไบต์ต่ำ) ตัวอย่างการควบคุม PWM:
- เลื่อนบนขวา - (146, 0, 130, 0, 255)
- เลื่อนบนซ้าย - (146, 0, 255, 0, 130)
คำสั่ง 139 ควบคุมสีของไฟ LED เราสามารถเปลี่ยนสี LED Clean/Power ได้โดยการตั้งค่า Color byte ตามลำดับซีเรียล: (139, LED Bits, Color, Intensity) หาก Color byte ถูกตั้งค่าเป็น 0 เราจะได้สีเขียว โดยการเพิ่มค่านี้ เราจะได้สีกลาง (สีส้ม สีเหลือง ฯลฯ) และสีแดงสำหรับค่าสูงสุด 255 ตัวอย่างการควบคุมของ LED:
- สีเขียว - (139, 0, 0, 128)
- ส้ม - (139, 0, 128, 128)
- สีแดง - (139, 0, 255, 128)
คำสั่งสุดท้ายที่ฉันอยากจะพูดถึงคือคำสั่ง 140 ที่ให้คุณเล่นเพลงง่ายๆ ตัวอย่างของซีเควนซ์ต่อเนื่องสำหรับการเล่นเพลง:
- เพลงที่ 1 - (140, 0, 5, 72, 32, 74, 32, 76, 32, 77, 32, 79, 32, 141, 0)
- เพลงที่ 2 - (140, 1, 5, 69, 16, 71, 16, 72, 16, 74, 16, 76, 16, 141, 1)
ขั้นตอนที่ 4: RPi Remote Webcam
เพื่อให้สามารถดูวิดีโอสตรีมมิ่งจากกล้องบนอุปกรณ์ใดๆ ที่เชื่อมต่อกับเครือข่ายท้องถิ่นของฉัน (พีซี สมาร์ทโฟน แท็บเล็ต ฯลฯ) ฉันได้ติดตั้งเซิร์ฟเวอร์เว็บแคมของ Motion แล้ว คุณสามารถดูรายละเอียดเกี่ยวกับวิธีการทำเช่นนี้ได้ในคำแนะนำนี้ ขั้นตอนหลักมีดังนี้:
- แก้ไข: sudo nano /etc/modules - เพิ่มที่ท้ายไฟล์: bcm2835-v4l2
- ติดตั้ง Motion: sudo apt-get install motion
- เปิดไฟล์ motion.conf โดยพิมพ์: sudo nano /etc/motion/motion.conf และตั้งค่าพารามิเตอร์วิดีโอ (เช่น เปิด daemon กว้าง 640 สูง 480 อัตราเฟรม 30 ปิด webcam_localhost)
- เปิดใช้งาน Daemon (บริการ): sudo nano /etc/default/motion และค้นหาและเปลี่ยน start_motion_daemon=yes
- เริ่มบริการ: sudo service motion start หรือ sudo motion -n -c /etc/motion/motion.conf
- ตอนนี้เปิดเว็บเบราว์เซอร์บนคอมพิวเตอร์หรือสมาร์ทโฟนแล้วพิมพ์: RPi IP:8081 (โดยที่ "RPi IP" คือ IP ของ Raspberry Pi และ 8081 เป็นพอร์ตเริ่มต้น) ตัวอย่าง: 192.168.1.14:8081. หากทุกอย่างทำงานได้ดีหลังจากนั้นไม่นาน คุณควรเห็นมุมมองจากกล้องของคุณในเว็บเบราว์เซอร์
ขั้นตอนที่ 5: แผนสำหรับการพัฒนาเพิ่มเติม
ขณะนี้ Roomba ของฉันติดตั้งแขนหุ่นยนต์ขนาดเล็กตามที่อธิบายไว้ในคำแนะนำนี้ แขนหุ่นยนต์นี้สามารถควบคุมจากระยะไกลผ่านบลูทูธจากแอพ Android ในขั้นตอนต่อไป ฉันจะใช้มุมมองจากกล้องเพื่อจับและเคลื่อนย้ายวัตถุจากระยะไกลไปยังพื้นที่ที่ทำเครื่องหมายไว้ (การทำงานในโหมดกึ่งอัตโนมัติ)
หากคุณต้องการดูโครงการอื่น ๆ ของฉันที่เกี่ยวข้องกับวิทยาการหุ่นยนต์ โปรดไปที่:
- เว็บไซต์ของฉัน: www.mobilerobots.pl
- facebook: หุ่นยนต์เคลื่อนที่
ขั้นตอนที่ 6: การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์ - เวอร์ชัน 2 พร้อมปลอก
หากคุณต้องการสร้างตัวรับสัญญาณที่ถอดออกได้เพื่อควบคุม Roomba ขั้นตอนพิเศษนี้เหมาะสำหรับคุณ เราเพิ่มองค์ประกอบอีกสองสามรายการและจะปิดองค์ประกอบทั้งหมดลงในเคสที่บางเฉียบ ส่วนประกอบหลักที่เราจะต้องใช้ในขั้นตอนนี้คือขั้วต่อ mini DIN 8 พิน นอกจากนี้ เราจะต้องมีสวิตช์เปิดปิดและไฟแสดงสถานะตาม LED และตัวต้านทาน 10k
ตอนนี้คุณไม่ต้องกังวลกับการดึงสายไฟออกมา ตัวรับสัญญาณบลูทูธปิดอยู่ในกล่องขนาดเล็กที่มีขนาด 50x40x20 มม. เมื่อคุณไม่ต้องการใช้งาน คุณสามารถถอดออกจาก Roomba โดยดึงปลั๊ก mini DIN ได้อย่างง่ายดาย
แนะนำ:
Roomba Bot the Bulider: 5 ขั้นตอน (พร้อมรูปภาพ)
Roomba Bot the Bulider: Bot the Builder เป็น Roomba ที่มี "grabbers" ติดด้านหน้าจะสามารถเคลื่อนย้ายสิ่งของต่างๆ ได้ รหัสที่มีการตั้งค่าให้บันทึกการเคลื่อนไหวครั้งแรกด้วยกล่อง GUI ที่คุณสามารถควบคุมได้ด้วยการคลิกเมาส์ของคุณ หลังจาก
หุ่นยนต์ Roomba ควบคุมเบราว์เซอร์ด้วย Raspberry Pi รุ่น 3 A+: 6 ขั้นตอน (พร้อมรูปภาพ)
หุ่นยนต์ Roomba ที่ควบคุมเบราว์เซอร์ด้วย Raspberry Pi รุ่น 3 A+: ภาพรวม คำแนะนำนี้จะเน้นไปที่วิธีให้ Roomba ที่ตายแล้วมีสมองใหม่ (Raspberry Pi) ดวงตา (เว็บแคม) และวิธีการควบคุมทุกอย่างจากเว็บเบราว์เซอร์ มีการแฮ็ก Roomba จำนวนมากที่อนุญาตให้ควบคุมผ่านอินเทอร์เฟซแบบอนุกรม ฉันไม่ได้
Roomblock: แพลตฟอร์มสำหรับการเรียนรู้การนำทาง ROS ด้วย Roomba, Raspberry Pi และ RPLIDAR: 9 ขั้นตอน (พร้อมรูปภาพ)
Roomblock: แพลตฟอร์มสำหรับการเรียนรู้การนำทาง ROS ด้วย Roomba, Raspberry Pi และ RPLIDAR: นี่คืออะไร"Roomblock" เป็นแพลตฟอร์มหุ่นยนต์ที่ประกอบด้วย Roomba, Raspberry Pi 2, เซ็นเซอร์เลเซอร์ (RPLIDAR) และแบตเตอรี่มือถือ โครงยึดสามารถทำได้โดยเครื่องพิมพ์ 3 มิติ ระบบนำทาง ROS ช่วยให้สามารถจัดทำแผนที่ห้องและใ
ROOMBA ขับเคลื่อนโดย ARDUINO YUN ผ่านแอพ Wifi โดย STEFANO DALL'OLIO: 4 ขั้นตอน (พร้อมรูปภาพ)
ROOMBA ขับเคลื่อนโดย ARDUINO YUN ผ่านแอป Wifi โดย STEFANO DALL'OLIO: ด้วยคำแนะนำนี้ ฉันแชร์รหัสเพื่อเชื่อมต่อ ARDUINO YUN กับ Roomba เพื่อขับเคลื่อน Roomba ผ่าน Wifi รหัสและแอปนี้สร้างขึ้นและพัฒนาโดยฉันเอง Stefano Dall' Olio.My Roomba คือ Roomba 620 แต่คุณสามารถใช้รหัสเดียวกันสำหรับ Roomb อื่น
โครงการ Roomba: 5 ขั้นตอน (พร้อมรูปภาพ)
โครงการ Roomba: คำแนะนำนี้สร้างขึ้นเพื่อตอบสนองความต้องการของโครงการ Makecourse ที่มหาวิทยาลัยเซาท์ฟลอริดา (www.makecourse.com) คำแนะนำนี้จะครอบคลุมขั้นตอนและส่วนประกอบที่จำเป็นทั้งหมดเพื่อประกอบโครงการ Roomba ของฉัน