Mục lục:
- Bước 1: Vật liệu
- Bước 2: Kết nối
- Bước 3: Tạo mã MATLAB một cách hợp lý để sử dụng cảm biến
- Bước 4: Kiểm tra mã và rô bốt
- Bước 5: Nhận biết lỗi
- Bước 6: Kết luận
Video: Roomba Parking Pal: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Dự án này sử dụng iRobot Tạo roomba có thể lập trình, MATLAB r2018a và MATLAB di động. Bằng cách sử dụng ba phương tiện này và kiến thức của chúng tôi về mã hóa, chúng tôi đã lập trình iRobot Create để giải thích màu sắc và sử dụng các cảm biến trên bo mạch để hoàn thành nhiệm vụ. Các dự án này phụ thuộc vào giao tiếp Raspberry Pi và MATLAB để thực hiện các tác vụ này.
Bước 1: Vật liệu
1. iRobot Tạo Robot
2. MATLAB r2018a
3. Raspberry Pi
4. Mô-đun máy ảnh
5. Chân đế ổn định máy ảnh in 3-D
6. Điện thoại thông minh có cài đặt MATLAB di động
7. Máy tính xách tay / Máy tính có cài đặt MATLAB
Bước 2: Kết nối
Bước này là kết nối Raspberry Pi với rô bốt, thứ hai là kết nối rô bốt với máy tính của bạn và kết nối điện thoại thông minh với máy tính.
Phần dễ nhất của quá trình này là kết nối Raspberry Pi với rô bốt của bạn, vì Raspberry Pi được gắn vào đầu rô bốt. Có một sợi dây từ robot mà tất cả những gì bạn phải làm là cắm vào mặt bên của Raspberry Pi.
Bước tiếp theo là kết nối robot với máy tính của bạn để bạn có thể chạy các lệnh để robot thực hiện. Điều đầu tiên bạn phải làm là kết nối máy tính của bạn với mạng không dây mà roomba của bạn đang tạo. Bây giờ, bạn nên sử dụng biểu tượng Đặt Đường dẫn trong MATLAB để đặt đường dẫn để bạn có thể sử dụng các chức năng trong hộp công cụ Roomba từ MATLAB. Mỗi khi bạn bắt đầu và kết thúc việc sử dụng với rô bốt, bạn phải thực hiện động tác "Chào hai ngón tay" để đặt lại rô bốt, có nghĩa là bạn nhấn giữ các nút đế và vị trí trong mười giây cho đến khi đèn mờ đi cho biết để nhả ra. Bạn đã thành công với việc khôi phục cài đặt gốc này nếu bạn nghe thấy rô-bốt phát âm vực ngắn. Tiếp theo, bạn phải kết nối với roomba bằng một dòng mã như sau "r = roomba (x)" trong đó 'x' là số được chỉ định cho rô bốt mà bạn có.
Cuối cùng, bạn cần tải xuống MATLAB di động trên bất kỳ thiết bị di động nào mà bạn sẽ sử dụng cho dự án này và ứng dụng này có sẵn trên cả thiết bị Android và Apple. Sau khi ứng dụng được cài đặt, bạn sẽ phải đăng nhập bằng thông tin đăng nhập của mình. Sau đó, bạn phải kết nối thiết bị này với máy tính của mình, sử dụng tab có nhãn "Thêm" -> sau đó nhấp vào "cài đặt" -> sau đó nhấp vào "Thêm máy tính", thao tác này sẽ hiển thị màn hình hiển thị trong hình trên. Sau khi bạn thấy điều này, Bước tiếp theo mà bạn phải thực hiện chỉ là cắm và ghi lại thông tin mà nó yêu cầu. Sau khi kết nối thành công, bạn sẽ có thể gọi các chức năng mà bạn xác định trên máy tính trên điện thoại để điều khiển rô bốt của mình.
Bước 3: Tạo mã MATLAB một cách hợp lý để sử dụng cảm biến
Mã sẽ dễ tạo nhất khi phần lớn mã nằm trong vòng lặp on while, để roomba có thể cập nhật liên tục các giá trị hợp lệ mà nó đang xem xét. Nếu có lỗi, MATLAB sẽ hiển thị lỗi và vị trí nó xuất hiện trong mã, giúp việc khắc phục sự cố tương đối đơn giản.
Được thiết kế trong r2018a MATLAB, mã này sử dụng các hộp công cụ tiêu chuẩn, hộp công cụ iRobot Create, cũng như hộp công cụ di động MATLAB. Roomba được sử dụng trong ví dụ này được chỉ định là 26 và r = roomba (26) chỉ cần chạy một lần để giao tiếp hoàn toàn với roomba.
Mã số:
hàm parkassist (x) nếu x == 1
r = roomba (26)% kết nối với roomba
trong khi đúng
r.setDriveVelocity (.05,.05)% đặt roomba thành tốc độ lái xe chậm hơn
va chạm = r.getBumpers% lấy dữ liệu từ các cảm biến va đập
vách đá = r.getCliffSensors% lấy dữ liệu từ các cảm biến vách đá
light = r.getLightBumpers% lấy dữ liệu từ các cảm biến cản sáng
img = r.getImage;% đọc máy ảnh của rô bốt
red_mean = mean (mean (img (:,:, 1)))% đọc số lượng pixel màu đỏ trung bình
green_mean = mean (mean (img (:,:, 2)))% đọc số lượng pixel màu xanh lá cây trung bình
blue_mean = mean (mean (img (:,:, 3)))% đọc số lượng pixel màu xanh lam trung bình
if Impact.front == 1% đọc các cảm biến va chạm phía trước
r.stop% dừng roomba
msgbox ('Đường dẫn bị che khuất!', 'Thông báo hỗ trợ đỗ xe')% hiển thị thông báo cho biết đường dẫn bị che khuất ngắt% kết thúc vòng lặp
elseif green_mean> 150
r.stop% dừng roomba
cont = questdlg ('Tiếp tục?', 'Đường dẫn Đã hoàn thành')% hiển thị hộp câu hỏi yêu cầu tiếp tục
nếu tiếp tục == 'Có'
parkassist (1)% khởi động lại mã
khác
kết thúc
break% kết thúc vòng lặp
elseif red_mean> 140
r.turnAngle (45)% xoay roomba 45 độ
r.timeStart% bắt đầu bộ đếm thời gian
trong khi đúng
r.setDriveVelocity (.05,.05)% đặt tốc độ của roomba
time = r.timeGet% gán thời gian cho một biến
va chạm = r.getBumpers% lấy dữ liệu từ các cảm biến va đập
vách đá = r.getCliffSensors% lấy dữ liệu từ các cảm biến vách đá
light = r.getLightBumpers% lấy dữ liệu từ các cảm biến cản sáng
img = r.getImage;% đọc máy ảnh của rô bốt
red_mean = mean (mean (img (:,:, 1)))% đọc số lượng pixel màu đỏ trung bình
green_mean = mean (mean (img (:,:, 2)))% đọc số lượng pixel màu xanh lá cây trung bình
blue_mean = mean (mean (img (:,:, 3)))% đọc số lượng pixel màu xanh lam trung bình
nếu blue_mean> 120
r.moveDistance (-0,01)% di chuyển roomba về phía sau một khoảng cách đã đặt
msgbox ('Tìm thấy nước!', 'Thông báo hỗ trợ đỗ xe')% hiển thị thông báo cho biết đã tìm thấy nước r.turnAngle (-80)% xoay roomba 80 độ
break% kết thúc vòng lặp hiện tại
elseif light.rightFront> 25 || light.leftFront> 25% đọc cảm biến va chạm ánh sáng
r.moveDistance (-0.01)% di chuyển roomba về phía sau một khoảng cách đã đặt
r.turnAngle (-35)% xoay roomba 35 độ
break% kết thúc vòng lặp hiện tại
elseif vách đá.rightFront <2500 && vách đá.leftFront <2500% đọc cả hai cảm biến vách đá
r.moveDistance (-0,1)% di chuyển roomba về phía sau một khoảng cách đã đặt
r.turnAngle (-80)% xoay roomba 80 độ
break% kết thúc vòng lặp hiện tại
elseif thời gian> = 3
r.stop% dừng roomba
Contin = questdlg ('Trạm Miễn phí, Tiếp tục?', 'Thông báo Hỗ trợ Đỗ xe')% hỏi liệu roomba có nên tiếp tục không nếu continue == 'Có'
r.turnAngle (-90)% xoay roomba 90 độ
parkassist (1)% khởi động lại chức năng
khác
r.stop% dừng roomba
kết thúc
khác
kết thúc
kết thúc
elseif vách đá.rightFront <2500 && vách đá.leftFront <2500% đọc cả hai cảm biến vách đá
r.moveDistance (-0,1)% di chuyển roomba về phía sau một khoảng cách đã đặt
r.turnAngle (-90)% xoay roomba 90 độ
elseif vách đá.rightFront <2500% đọc cảm biến vách đá bên phải
r.turnAngle (-5)% hơi xoay roomba theo hướng ngược lại của cảm biến vách đá
elseif vách đá.leftFront <2500% đọc cảm biến vách đá bên trái
r.turnAngle (5)% hơi xoay roomba theo hướng ngược lại của cảm biến vách đá
khác
kết thúc
kết thúc
kết thúc
Bước 4: Kiểm tra mã và rô bốt
Sau khi mã được phát triển, bước tiếp theo là kiểm tra mã và robot. Vì có rất nhiều điều chỉnh khác nhau có thể được thực hiện trong mã, chẳng hạn như góc quay của rô bốt, tốc độ di chuyển và ngưỡng cho từng màu, cách tốt nhất để tìm ra các giá trị này cho rô bốt của bạn là kiểm tra chúng và thay đổi khi bạn đi. Đối với mỗi ngày làm việc, chúng tôi đã liên tục thay đổi các giá trị này vì một số trong số chúng phụ thuộc vào môi trường mà rô bốt của bạn đang hoạt động. Cách tốt nhất mà chúng tôi tìm thấy là đặt roomba trên con đường bạn muốn nó đi theo và một rào cản đủ cao để máy ảnh không thể phát hiện ra các màu mà bạn không muốn. Bước tiếp theo là để nó chạy và hiển thị các màu bạn muốn, khi bạn muốn nó hoàn thành nhiệm vụ đó. Khi bạn tiếp tục, nếu bạn thấy một vấn đề, điều tốt nhất nên làm là đẩy cản trước vào, làm cho nó dừng lại, sau đó thay đổi thông số mà bạn gặp sự cố.
Bước 5: Nhận biết lỗi
Với mỗi dự án đã hoàn thành, luôn có những nguồn sai sót. Đối với chúng tôi, chúng tôi đã gặp lỗi với thực tế đơn giản là robot không chính xác với góc mà nó quay, vì vậy nếu bạn bảo nó quay 45 độ thì nó sẽ không chính xác. Một nguồn lỗi khác đối với chúng tôi là đôi khi rô-bốt bị trục trặc và bạn phải khôi phục cài đặt gốc trước khi rô-bốt hoạt động trở lại. Nguyên nhân chính cuối cùng của lỗi đối với chúng tôi là cùng một mã sẽ không có tác dụng giống nhau trên các rô bốt khác nhau, vì vậy bạn có thể phải kiên nhẫn với nó và điều chỉnh cho phù hợp.
Bước 6: Kết luận
Bây giờ bạn có tất cả các công cụ để chơi với roomba của mình, có nghĩa là bạn có thể thao tác mã theo bất kỳ cách nào bạn muốn để đạt được mục tiêu bạn muốn. Đây sẽ là khoảng thời gian tuyệt vời nhất trong ngày của bạn, vì vậy hãy vui vẻ và lái xe an toà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:
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy
Arduino Smart Parking: 4 bước
Bãi đậu xe thông minh Arduino: Bill Blankenship, Willam Bailey, Hannah HargroveVới việc sử dụng bảng Arduino, nhóm chúng tôi đã tạo ra một hệ thống cho phép cảm biến ánh sáng phát hiện khi ô tô đang chiếm chỗ hoặc không gian trống. Sau sáu mươi tám dòng, chúng tôi
MIDI Pod-Pal: 4 bước
MIDI Pod-Pal: *** CẬP NHẬT 4/22 / '21 ****** Tôi đã thêm một sơ đồ đầy đủ hiển thị tất cả hệ thống dây điện để hỗ trợ xây dựng. *** Tôi sẽ không đi sâu vào ở đây về phần xây dựng, ý định của tôi là đưa ra một ví dụ khác về việc xây dựng MI dựa trên Arduino
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ó