สารบัญ:
- ขั้นตอนที่ 1: วัสดุสิ้นเปลือง
- ขั้นตอนที่ 2: คำชี้แจงปัญหา
- ขั้นตอนที่ 3: รีโมทคอนโทรล Bluetooth
- ขั้นตอนที่ 4: การรับรู้ผลกระทบ
- ขั้นตอนที่ 5: การรับรู้ชีวิต
- ขั้นตอนที่ 6: เรียกใช้เลย !
วีดีโอ: Mars Roomba: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
คำแนะนำนี้จะแนะนำคุณในทิศทางของการใช้งานบอทสูญญากาศ Roomba ที่ควบคุมด้วย Raspberry Pi ระบบปฏิบัติการที่เราจะใช้คือผ่าน MATLAB
ขั้นตอนที่ 1: วัสดุสิ้นเปลือง
สิ่งที่คุณจะต้องรวบรวมเพื่อดำเนินโครงการนี้:
- หุ่นยนต์ดูดฝุ่น Create2 Roomba ของ iRobot
- ราสเบอร์รี่ปี่
- กล้อง Raspberry Pi
- เวอร์ชันล่าสุดของ MATLAB
- กล่องเครื่องมือติดตั้ง Roomba สำหรับ MATLAB
- แอปพลิเคชัน MATLAB สำหรับอุปกรณ์มือถือ
ขั้นตอนที่ 2: คำชี้แจงปัญหา
เราได้รับมอบหมายให้ใช้ MATLAB พัฒนารถแลนด์โรเวอร์ที่สามารถใช้บนดาวอังคารเพื่อช่วยนักวิทยาศาสตร์ในการรวบรวมข้อมูลดาวเคราะห์ ฟังก์ชันที่เรากล่าวถึงในโครงการของเรา ได้แก่ รีโมทคอนโทรล การจดจำผลกระทบของวัตถุ การจดจำน้ำ การจดจำชีวิต และการประมวลผลภาพ เพื่อให้บรรลุความสำเร็จเหล่านี้ เราได้เขียนโค้ดโดยใช้คำสั่งกล่องเครื่องมือ Roomba เพื่อจัดการฟังก์ชันต่างๆ ของ Create2 Roomba ของ iRobot
ขั้นตอนที่ 3: รีโมทคอนโทรล Bluetooth
สไลด์นี้จะอธิบายโค้ดเพื่อควบคุมการเคลื่อนไหวของ Roomba โดยใช้ความสามารถบลูทูธของอุปกรณ์สมาร์ทโฟนของคุณ ในการเริ่มต้น ให้ดาวน์โหลดแอปพลิเคชัน MATLAB ไปยังสมาร์ทโฟนของคุณและลงชื่อเข้าใช้บัญชี Mathworks ของคุณ เมื่อเข้าสู่ระบบแล้ว ให้ไปที่ "เพิ่มเติม" "การตั้งค่า" และเชื่อมต่อกับคอมพิวเตอร์ของคุณโดยใช้ที่อยู่ IP เมื่อเชื่อมต่อแล้ว ให้กลับไปที่ "เพิ่มเติม" แล้วเลือก "เซ็นเซอร์" แตะที่เซ็นเซอร์ตัวที่สามบนแถบเครื่องมือด้านบนของหน้าจอ แล้วแตะเพื่อเริ่ม ตอนนี้สมาร์ทโฟนของคุณเป็นรีโมทคอนโทรลแล้ว!
รหัสมีดังนี้:
ในขณะที่ 0 == 0
หยุดชั่วคราว(.5)
PhoneData = M.การวางแนว;
Azi = PhoneData (1);
ระดับเสียง = PhoneData (2);
ด้าน = PhoneData(3);
กระแทก = r.getBumpers;
ถ้าด้านข้าง>80 || ด้านข้าง<-80
ร.หยุด
r.beep('C, E, G, C^, G, E, C')
หยุดพัก
elseif ด้าน>20 && ด้าน<40
r.turnAngle(-5);
elseif ด้าน>40
r.turnAngle(-25);
elseif ไซด์-40
r.turnAngle(5);
ข้างelseif<-40
r.turnAngle(25);
จบ
ถ้า พิช >10 && พิตช์<35
r.moveDistance(.03)
elseif พิตช์>-35 && พิตช์<-10
r.moveDistance(-.03)
จบ
จบ
ขั้นตอนที่ 4: การรับรู้ผลกระทบ
ฟังก์ชันอื่นที่เรานำมาใช้คือการตรวจจับผลกระทบของ Roomba ในวัตถุ และแก้ไขเส้นทางปัจจุบัน ในการทำเช่นนี้ เราต้องใช้เงื่อนไขกับการอ่านค่าจากเซ็นเซอร์บัมเปอร์เพื่อตรวจสอบว่าวัตถุถูกกระแทกหรือไม่ หากหุ่นยนต์ชนกับวัตถุ หุ่นยนต์จะถอยกลับขึ้นไป.2 เมตร และหมุนในมุมที่กำหนดโดยที่กันชนถูกกระแทก เมื่อกดรายการแล้ว เมนูจะปรากฏขึ้นพร้อมคำว่า "oof"
รหัสแสดงอยู่ด้านล่าง:
ในขณะที่ 0 == 0
กระแทก = r.getBumpers;
r.setDriveVelocity(.1)
ถ้า bumps.left == 1
msgbox('อ๊ะ!');
r.moveDistance(-0.2)
r.setTurnVelocity(.2)
r.turnAngle(-35)
r.setDriveVelocity(.2)
elseif bumps.front == 1
msgbox('อ๊ะ!');
r.moveDistance(-0.2)
r.setTurnVelocity(.2)
r.turnAngle(90)
r.setDriveVelocity(.2)
elseif bumps.right == 1
msgbox('อ๊ะ!');
r.moveDistance(-0.2)
r.setTurnVelocity(.2)
r.turnAngle(35)
r.setDriveVelocity(.2)
elseif bumps.leftWheelDrop ==1
msgbox('อ๊ะ!');
r.moveDistance(-0.2)
r.setTurnVelocity(.2)
r.turnAngle(-35)
r.setDriveVelocity(.2)
elseif bumps.rightWheelDrop ==1
msgbox('อ๊ะ!');
r.moveDistance(-0.2)
r.setTurnVelocity(.2)
r.turnAngle(35)
r.setDriveVelocity(.2)
จบ
จบ
ขั้นตอนที่ 5: การรับรู้ชีวิต
เราเข้ารหัสระบบการจดจำชีวิตเพื่ออ่านสีของวัตถุที่อยู่ข้างหน้า สิ่งมีชีวิตสามประเภทที่เรากำหนดไว้คือ พืช น้ำ และมนุษย์ต่างดาว ในการทำเช่นนี้ เราได้เข้ารหัสเซ็นเซอร์เพื่อคำนวณค่าเฉลี่ยของสีแดง น้ำเงิน เขียว หรือขาว ค่าเหล่านี้ถูกเปรียบเทียบกับเกณฑ์ที่กำหนดด้วยตนเองเพื่อกำหนดสีที่กล้องกำลังมอง โค้ดจะพล็อตเส้นทางไปยังวัตถุและสร้างแผนที่
รหัสมีดังนี้:
เสื้อ = 10;
ผม = 0;
ในขณะที่ t == 10
img = r.getImage; อิมโชว์(img)
หยุดชั่วคราว(0.167)
ผม = ผม + 1;
red_mean = ค่าเฉลี่ย (หมายถึง (img(:,:, 1)));
blue_mean = ค่าเฉลี่ย(หมายถึง(img(:,:, 3)));
green_mean = ค่าเฉลี่ย(หมายถึง(img(:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; % ต้องการ val นี้ประมาณ 100
nine_plus_ten = 21;
green_threshold = 125;
blue_threshold = 130;
white_threshold = 124;
red_threshold = 115;
ขณะที่ nine_plus_ten == 21% สีเขียว - ชีวิต
ถ้า green_mean > green_threshold && blue_mean < blue_threshold && red_mean < red_threshold
r.moveDistance(-.1)
a = msgbox('พบแหล่งชีวิตที่เป็นไปได้ วางแผนตำแหน่ง');
หยุดชั่วคราว(2)
ลบ (ก)
[y2, Fs2] =audioread('z_speak2.wav');
เสียง (y2, Fs2)
หยุดชั่วคราว(2)
%plant = r.getImage; %imshow(โรงงาน);
%save('plant_img.mat', โรงงาน');
%แปลงตำแหน่งเป็นสีเขียว
ผม = 5;
หยุดพัก
อื่น
nine_plus_ten = 19;
จบ
จบ
nine_plus_ten = 21;
ขณะที่ nine_plus_ten == 21% สีน้ำเงิน - woder
ถ้า blue_mean > blue_threshold && green_mean < green_threshold && white_mean < white_threshold && red_mean < red_threshold
r.moveDistance(-.1)
a = msgbox('พบแหล่งน้ำ ระบุตำแหน่ง');
หยุดชั่วคราว(2)
ลบ (ก)
[y3, Fs3] =audioread('z_speak3.wav');
เสียง(y3, Fs3);
%woder = r.getImage; %imshow(วอเดอร์)
%save('water_img.mat', woder)
% แปลงตำแหน่งเป็นสีน้ำเงิน
ผม = 5;
หยุดพัก
อื่น
nine_plus_ten = 19;
จบ
จบ
nine_plus_ten = 21;
ขณะที่ nine_plus_ten == 21% สีขาว - มนุษย์ต่างดาว MonkaS
ถ้า white_mean > white_threshold && blue_mean < blue_threshold && green_mean < green_threshold
[y5, Fs5] =audioread('z_speak5.wav');
เสียง(y5, Fs5);
หยุดชั่วคราว(3)
r.setDriveVelocity(0,.5)
[ys, Fss] =audioread('z_scream.mp3');
เสียง (ys, Fss);
หยุดชั่วคราว(3)
ร.หยุด
% เอเลี่ยน = r.getImage; %imshow(เอเลี่ยน);
% บันทึก ('alien_img.mat', เอเลี่ยน);
ผม = 5;
หยุดพัก
อื่น
nine_plus_ten = 19;
จบ
จบ
ถ้าฉัน == 5
ก = 1; %เปลี่ยนมุม
เสื้อ = 9; %ยุติวงใหญ่
ผม = 0;
จบ
จบ
ขั้นตอนที่ 6: เรียกใช้เลย !
หลังจากเขียนโค้ดทั้งหมดแล้ว ให้รวมเป็นไฟล์เดียวและ voila! บอท Roomba ของคุณจะทำงานได้อย่างสมบูรณ์และทำงานตามที่โฆษณาไว้! อย่างไรก็ตาม ตัวควบคุม Bluetooth ควรอยู่ในไฟล์แยกต่างหากหรือแยกจากโค้ดที่เหลือด้วย %%
สนุกกับการใช้หุ่นยนต์ของคุณ!!
แนะนำ:
เปลี่ยน Roomba ของคุณให้เป็น Mars Rover: 5 ขั้นตอน
เปลี่ยน Roomba ของคุณให้เป็น Mars Rover:
Mars Rover ใช้ Raspberry Pi: 5 ขั้นตอน
Mars Rover ใช้ Raspberry Pi: เรียน Great Learner ทุกคน ฉันอยากรู้อยู่เสมอเกี่ยวกับ Mars Rover มีล้อ 6 ล้อที่สามารถไปบนพื้นผิวดาวอังคารและสำรวจสิ่งต่างๆ จากโลกได้ ฉันยังต้องการที่จะสำรวจสิ่งต่าง ๆ ด้วยการนั่งบนแล็ปท็อปของฉัน ดังนั้นตอนนี้ฉันคิดว่าถึงเวลาที่จะทำมันและ
Raspberry Pi - Mars Rover อัตโนมัติพร้อมการติดตามวัตถุ OpenCV: 7 ขั้นตอน (พร้อมรูปภาพ)
Raspberry Pi - Mars Rover อัตโนมัติพร้อมการติดตามวัตถุ OpenCV: ขับเคลื่อนโดย Raspberry Pi 3, การจดจำวัตถุ Open CV, เซ็นเซอร์อัลตราโซนิกและมอเตอร์ DC แบบมีเกียร์ รถแลนด์โรเวอร์นี้สามารถติดตามวัตถุใด ๆ ที่ได้รับการฝึกฝนและเคลื่อนที่บนภูมิประเทศใดก็ได้
โครงการ Mars Roomba UTK: 4 ขั้นตอน
โครงการ Mars Roomba UTK: การปฏิเสธความรับผิด: สิ่งนี้จะใช้ได้ก็ต่อเมื่อ ROOMBA ได้รับการตั้งค่าในทุกวิธีที่เฉพาะเจาะจง คำแนะนำนี้จัดทำขึ้นและตั้งใจที่จะใช้โดยมหาวิทยาลัยของนักเรียนและคณะ TENNESSEE รหัสนี้ใช้เพื่อตั้งค่า Roomba เพื่อดำเนินการในพื้นที่ เขียนและเ
IRobot Create-Mars Expedition Rover Mark I: 4 ขั้นตอน
IRobot Create-Mars Expedition Rover Mark I: คำแนะนำนี้จะสอนวิธีตั้งค่า iRobot Create โดยใช้การเข้ารหัส MatLab หุ่นยนต์ของคุณจะมีความสามารถในการค้นหาแร่ธาตุโดยแยกแยะรูปร่าง เคลื่อนพลภูมิประเทศที่ขรุขระโดยใช้เซ็นเซอร์หน้าผา และมีความสามารถ