Mục lục:

RADbot: 7 bước
RADbot: 7 bước

Video: RADbot: 7 bước

Video: RADbot: 7 bước
Video: BIT.TRIP RUNNER 2-7 Radbot 2024, Tháng mười một
Anonim
RADbot
RADbot

Một dự án của Jackson Breakell, Tyler McCubbins và Jakob Thaler cho EF 230

Trên sao Hỏa, các phi hành gia sẽ phải đối mặt với hàng loạt nguy hiểm, từ nhiệt độ khắc nghiệt cho đến bão bụi. Tuy nhiên, một yếu tố thường bị bỏ qua là mối nguy hiểm do các đồng vị phóng xạ mạnh cư trú trên bề mặt hành tinh gây ra. RADbot cung cấp hỗ trợ khám phá các phi hành gia trên bề mặt sao Hỏa bằng cách xác định các mẫu đá có hoạt động cao khi nó di chuyển, đồng thời cũng có các tính năng an toàn được lập trình sử dụng cảm biến vách đá, cảm biến ánh sáng, cảm biến bội và camera, ngăn chặn việc robot bị hư hại trên địa hình sao Hỏa không khoan nhượng. Bên cạnh việc cảnh báo các phi hành gia về các nguy cơ phóng xạ có thể xảy ra trên bề mặt, tính năng định vị mẫu phóng xạ của robot có thể được triển khai như một công cụ để xác định các khu vực có thể chứa lượng lớn Uranium và các chất hoạt hóa khác. Các phi hành gia có thể khai thác những nguyên tố này, làm giàu chúng một cách đầy đủ và sử dụng chúng trong các lò phản ứng hạt nhân và máy phát nhiệt điện, có thể giúp cung cấp năng lượng cho một thuộc địa tự duy trì lâu dài trên hành tinh.

Không giống như thiết bị thám hiểm Mars điển hình, thiết kế của chúng tôi có các thành phần bán sẵn và mức giá hợp lý. Miễn là bạn có đủ tiền và mong muốn, bạn thậm chí có thể tự xây dựng một cái bằng cách làm theo hướng dẫn này. Vui lòng đọc để tìm hiểu cách tạo RADbot của riêng bạn.

Bước 1: Mua các bộ phận và vật liệu cần thiết

Mua các bộ phận và vật liệu cần thiết
Mua các bộ phận và vật liệu cần thiết
Mua các bộ phận và vật liệu cần thiết
Mua các bộ phận và vật liệu cần thiết
Mua các bộ phận và vật liệu cần thiết
Mua các bộ phận và vật liệu cần thiết

Những gì bạn cần để bắt đầu (Hình ảnh được đặt theo thứ tự được liệt kê trong danh sách)

1. One Roomba (bất kỳ mô hình mới hơn nào)

2. Một bộ đếm Geiger-Mueller

3. Một Raspberry Pi

4. Một máy ảnh bo mạch với ổ cắm USB

5. Một cáp micro USB sang USB

6. Một cáp USB sang USB

7. Một mẫu phóng xạ đủ hoạt độ (~ 5μSv hoặc cao hơn)

8. Một máy tính được cài đặt Matlab

9. Keo dán (Tốt hơn là băng keo để có thể tháo rời dễ dàng)

Bước 2: Định cấu hình Camera và Bộ đếm Geiger-Muller

Cấu hình máy ảnh và bộ đếm Geiger-Muller
Cấu hình máy ảnh và bộ đếm Geiger-Muller

Bây giờ bạn đã có tất cả các vật liệu cần thiết để tạo RADbot, chúng tôi sẽ bắt đầu bằng cách chỉ cần đặt máy ảnh để nó có thể đọc hoạt động trên quầy. Đặt bộ đếm Geiger-Muller càng gần cuối Roomba càng tốt và đảm bảo rằng cảm biến của nó không bị chặn. Cố định bộ đếm vào vị trí chắc chắn bằng chất kết dính bạn đã chọn và tiến hành gắn máy ảnh vào mặt nó. Đặt máy ảnh càng gần màn hình của bộ đếm càng tốt để ngăn các đầu vào bên ngoài ảnh hưởng đến chương trình và cố định nó ở vị trí khi bạn cảm thấy thoải mái. Tuy nhiên, chúng tôi khuyên bạn nên lưu lại việc bảo vệ máy ảnh lần cuối, vì khi mã của bạn hoàn tất, bạn có thể hiển thị hình ảnh từ máy ảnh lên máy tính của mình, cho phép bạn định vị máy ảnh dựa trên trường xem của nó. Khi cả máy ảnh và bộ đếm đều ở vị trí chắc chắn, hãy cắm máy ảnh vào một trong các đầu vào USB của Raspberry Pi bằng cáp USB sang USB và cắm Raspberry Pi vào Roomba bằng cáp micro USB to USB.

