Mục lục:
- Bước 1: Nguồn cung cấp
- Bước 2: Tuyên bố vấn đề
- Bước 3: Điều khiển từ xa Bluetooth
- Bước 4: Nhận biết tác động
- Bước 5: Nhận biết cuộc sống
- Bước 6: Chạy nó !
Video: Mars Roomba: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Có thể hướng dẫn này sẽ hướng dẫn bạn các hướng dẫn vận hành bot chân không Roomba được điều khiển bằng Raspberry Pi. Hệ điều hành chúng tôi sẽ sử dụng là thông qua MATLAB.
Bước 1: Nguồn cung cấp
Những gì bạn sẽ cần thu thập để thực hiện dự án này:
- bot hút bụi Create2 Roomba của iRobot
- Raspberry Pi
- Máy ảnh Raspberry Pi
- Phiên bản mới nhất của MATLAB
- Hộp công cụ cài đặt Roomba cho MATLAB
- Ứng dụng MATLAB cho thiết bị di động
Bước 2: Tuyên bố vấn đề
Chúng tôi được giao nhiệm vụ sử dụng MATLAB để phát triển một máy dò đường có thể được sử dụng trên sao Hỏa nhằm hỗ trợ các nhà khoa học thu thập dữ liệu hành tinh. Các chức năng mà chúng tôi đã đề cập trong dự án của mình là điều khiển từ xa, nhận dạng tác động của vật thể, nhận dạng nước, nhận dạng sự sống và xử lý hình ảnh. Để đạt được những thành công này, chúng tôi đã viết mã bằng cách sử dụng các lệnh của hộp công cụ Roomba để thao tác nhiều chức năng của Create2 Roomba của iRobot.
Bước 3: Điều khiển từ xa Bluetooth
Trang trình bày này sẽ xem qua mã để điều khiển chuyển động của Roomba bằng khả năng Bluetooth của thiết bị điện thoại thông minh của bạn. Để bắt đầu, hãy tải ứng dụng MATLAB xuống điện thoại thông minh của bạn và đăng nhập vào tài khoản Mathworks của bạn. Sau khi đăng nhập, hãy đi tới "thêm", "cài đặt" và kết nối với máy tính của bạn bằng địa chỉ IP của nó. Sau khi kết nối, hãy quay lại "thêm" và chọn "cảm biến". Chạm vào cảm biến thứ ba trên thanh công cụ trên cùng của màn hình và chạm vào bắt đầu. Bây giờ, điện thoại thông minh của bạn là một điều khiển từ xa!
Mã như sau:
trong khi 0 == 0
tạm dừng (.5)
PhoneData = M. Orientation;
Azi = PhoneData (1);
Pitch = PhoneData (2);
Bên = Dữ liệu Điện thoại (3);
va chạm = r.getBumpers;
nếu Bên> 80 || Bên <-80
r.stop
r.beep ('C, E, G, C ^, G, E, C')
nghỉ
elseif Side> 20 && Side <40
r.turnAngle (-5);
elseif Bên> 40
r.turnAngle (-25);
elseif Side-40
r.turnAngle (5);
elseif Side <-40
r.turnAngle (25);
kết thúc
nếu Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
kết thúc
kết thúc
Bước 4: Nhận biết tác động
Một chức năng khác mà chúng tôi đã triển khai là phát hiện tác động của Roomba vào một đối tượng và sau đó sửa đường dẫn hiện tại của nó. Để làm được điều này, chúng tôi phải sử dụng các điều kiện với số đọc từ các cảm biến cản để xác định xem một vật thể có bị va chạm hay không. Nếu rô bốt va vào một vật thể, rô bốt sẽ lùi lại 0,2 mét và quay theo một góc được xác định bởi phần cản đã bị va đập. Khi một mục đã được chọn, một menu bật lên hiển thị từ "oof".
Các mã được hiển thị dưới đây:
trong khi 0 == 0
va chạm = r.getBumpers;
r.setDriveVelocity (.1)
nếu va chạm.left == 1
msgbox ('Oof!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif Impact.front == 1
msgbox ('Oof!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif xóc.right == 1
msgbox ('Oof!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif chướng ngại vật.leftWheelDrop == 1
msgbox ('Oof!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif chướng ngại vật.rightWheelDrop == 1
msgbox ('Oof!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
kết thúc
kết thúc
Bước 5: Nhận biết cuộc sống
Chúng tôi đã mã hóa một hệ thống nhận dạng sự sống để đọc màu sắc của các vật thể trước mặt nó. Ba loại sự sống mà chúng ta mã hóa là thực vật, nước và người ngoài hành tinh. Để làm điều này, chúng tôi đã mã hóa các cảm biến để tính toán các giá trị trung bình của màu đỏ, xanh lam, xanh lục hoặc trắng. Các giá trị này được so sánh với các ngưỡng được đặt theo cách thủ công để xác định màu mà máy ảnh đang nhìn. Mã cũng sẽ vẽ đường dẫn đến đối tượng và tạo bản đồ.
Mã như sau:
t = 10;
i = 0;
trong khi t == 10
img = r.getImage; imshow (img)
tạm dừng (0,167)
i = i + 1;
red_mean = mean (mean (img (:,:, 1)));
blue_mean = mean (mean (img (:,:, 3)));
green_mean = mean (mean (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; % muốn giá trị này xấp xỉ 100
nine_plus_ten = 21;
green_threshold = 125;
blue_threshold = 130;
ngưỡng_trắng = 124;
ngưỡng_ đỏ = 115;
trong khi nine_plus_ten == 21% xanh - cuộc sống
nếu green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('có thể tìm thấy nguồn sống, vị trí được vẽ');
tạm dừng (2)
xóa (a)
[y2, Fs2] = audioread ('z_speak2.wav');
âm thanh (y2, Fs2)
tạm dừng (2)
% plant = r.getImage; % imshow (thực vật);
% save ('plant_img.mat', plant ');
% lô đất vị trí màu xanh lá cây
i = 5;
nghỉ
khác
nine_plus_ten = 19;
kết thúc
kết thúc
nine_plus_ten = 21;
trong khi nine_plus_ten == 21% màu xanh lam - bộ mã hóa
nếu blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('một nguồn nước đã được tìm thấy, vị trí được vẽ');
tạm dừng (2)
xóa (a)
[y3, Fs3] = audioread ('z_speak3.wav');
âm thanh (y3, Fs3);
% woder = r.getImage; % imshow (woder)
% save ('water_img.mat', bộ mã hóa)
% lô vị trí màu xanh lam
i = 5;
nghỉ
khác
nine_plus_ten = 19;
kết thúc
kết thúc
nine_plus_ten = 21;
trong khi nine_plus_ten == 21% màu trắng - người ngoài hành tinh monkaS
if white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = audioread ('z_speak5.wav');
âm thanh (y5, Fs5);
tạm dừng (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audioread ('z_scream.mp3');
âm thanh (ys, Fss);
tạm dừng (3)
r.stop
% người ngoài hành tinh = r.getImage; % imshow (người ngoài hành tinh);
% save ('ngoài hành tinh_img.mat', người ngoài hành tinh);
i = 5;
nghỉ
khác
nine_plus_ten = 19;
kết thúc
kết thúc
nếu tôi == 5
a = 1; % quay góc
t = 9; % kết thúc vòng lặp lớn
i = 0;
kết thúc
kết thúc
Bước 6: Chạy nó !
Sau khi tất cả mã đã được viết, hãy kết hợp tất cả thành một tệp và thì đấy! Bot Roomba của bạn bây giờ sẽ có đầy đủ chức năng và hoạt động như quảng cáo! Tuy nhiên, điều khiển Bluetooth phải nằm trong một tệp riêng biệt hoặc được tách biệt với phần còn lại của mã bằng %%.
Thích sử dụng robot của bạn !!
Đề xuất:
Biến Roomba của bạn thành Mars Rover: 5 bước
Biến Roomba của bạn thành Mars Rover:
Mars Rover sử dụng Raspberry Pi: 5 bước
Mars Rover Sử dụng Raspberry Pi: Kính gửi tất cả các Great Learner, tôi luôn tò mò muốn biết về Mars rover, Có 6 bánh xe có thể đi khắp bề mặt sao Hỏa và khám phá mọi thứ từ Trái đất. Tôi cũng muốn khám phá mọi thứ bằng cách ngồi trên máy tính xách tay của mình. Vì vậy, bây giờ tôi đã chọn đúng thời điểm để thực hiện nó và
Raspberry Pi - Mars Rover tự trị với tính năng theo dõi đối tượng OpenCV: 7 bước (có hình ảnh)
Raspberry Pi - Mars Rover tự trị với tính năng theo dõi đối tượng OpenCV: Được hỗ trợ bởi Raspberry Pi 3, nhận dạng đối tượng Open CV, cảm biến siêu âm và động cơ DC có hộp số. Rover này có thể theo dõi bất kỳ đối tượng nào mà nó được huấn luyện và di chuyển trên mọi địa hình
Dự án Mars Roomba UTK: 4 bước
Dự án Mars Roomba UTK: KHUYẾN CÁO: ĐIỀU NÀY SẼ CHỈ HOẠT ĐỘNG NẾU ROOMBA ĐƯỢC THIẾT LẬP THEO CÁCH CỤ THỂ, HƯỚNG DẪN NÀY ĐƯỢC TẠO VÀ HƯỚNG DẪN SỬ DỤNG BỞI TRƯỜNG ĐẠI HỌC SINH VIÊN TENNESSEE VÀ MẶT BẰNG Mã này được sử dụng để thiết lập Roomba để chạy cục bộ được viết và s
Từ Roomba đến Rover chỉ trong 5 bước!: 5 bước
Từ Roomba đến Rover chỉ trong 5 bước !: Robot Roomba là một cách thú vị và dễ dàng để nhúng ngón chân của bạn vào thế giới người máy. Trong phần Có thể hướng dẫn này, chúng tôi sẽ trình bày chi tiết cách chuyển đổi một Roomba đơn giản thành một máy quay có thể điều khiển được đồng thời phân tích môi trường xung quanh nó