สารบัญ:
- ขั้นตอนที่ 1: วัสดุ
- ขั้นตอนที่ 2: การเชื่อมต่อ
- ขั้นตอนที่ 3: การสร้างรหัส MATLAB อย่างมีเหตุผลเพื่อใช้เซ็นเซอร์
- ขั้นตอนที่ 4: การทดสอบรหัสและหุ่นยนต์
- ขั้นตอนที่ 5: การรับรู้ข้อผิดพลาด
- ขั้นตอนที่ 6: บทสรุป
วีดีโอ: Roomba Parking Pal: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
โปรเจ็กต์นี้ใช้ iRobot Create programmable roomba, MATLAB r2018a และ MATLAB mobile ในการใช้สื่อทั้งสามนี้และความรู้ด้านการเข้ารหัสของเรา เราตั้งโปรแกรม iRobot Create เพื่อตีความสีและใช้เซ็นเซอร์ออนบอร์ดเพื่อทำงานให้เสร็จ โปรเจ็กต์นี้ขึ้นอยู่กับการสื่อสาร Raspberry Pi และ MATLAB เพื่อทำงานเหล่านี้
ขั้นตอนที่ 1: วัสดุ
1. iRobot สร้างหุ่นยนต์
2. MATLAB r2018a
3. ราสเบอร์รี่ปี่
4. โมดูลกล้อง
5. ขาตั้งกล้องกันสั่นพิมพ์ 3 มิติ
6. สมาร์ทโฟนที่ติดตั้ง MATLAB บนมือถือ
7. แล็ปท็อป/คอมพิวเตอร์ที่ติดตั้ง MATLAB
ขั้นตอนที่ 2: การเชื่อมต่อ
ขั้นตอนนี้เกี่ยวกับการเชื่อมต่อ Raspberry Pi กับหุ่นยนต์ การเชื่อมต่อหุ่นยนต์กับคอมพิวเตอร์ของคุณเป็นครั้งที่สอง และเชื่อมต่อสมาร์ทโฟนกับคอมพิวเตอร์
ส่วนที่ง่ายที่สุดของกระบวนการนี้คือการเชื่อมต่อ Raspberry Pi กับหุ่นยนต์ของคุณ เนื่องจาก Raspberry Pi ติดตั้งอยู่ที่ด้านบนของหุ่นยนต์ มีสายไฟจากหุ่นยนต์ที่คุณเพียงแค่เสียบเข้ากับด้านข้างของ Raspberry Pi
ขั้นตอนต่อไปคือการเชื่อมต่อหุ่นยนต์กับคอมพิวเตอร์ของคุณ เพื่อให้คุณสามารถเรียกใช้คำสั่งให้หุ่นยนต์ดำเนินการได้ สิ่งแรกที่คุณต้องทำคือเชื่อมต่อคอมพิวเตอร์ของคุณกับเครือข่ายไร้สายที่ roomba ของคุณสร้างขึ้น ในตอนนี้ ขอแนะนำให้คุณใช้ไอคอน Set Path ใน MATLAB เพื่อกำหนดเส้นทาง เพื่อให้คุณสามารถใช้ฟังก์ชันในกล่องเครื่องมือ Roomba จาก MATLAB ได้ ทุกครั้งที่คุณเริ่มต้นและสิ้นสุดการใช้งานกับหุ่นยนต์ คุณต้องทำการ "แสดงความเคารพด้วยสองนิ้ว" อย่างหนักเพื่อรีเซ็ตหุ่นยนต์ ซึ่งหมายความว่าคุณกดปุ่มท่าเรือและสปอตไลท์ค้างไว้สิบวินาทีจนกว่าไฟจะหรี่ลงเพื่อระบุว่าจะปล่อย คุณประสบความสำเร็จในการฮาร์ดรีเซ็ตนี้หากคุณได้ยินว่าหุ่นยนต์เล่นในระดับสั้น ถัดไป คุณต้องเชื่อมต่อกับ roomba โดยใช้บรรทัดรหัสเช่นนี้ "r=roomba(x)" โดยที่ 'x' คือหมายเลขที่กำหนดให้กับหุ่นยนต์ที่คุณมี
สุดท้าย คุณต้องดาวน์โหลด MATLAB mobile บนอุปกรณ์มือถือเครื่องใดก็ตามที่คุณจะใช้สำหรับโปรเจ็กต์นี้ และแอปพลิเคชันนี้สามารถใช้ได้ทั้งบนอุปกรณ์ Android และ Apple เมื่อติดตั้งแอปพลิเคชันแล้ว คุณจะต้องเข้าสู่ระบบโดยใช้ข้อมูลประจำตัวของคุณ จากนั้นคุณต้องเชื่อมต่ออุปกรณ์นี้กับคอมพิวเตอร์ของคุณโดยใช้แท็บ "เพิ่มเติม" -> จากนั้นคลิก "การตั้งค่า" -> จากนั้นคลิก "เพิ่มคอมพิวเตอร์" ซึ่งจะแสดงหน้าจอที่แสดงในภาพด้านบน หลังจากที่คุณเห็นสิ่งนี้ ขั้นตอนต่อไปที่คุณต้องดำเนินการคือเพียงแค่เสียบและสับข้อมูลที่ร้องขอ เมื่อคุณเชื่อมต่อสำเร็จ คุณจะสามารถเรียกใช้ฟังก์ชันที่คุณกำหนดบนคอมพิวเตอร์ของคุณบนโทรศัพท์เพื่อควบคุมหุ่นยนต์ของคุณ
ขั้นตอนที่ 3: การสร้างรหัส MATLAB อย่างมีเหตุผลเพื่อใช้เซ็นเซอร์
โค้ดจะสร้างได้ง่ายที่สุดเมื่อโค้ดส่วนใหญ่อยู่ภายใน while loop เพื่อให้ roomba สามารถอัปเดตค่าที่ถูกต้องได้อย่างต่อเนื่อง หากมีข้อผิดพลาด MATLAB จะแสดงข้อผิดพลาดและตำแหน่งที่ข้อผิดพลาดนั้นปรากฏในโค้ด ทำให้การแก้ไขปัญหาค่อนข้างง่าย
ได้รับการออกแบบใน r2018a MATLAB โค้ดนี้ใช้กล่องเครื่องมือมาตรฐาน กล่องเครื่องมือ iRobot Create และกล่องเครื่องมือเคลื่อนที่ MATLAB roomba ที่ใช้ในตัวอย่างนี้ถูกกำหนดให้เป็น 26 และจำเป็นต้องเรียกใช้ r=roomba(26) เพียงครั้งเดียวเพื่อสื่อสารกับ roomba อย่างสมบูรณ์
รหัส:
ฟังก์ชั่น parkassist(x)if x==1
r=roomba(26) % เชื่อมต่อกับ roomba
ในขณะที่จริง
r.setDriveVelocity(.05,.05) % กำหนดให้ roomba มีความเร็วในการขับขี่ช้าลง
bump=r.getBumpers % รับข้อมูลจากบัมพ์เซ็นเซอร์
Cliff=r.getCliffSensors % รับข้อมูลจากเซ็นเซอร์หน้าผา
light=r.getLightBumpers % รับข้อมูลจากเซ็นเซอร์ตรวจจับแสง
img=r.getImage;% อ่านกล้องจากหุ่นยนต์
red_mean = mean(mean(img(:,:, 1))) % อ่านจำนวนพิกเซลสีแดงเฉลี่ย
green_mean = mean(mean(img(:,:, 2))) % อ่านจำนวนพิกเซลสีเขียวเฉลี่ย
blue_mean = mean(mean(img(:,:, 3))) % อ่านจำนวนพิกเซลสีน้ำเงินเฉลี่ย
ถ้า bump.front == 1% อ่านว่าเซ็นเซอร์กันกระแทกด้านหน้า
r.stop %stops roomba
msgbox('Path Obscured!', 'Parking Assistant Message') % แสดงข้อความว่าเส้นทางถูกบดบัง ตัวแบ่ง % สิ้นสุดการวนซ้ำ
elseif green_mean >150
r.stop %stops roomba
cont = questdlg('Continue?', 'Path Completed') % แสดงกล่องคำถามที่ถามเพื่อดำเนินการต่อ
ถ้าต่อ == 'ใช่'
parkassist(1) % เริ่มรหัสใหม่
อื่น
จบ
แตก% สิ้นสุดลูป
elseif red_mean > 140
r.turnAngle(45) %เปลี่ยน roomba 45 องศา
r.timeStart % เริ่มตัวนับเวลา
ในขณะที่จริง
r.setDriveVelocity(.05,.05) %กำหนดความเร็วของห้อง
time=r.timeGet %กำหนดเวลาให้กับตัวแปร
bump=r.getBumpers % รับข้อมูลจากบัมพ์เซ็นเซอร์
Cliff=r.getCliffSensors % รับข้อมูลจากเซ็นเซอร์หน้าผา
light=r.getLightBumpers % รับข้อมูลจากเซ็นเซอร์ตรวจจับแสง
img=r.getImage;% อ่านกล้องจากหุ่นยนต์
red_mean = mean(mean(img(:,:, 1))) % อ่านจำนวนพิกเซลสีแดงเฉลี่ย
green_mean = mean(mean(img(:,:, 2))) % อ่านจำนวนพิกเซลสีเขียวเฉลี่ย
blue_mean = mean(mean(img(:,:, 3))) % อ่านจำนวนพิกเซลสีน้ำเงินเฉลี่ย
ถ้า blue_mean > 120
r.moveDistance(-0.01) %ย้าย roomba ไปข้างหลังตามระยะทางที่กำหนด songPlay(r, 'T400, C, D, E, F, G, A, B, C^', 'true') % เล่นสเกลดนตรีที่เพิ่มขึ้น
msgbox('Water Found!', 'Parking Assistant Message') % แสดงข้อความว่าพบน้ำแล้ว r.turnAngle(-80) %rotates roomba 80 องศา
แตก % สิ้นสุดการวนรอบปัจจุบัน
Elseif light.rightFront > 25 || light.leftFront > 25% อ่านเซ็นเซอร์การชนแสง
r.moveDistance(-0.01) % ย้าย roomba ไปข้างหลังตามระยะทางที่กำหนด
r.turnAngle(-35) % หมุน roomba 35 องศา
ทำลาย % สิ้นสุดลูปปัจจุบัน
Elseif Cliff.rightFront < 2500 && Cliff.leftFront < 2500 % อ่านทั้งเซ็นเซอร์หน้าผา
r.moveDistance(-0.1) % ย้าย roomba ไปข้างหลังในระยะทางที่กำหนด
r.turnAngle(-80) %rotates roomba 80 องศา
แตก % สิ้นสุดการวนรอบปัจจุบัน
elseif เวลา >= 3
r.stop %stops roomba
contin=questdlg('Station Free, Continue?', 'Parking Assistant Message') % ถามว่า roomba ควรดำเนินการต่อหรือไม่ถ้า contin == 'Yes'
r.turnAngle(-90) % หมุน roomba 90 องศา
parkassist(1) % เริ่มการทำงานใหม่
อื่น
r.stop % หยุด roomba
จบ
อื่น
จบ
จบ
Elseif Cliff.rightFront < 2500 && Cliff.leftFront < 2500 % อ่านทั้งเซ็นเซอร์หน้าผา
r.moveDistance(-0.1) %ย้าย roomba ไปข้างหลังตามระยะทางที่กำหนด
r.turnAngle(-90) %rotates roomba 90 องศา
Elseif Cliff.rightFront < 2500 % อ่านเซ็นเซอร์หน้าผาขวา
r.turnAngle(-5) % หมุน roomba เล็กน้อยไปในทิศทางตรงกันข้ามกับเซ็นเซอร์หน้าผา
Elseif Cliff.leftFront < 2500 % อ่านเซ็นเซอร์หน้าผาด้านซ้าย
r.turnAngle(5) % หมุน roomba เล็กน้อยไปในทิศทางตรงกันข้ามกับเซ็นเซอร์หน้าผา
อื่น
จบ
จบ
จบ
ขั้นตอนที่ 4: การทดสอบรหัสและหุ่นยนต์
หลังจากพัฒนาโค้ดแล้ว ขั้นตอนต่อไปคือการทดสอบโค้ดและหุ่นยนต์ เนื่องจากมีการปรับเปลี่ยนต่างๆ มากมายที่สามารถทำได้ในโค้ด เช่น มุมที่หุ่นยนต์หมุน ความเร็วที่เคลื่อนที่ และเกณฑ์สำหรับแต่ละสี วิธีที่ดีที่สุดในการหาค่าเหล่านี้สำหรับหุ่นยนต์ของคุณคือการทดสอบ พวกเขาและเปลี่ยนแปลงตามที่คุณไป ในแต่ละวันทำงานที่เรามี เราเปลี่ยนแปลงค่าเหล่านี้อย่างต่อเนื่องเนื่องจากค่าเหล่านี้บางส่วนอาศัยสภาพแวดล้อมที่หุ่นยนต์ของคุณทำงานอยู่ วิธีที่ดีที่สุดที่เราพบคือการวาง roomba บนเส้นทางที่คุณต้องการให้เดินตาม และให้มี อุปสรรคที่สูงพอที่จะทำให้กล้องไม่สามารถตรวจจับสีที่คุณไม่ต้องการได้ ขั้นตอนต่อไปคือปล่อยให้มันทำงานและแสดงสีที่คุณต้องการ เมื่อคุณต้องการให้มันทำงานนั้นให้เสร็จ เมื่อคุณเห็นปัญหา สิ่งที่ดีที่สุดที่ควรทำคือดันกันชนหน้าเข้าไป ทำให้มันหยุด ให้เปลี่ยนพารามิเตอร์ที่คุณมีปัญหา
ขั้นตอนที่ 5: การรับรู้ข้อผิดพลาด
เมื่อทุกโครงการเสร็จสิ้น ย่อมมีแหล่งที่มาของข้อผิดพลาดอยู่เสมอ สำหรับเรา เราพบข้อผิดพลาดกับข้อเท็จจริงง่ายๆ ที่ว่าหุ่นยนต์ไม่แม่นยำในมุมที่มันหมุน ดังนั้น ถ้าคุณบอกให้หมุน 45 องศา มันก็จะไม่มีทางเที่ยงตรง แหล่งที่มาของข้อผิดพลาดอีกประการหนึ่งสำหรับเราคือบางครั้งหุ่นยนต์ทำงานผิดปกติ และคุณได้ฮาร์ดรีเซ็ตก่อนที่จะทำงานอีกครั้ง สาเหตุหลักของข้อผิดพลาดประการสุดท้ายสำหรับเราคือโค้ดเดียวกันจะไม่มีผลเหมือนกันกับโรบ็อตต่างๆ ดังนั้นคุณอาจต้องอดทนกับมันและปรับเปลี่ยนตามนั้น
ขั้นตอนที่ 6: บทสรุป
ตอนนี้คุณมีเครื่องมือทั้งหมดสำหรับใช้เล่นกับ roomba ของคุณแล้ว ซึ่งหมายความว่าคุณสามารถจัดการโค้ดได้ไม่ว่าจะอย่างไรก็ตาม คุณต้องการบรรลุเป้าหมายที่คุณต้องการ นี่ควรเป็นช่วงที่ดีที่สุดของวัน ดังนั้นขอให้สนุกและขับรถอย่างปลอดภัย!
แนะนำ:
Arduino Parking Assistant - จอดรถของคุณในจุดที่ถูกต้องทุกครั้ง: 5 ขั้นตอน (พร้อมรูปภาพ)
Arduino Parking Assistant - จอดรถของคุณในจุดที่ถูกต้องทุกครั้ง: ในโครงการนี้ ฉันจะแสดงวิธีสร้างผู้ช่วยที่จอดรถของคุณเองโดยใช้ Arudino ระบบช่วยจอดรถนี้จะวัดระยะห่างจากรถของคุณและแนะนำคุณให้จอดรถในจุดที่ถูกต้องโดยใช้การอ่านค่าบนจอ LCD และ LED ซึ่งจะ
Arduino Parking Sensor: 8 ขั้นตอน
Arduino Parking Sensor: ส่วนประกอบ 1x Arduino UNO1x Circle Electronic NOOB Series Parking Sensor1x HC-SR04 Ultrasonic Sensor8x JumperSoftwareArduino IDE
Arduino Smart Parking: 4 ขั้นตอน
Arduino Smart Parking: Bill Blankenship, Willam Bailey, Hannah Hargrove ด้วยการใช้บอร์ด Arduino กลุ่มของเราจึงสามารถสร้างระบบที่อนุญาตให้เซ็นเซอร์วัดแสงตรวจจับเมื่อรถยนต์ครอบครองพื้นที่หรือหากพื้นที่ว่าง หลังจากหกสิบแปดเส้นเรา e
Arduino Parking Assistant: 17 ขั้นตอน (พร้อมรูปภาพ)
Arduino Parking Assistant: พวกเราที่มีโรงรถขนาดเล็กจะรู้ว่าการจอดรถเข้าหรือออกไกลเกินไปและไม่สามารถเดินไปรอบๆ ตัวรถได้ เราเพิ่งซื้อรถขนาดใหญ่ขึ้น และต้องจอดรถในโรงรถอย่างสมบูรณ์เพื่อ
MIDI Pod-Pal: 4 ขั้นตอน
MIDI Pod-Pal: ***UPDATE 4/22/'21****** ฉันได้เพิ่มแผนผังแบบเต็มที่แสดงการเดินสายทั้งหมดเพื่อช่วยในการก่อสร้าง ***ฉันจะไม่พูดถึงจำนวนที่ไร้สาระ ในส่วนการสร้าง ความตั้งใจของฉันคือการแสดงตัวอย่างอื่นของการสร้าง MI ที่ใช้ Arduino