Bước 3: Kết nối với Roomba của bạn và tạo mã cảm biến ánh sáng

Kết nối với Roomba của bạn và tạo mã cảm biến ánh sáng
Kết nối với Roomba của bạn và tạo mã cảm biến ánh sáng

Đầu tiên, tải xuống hộp công cụ Roomba của trang web EF 230 và đảm bảo đặt nó vào các thư mục được chỉ định. Để kết nối với Roomba của bạn, chỉ cần tham chiếu nhãn dán được đính kèm với Raspberry Pi và nhập "r = roomba (x)" vào cửa sổ lệnh, không có dấu ngoặc kép và trong đó x là số của Roomba. Roomba sẽ phát một giai điệu và nút sạch sẽ hiển thị một vòng màu xanh lục xung quanh nó. Bắt đầu mã của bạn bằng câu lệnh "while" và tham khảo các cảm biến ánh sáng khi chúng xuất hiện trong danh sách cảm biến. Mở danh sách cảm biến bằng cách gõ "r.testSensors" trong cửa sổ lệnh.

Dựa trên màu sắc của đối tượng, xác định lượng ánh sáng được phản chiếu, đặt các yêu cầu để câu lệnh while được thực thi dưới dạng một hàm>. Trong trường hợp của chúng tôi, chúng tôi đặt cảm biến ánh sáng phía trước để chạy mã trong câu lệnh while nếu số đọc trên cảm biến ánh sáng trung tâm bên trái hoặc bên phải là> 25. Đối với câu lệnh thực thi, hãy đặt vận tốc của Roomba chậm lại bằng cách nhập "r.setDriveVelocity (x, y)" trong đó x và y lần lượt là vận tốc của bánh xe bên trái và bên phải. Chèn câu lệnh "else" để Roomba không bị chậm đối với các giá trị không xác định và nhập lại lệnh vận tốc ổ đĩa đã đặt, ngoại trừ tốc độ khác. Kết thúc câu lệnh while bằng "end". Đoạn mã này sẽ làm cho Roomba tiếp cận đối tượng và giảm tốc độ khi nó đạt đến một phạm vi nhất định để giảm thiểu tác động.

Đính kèm là ảnh chụp màn hình mã của chúng tôi, nhưng vui lòng chỉnh sửa nó để phù hợp nhất với các thông số nhiệm vụ của bạn.

Bước 4: Tạo mã đệm

Tạo mã đệm
Tạo mã đệm

Khi Roomba giảm tốc độ, nó sẽ giảm thiểu tác động của nó lên đối tượng, mặc dù không quá nhiều đến mức nó không kích hoạt cản vật lý. Đối với đoạn mã này, hãy bắt đầu lại với vòng lặp "while" và đặt biểu thức của nó là true. Đối với câu lệnh, hãy đặt biến T bằng đầu ra của bộ đệm, 0 hoặc 1, cho sai và đúng. Bạn có thể sử dụng "T = r.getBumpers" cho việc này. T sẽ xuất ra dưới dạng cấu trúc. Nhập câu lệnh "if" và đặt biểu thức của nó cho cấu trúc con T.front bằng 1 và đặt câu lệnh thành đặt tốc độ truyền động bằng 0, sử dụng "r.setDriveVelocity (x, y)" hoặc "r.stop ". Nhập "break" để Roomba có thể di chuyển sau khi điều kiện trong mã tiếp theo được đáp ứng. Thêm một "else" và đặt câu lệnh của nó để đặt vận tốc truyền động thành vận tốc bay bình thường của Roomba.

Đính kèm là ảnh chụp màn hình mã của chúng tôi, nhưng vui lòng chỉnh sửa nó để phù hợp nhất với các thông số nhiệm vụ của bạn.

Bước 5: Tạo mã để đọc màn hình bộ đếm, diễn giải nó và rút lại từ nguồn

Tạo mã để đọc màn hình bộ đếm, diễn giải nó và rút lại từ nguồn
Tạo mã để đọc màn hình bộ đếm, diễn giải nó và rút lại từ nguồn

Trọng tâm của dự án của chúng tôi là bộ đếm Geiger-Muller và đoạn mã sau được sử dụng để xác định dữ liệu trên màn hình có nghĩa là gì khi sử dụng máy ảnh. Do màn hình của bộ đếm của chúng tôi thay đổi màu sắc dựa trên hoạt động của nguồn, chúng tôi sẽ đặt máy ảnh để diễn giải màu của màn hình. Bắt đầu mã của bạn bằng cách đặt một biến bằng lệnh "r.getImage". Biến sẽ chứa một mảng 3d các giá trị màu của hình ảnh mà nó đã chụp là đỏ, lục và lam. Đặt các biến bằng giá trị trung bình của các ma trận màu tương ứng này bằng cách sử dụng lệnh "mean (mean (img1 (:,:, x)))" trong đó x là số nguyên từ 1 đến 3. 1, 2 và 3 đại diện cho màu đỏ, xanh lục và màu xanh lam tương ứng. Như với tất cả các lệnh được tham chiếu, không bao gồm dấu ngoặc kép.

