Mục lục:
- Bước 1: Mua các bộ phận và vật liệu cần thiết
- Bước 2: Định cấu hình Camera và Bộ đếm Geiger-Muller
- 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
- Bước 4: Tạo mã đệm
- 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
- Bước 6: Tạo mã cảm biến vách đá
- Bước 7: Kết luận
Video: RADbot: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
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
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
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
Đầ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
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
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ã 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
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:
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: Trong phần Hướng dẫn nhanh này, chúng tôi sẽ tạo một bộ điều khiển động cơ bước đơn giản bằng cách sử dụng động cơ bước. Dự án này không yêu cầu mạch phức tạp hoặc vi điều khiển. Vì vậy, không cần thêm ado, chúng ta hãy bắt đầu
Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh)
Động cơ bước được điều khiển bằng động cơ bước Không cần vi điều khiển (V2): Trong một trong những Hướng dẫn trước đây của tôi, tôi đã chỉ cho bạn cách điều khiển động cơ bước bằng cách sử dụng động cơ bước mà không cần vi điều khiển. Đó là một dự án nhanh chóng và thú vị nhưng nó đi kèm với hai vấn đề sẽ được giải quyết trong Có thể hướng dẫn này. Vì vậy, hóm hỉnh
Đầu máy mô hình điều khiển động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Đầu máy mô hình điều khiển động cơ bước | Động cơ bước làm bộ mã hóa quay: Trong một trong những phần Hướng dẫn trước, chúng ta đã học cách sử dụng động cơ bước làm bộ mã hóa quay. Trong dự án này, bây giờ chúng ta sẽ sử dụng bộ mã hóa quay động cơ bước đó để điều khiển đầu máy mô hình bằng vi điều khiển Arduino. Vì vậy, không có fu
Âm thanh bay bổng với Arduino Uno Từng bước (8 bước): 8 bước
Acoustic Levitation With Arduino Uno Step-by-by-by (8 bước): bộ chuyển đổi âm thanh siêu âm L298N Dc cấp nguồn cho bộ chuyển đổi âm thanh nữ với chân cắm một chiều nam Arduino UNOBreadboard Cách hoạt động: Đầu tiên, bạn tải mã lên Arduino Uno (nó là một vi điều khiển được trang bị kỹ thuật số và các cổng tương tự để chuyển đổi mã (C ++)
Độ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