Mục lục:
- Bước 1: Các bộ phận cần thiết
- Bước 2: Tệp và cấu hình máy ảnh
- Bước 3: Thử nghiệm Roomba ban đầu
- Bước 4: Ví dụ về mã MATLAB
Video: Roomba hỗ trợ phi hành gia: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Dự án này được thực hiện bằng cách sử dụng Raspberry Pi 3 trên iRobot Create Version 2. MATLAB được sử dụng để lập trình robot làm theo các hướng dẫn cụ thể bằng cách sử dụng cảm biến và máy ảnh của nó. Các cảm biến và máy ảnh được sử dụng để thực hiện các nhiệm vụ cụ thể theo sau một phi hành gia và cung cấp cho anh ta / cô ta khả năng liên lạc với căn cứ địa của anh ta / cô ta nếu có bất kỳ sự cố nào xảy ra.
Bước 1: Các bộ phận cần thiết
1. iRobot Tạo phiên bản 2
IRobot Create là phần thiết yếu nhất của dự án này vì nó có thể lập trình được và có thể là một đại diện tuyệt vời cho một máy bay thám hiểm thực tế theo dõi các phi hành gia và hỗ trợ họ trong tương lai
2. Raspberry Pi 3
Raspberry Pi là thiết bị có thể lập trình được sử dụng cho dự án này. Mã được thiết kế cho Pi và phiên bản của Pi kèm theo là 3 (kiểu B). Các bo mạch lập trình khác như arduino đều có thể sử dụng được, tuy nhiên, arduino và hầu hết các bo mạch khác sẽ yêu cầu mã hóa khác với mô tả trong bước khác
3. Mô-đun máy ảnh Raspberry Pi
Kết nối không liên quan duy nhất với Raspberry Pi cần thiết cho dự án này là Mô-đun máy ảnh. Mô-đun máy ảnh là phần không thể thiếu đối với dự án này, vì roomba sẽ chỉ thực hiện các tác vụ dựa trên những gì nó nhìn thấy trong máy ảnh
4. MATLAB 2018a
Phiên bản gần đây nhất thứ hai của MATLAB, 2018a, đã được sử dụng để mã hóa liên quan đến thiết lập này. Có khả năng nhiều phiên bản khác của MATLAB sẽ hoạt động với điều này vì chương trình roomba đã tồn tại được một thời gian
Bước 2: Tệp và cấu hình máy ảnh
1. Kết nối Raspberry Pi và Camera với roomba
- Pi có thể kết nối trực tiếp với iRobot bằng micro USB. Đó là tất cả những gì nó cần để sẵn sàng sử dụng. Tuy nhiên, chúng tôi khuyến nghị rằng nó nên được đặt an toàn trên roomba, chẳng hạn như trong hình ảnh trong suốt bài thuyết trình cho đến nay.
- Máy ảnh có kết nối trực tiếp với Raspberry Pi và chúng tôi khuyên bạn nên mua hoặc chế tạo thứ gì đó để giữ máy ảnh trực tiếp lên. Sẽ không có điểm nào thực sự đối với máy ảnh nếu nó không thể được giữ ở vị trí để hiển thị những gì roomba nhìn thấy.
2. Tệp
- Sau khi thiết lập và kết nối mọi thứ, hãy đảm bảo rằng rô-bốt đã được đặt lại và sẵn sàng hoạt động bằng cách giữ các nút "Vị trí" và "Dock" trong 10 giây cùng nhau.
- Đây là nơi cần sử dụng MATLAB đầu tiên. Các tệp cho roomba trước tiên cần được cài đặt và tất cả những gì cần thiết cho các tệp này để chạy là mã được cung cấp trên liên kết này:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Bước 3: Thử nghiệm Roomba ban đầu
Có nhiều bước kiểm tra ban đầu được thực hiện trên roomba để đảm bảo rằng nó đang hoạt động.
1. Đảm bảo rằng bạn được kết nối với cùng một mạng WiFi như roomba. Nếu không có điều này, bạn sẽ không bao giờ kết nối qua MATLAB.
2. Tìm hiểu số lượng roomba của bạn được chỉ định để bạn có thể kết nối cụ thể với roomba mà bạn đã chọn. Ví dụ: nếu số của roomba của bạn là 30, bạn sẽ kết nối với nó bằng cách gõ roomba (30) vào cửa sổ lệnh trong MATLAB.
3. Roomba có thể được điều khiển thông qua các cấu trúc trong MATLAB. Ví dụ: nếu bạn đặt mã của mình cho roomba (30) thành biến 'r', rô bốt có thể được di chuyển về phía trước bằng lệnh r.moveDistance (0,2, 0,1).
4. Có nhiều lệnh khác nhau có thể được giao tiếp với roomba và bạn có thể thấy những lệnh này bằng cách gõ 'doc roomba' vào cửa sổ lệnh.
5. Tất cả các cảm biến đo ánh sáng, va chạm và vách đá đều có thể được đọc bằng cách sử dụng các lệnh được thấy trong 'doc roomba' nhưng một cách để có menu liên tục, gọn gàng để xem dữ liệu cảm biến có thể được nhìn thấy bằng cách sử dụng 'r.testSensors '.
6. Sau khi kiểm tra tất cả những điều này, phần mềm thu thập hình ảnh của robot có thể được sử dụng để đọc và xem các hình ảnh đã chụp. Mã cơ bản cho điều này sẽ là img = r.getImage và imshow (img);.
7. Giá trị RGB của hình ảnh có thể được tìm thấy với các mã red_mean = mean (mean (img (:,:, 1)));
green_mean = mean (mean (img (:,:, 2))); và blue_mean = mean (mean (img (:,:, 3)));.
Bước 4: Ví dụ về mã MATLAB
Tại thời điểm này, bạn đã sẵn sàng sử dụng các cảm biến và phần mềm chụp ảnh để tạo vòng quay của riêng mình trên Mars Rover Nguyên mẫu có sự hỗ trợ của con người. Ví dụ của chúng tôi là theo dõi phi hành gia bằng cách theo dõi màu trắng và di chuyển về phía nó. Robot sẽ phát ra tiếng bíp nếu các cảm biến của nó đang đọc các giá trị cao để phi hành gia có thể đặt lại robot nếu nó bị mắc kẹt hoặc đi nhặt nó và đặt lại nếu nó bị mắc kẹt trên vách đá. Tuy nhiên, nó chỉ đọc những lỗi này miễn là nó nhìn thấy màu trắng. Nếu không thể nhìn thấy màu trắng, robot sẽ vào chế độ lỗi. Nó được lập trình để gửi hai loại email khác nhau trở lại cơ sở chính tùy thuộc vào những gì nó nhìn thấy. Nếu nó nhìn thấy màu da của phi hành gia, điều đó rõ ràng là không tốt, vì vậy nó sẽ cảnh báo căn cứ tại nhà nếu phi hành gia có làn da lộ ra với bộ đồ bị trục trặc. Thông điệp khác được chuẩn bị nếu phi hành gia chỉ đơn giản là biến mất khỏi tầm mắt. Nếu không có màu trắng hoặc màu da hiển thị cho máy ảnh, rô bốt sẽ quay xung quanh và gửi một email khác, nhưng khác. Những hình ảnh mà roomba không thể nhìn thấy phi hành gia sẽ được gửi cùng với thông báo trong email. Mã cho dự án của chúng tôi được hiển thị bên dưới:
cho i = 1:.1: 3 img = r.getImage; image (img) red_mean = mean (mean (img (:,:, 1))); green_mean = mean (mean (img (:,:, 2))); blue_mean = mean (mean (img (:,:, 3))); if red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || va chạm.left> 0 || va chạm.front> 0 r.beep () r.beep () r.beep () r.stop elseif vách đá.left <10 || vách đá.leftFront <10 || vách đá.rightFront <10 || vách đá.right700 || light.leftFront> 700 || light.leftCenter> 700 || light.rightCenter> 700 || light.rightFront> 700 || light.right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stop else for i = 1: 2 r.moveDistance (0,2, 0,1) r. setDriveVelocity (.3,.2) r.stop end end end nếu green_mean <35 && blue_mean <35% hiển thị màu da (cần được điều chỉnh dựa trên màu da của phi hành gia) r.beep (); r.beep (); r.beep (); mail = '[email protected]'; % gửi email cho thấy bộ đồ đã tắt psswd = 'yeah'; host = 'smtp.gmail.com'; cổng = '465'; emailto = '[email protected]'; m_subject = 'chủ đề'; m_text = 'test'; setpref ('Internet', 'E_mail', thư); setpref ('Internet', 'SMTP_Server', máy chủ lưu trữ); setpref ('Internet', 'SMTP_Username', mail); setpref ('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', thư); props.setProperty ('mail.smtp.host', máy chủ lưu trữ); props.setProperty ('mail.smtp.port', cổng); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', cổng); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, "Help!", "Đồng phục phi hành gia đã tắt!", img); end if red_mean 135 || green_mean 135 || blue_mean 135 for j = 1: 2% nếu robot không tìm thấy màu trắng r.turnAngle (360) mail = '[email protected]'; psswd = 'vâng'; host = 'smtp.gmail.com'; cổng = '465'; emailto = '[email protected]'; m_subject = 'chủ đề'; m_text = 'test'; setpref ('Internet', 'E_mail', thư); setpref ('Internet', 'SMTP_Server', máy chủ lưu trữ); setpref ('Internet', 'SMTP_Username', mail); setpref ('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', thư); props.setProperty ('mail.smtp.host', máy chủ lưu trữ); props.setProperty ('mail.smtp.port', cổng); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', cổng); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'Không thể tìm thấy phi hành gia!', img); r.stop end end end
Rõ ràng là nó lộn xộn ở đây, nhưng nó sẽ tốt hơn một khi được sao chép. Mật khẩu và email cho việc này rõ ràng sẽ được cung cấp bởi những người thực hiện dự án này.
Tuy nhiên, ví dụ của chúng tôi chỉ là một trong nhiều cách để làm cho nó phù hợp với mọi người. Có nhiều việc khác nhau phải làm, bạn có thể phù hợp với bản thân.
Đề xuất:
Đồng hồ vũ trụ - Thay đổi màu sắc mỗi khi một phi hành gia vào không gian: 8 bước (có hình ảnh)
Đồng hồ vũ trụ - Thay đổi màu sắc mỗi khi một phi hành gia vào không gian: Xin chào! Bạn có phải là một người đam mê không gian? Nếu có thì hi-fi! Tôi yêu không gian và thiên văn học. Rõ ràng tôi không phải là phi hành gia để lên đó và có cái nhìn sâu hơn về vũ trụ. Nhưng mỗi khi tôi phát hiện ra rằng một người từ trái đất đã du hành lên bầu trời, tôi lại nhận ra
Bộ điều khiển trò chơi tự làm dựa trên Arduino - Bộ điều khiển trò chơi Arduino PS2 - Chơi Tekken với tự làm trò chơi Arduino: 7 bước
Bộ điều khiển trò chơi tự làm dựa trên Arduino | Bộ điều khiển trò chơi Arduino PS2 | Chơi Tekken với Bàn điều khiển Arduino tự làm: Xin chào các bạn, chơi game luôn thú vị nhưng chơi với Bộ điều khiển trò chơi tùy chỉnh tự làm của riêng bạn sẽ thú vị hơn
Hộp găng tay nghiên cứu chi phí thấp Hướng dẫn vận hành: 6 bước
Hướng dẫn sử dụng Hộp Găng tay Nghiên cứu Chi phí thấp: Mục đích của Tài liệu Hướng dẫn này là xem qua các hướng dẫn sử dụng Hộp Găng tay Nghiên cứu Chi phí thấp được tìm thấy tại liên kết sau: https://www.instructables.com/id/Low-Cost -Researc … Vật liệu cần thiết: · 1 hộp đựng găng tay ECOTech
Trình mô phỏng trò chơi điện thoại thông minh- Chơi trò chơi Windows bằng IMU điều khiển bằng cử chỉ, Gia tốc kế, Con quay hồi chuyển, Từ kế: 5 bước
SmartPhone Game Simulator- Chơi Windows Games Sử dụng IMU Điều khiển bằng cử chỉ, Gia tốc kế, Con quay hồi chuyển, Từ kế: Hỗ trợ dự án này: https://www.paypal.me/vslcreations bằng cách quyên góp cho mã nguồn mở & hỗ trợ để phát triển hơn nữa
Guitar Amp Tilt Stand - Thiết kế "Ghế Châu Phi" - Đơn giản, Nhỏ, Mạnh mẽ, Dễ dàng, Miễn phí hoặc Thực sự Rẻ: 9 bước
Guitar Amp Tilt Stand - Thiết kế "Ghế Châu Phi" - Đơn giản, Nhỏ, Mạnh mẽ, Dễ dàng, Miễn phí hoặc Thực sự Giá rẻ: Chân đế Guitar Amp Tilt - Quá dễ dàng - đơn giản, nhỏ, mạnh mẽ, miễn phí hoặc thực sự rẻ. Đối với tất cả các amps kích thước, ngay cả tủ lớn với đầu riêng biệt. Chỉ cần làm cho bảng và đường ống có kích thước và bạn cần gần như bất kỳ thiết bị nào bạn muốn