Cho chương trình tạm dừng trong 20 giây bằng cách sử dụng "pause (20)" để bộ đếm có thể đọc chính xác mẫu và sau đó bắt đầu câu lệnh "if". Chúng tôi đã nghe tiếng bíp Roomba của mình nhiều lần bằng cách sử dụng "r.beep" trước khi nó hiển thị menu có dòng chữ "Đã tìm thấy đồng vị phóng xạ! Thận trọng!" điều này có thể được thực hiện bằng lệnh "waitfor (helpdlg ({'texthere'})". Sau khi nhấp vào ok, Roomba sẽ tiếp tục thực hiện theo phần còn lại của mã trong câu lệnh "if". Để Roomba lái xe xung quanh mẫu bằng cách sử dụng sự kết hợp của các lệnh "r.moveDistance" và "r.turnAngle". Đảm bảo kết thúc câu lệnh if của bạn bằng "end".

Đính kèm là ảnh chụp màn hình mã của chúng tôi, nhưng vui lòng chỉnh sửa nó để phù hợp nhất với các thông số nhiệm vụ của bạn.

Bước 6: Tạo mã cảm biến vách đá

Tạo mã cảm biến vách đá
Tạo mã cảm biến vách đá

Để tạo mã sử dụng các cảm biến vách đá tích hợp của Roomba, hãy bắt đầu với vòng lặp "while" và đặt biểu thức của nó thành true. Đặt một biến bằng "r.getCliffSensors" và điều này sẽ dẫn đến một cấu trúc. Bắt đầu câu lệnh "if" và đặt các biến "X.leftFront" và "X.rightFront" từ cấu trúc lớn hơn một số giá trị xác định trước, trong đó "X" là biến mà bạn đã chọn lệnh "r.getCliffSensors" để bằng với. Trong trường hợp của chúng tôi, chúng tôi đã sử dụng 1000, như một mảnh giấy trắng được sử dụng để đại diện cho một vách đá và, khi các cảm biến tiếp cận, tờ giấy, các giá trị đã tăng lên hơn 1000, đảm bảo mã sẽ chỉ thực thi khi một vách đá được phát hiện. Thêm lệnh "break" sau, rồi chèn một câu lệnh "else". Đối với câu lệnh "else", sẽ được thực thi nếu không phát hiện thấy vách đá nào, hãy đặt vận tốc truyền động thành vận tốc bay bình thường cho mỗi bánh xe. Nếu Roomba phát hiện ra một vách đá, "break" sẽ được thực thi và sau đó mã bên ngoài vòng lặp while sẽ được thực thi. Sau khi đặt "end" cho vòng lặp "if" và "while", hãy đặt Roomba lùi lại bằng lệnh di chuyển khoảng cách. Để cảnh báo các phi hành gia rằng có một vách đá gần đó, hãy đặt vận tốc truyền động của mỗi bánh xe, x và y trong lệnh vận tốc truyền động, là a và -a, trong đó a là số thực. Điều này sẽ làm cho Roomba quay, cảnh báo phi hành gia đến vách đá.

Đính kèm là ảnh chụp màn hình mã của chúng tôi, nhưng vui lòng chỉnh sửa nó để phù hợp nhất với các thông số nhiệm vụ của bạn.

Bước 7: Kết luận

Phần kết luận
Phần kết luận

Mục tiêu cuối cùng của RADbot trên sao Hỏa là hỗ trợ các phi hành gia trong quá trình khám phá và thuộc địa của họ trên hành tinh đỏ. Bằng cách xác định các mẫu phóng xạ trên bề mặt, hy vọng của chúng tôi là rô bốt, hoặc máy bay, trong trường hợp này, thực sự có thể giữ an toàn cho các phi hành gia và giúp xác định các nguồn năng lượng cho (các) căn cứ của họ. Sau khi làm theo tất cả các bước này và có lẽ với một số thử nghiệm và lỗi, RADbot của bạn sẽ được thiết lập và chạy. Đặt mẫu phóng xạ ở một nơi nào đó trong khu vực thử nghiệm của bạn, thực thi mã của bạn và quan sát bộ điều khiển làm những gì nó được thiết kế để làm. Hãy tận hưởng RADbot của bạn!

-Nhóm RADbot EF230

Đề xuất: