Mục lục:
Video: Localino Theo dõi Roomba IRobot, Lập bản đồ Môi trường và Cho phép Kiểm soát.: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Để xây dựng cầu nối WiFi-UART, bạn có thể xem repo github này:
Nó có một cơ sở tốt để bắt đầu. Hãy chắc chắn rằng bạn đọc kỹ hướng dẫn, vì Roomba VCC trong quá trình sạc sẽ tăng lên đến 20 Volts! Nếu bạn thêm ESP8266 mà không có bộ chuyển đổi buck thích hợp hoạt động ngay cả khi lên đến 20V và chuyển đổi xuống 3,3V, bạn sẽ làm hỏng ESP của mình.
Ngoài ra, hãy đảm bảo sử dụng bộ chuyển mức (ví dụ: sử dụng bộ chia điện áp) để chuyển các mức logic 5V UART từ Roomba sang 3,3V, được sử dụng bởi ESP.
Một chi tiết quan trọng khác là bộ chuyển đổi buck nên có 300mA, nhưng không nhiều hơn hoặc ít hơn nhiều (tùy thuộc vào chính bộ chuyển đổi buck). Có một số thiết bị có thể tạo ra nhiều dòng điện hơn, nhưng khiến Roomba bị hỏng vì chúng hút quá nhiều dòng điện trong quá trình khởi động. Chúng tôi phát hiện ra rằng Bộ điều chỉnh điện áp bước xuống Pololu 3.3V, 300mA (D24V3F3) hoạt động hoàn hảo. Các phiên bản thay thế có 500mA / 600mA đã gây ra sự cố giao diện Roomba UART. Về cơ bản, Roomba phản ứng khi nhấn nút, nhưng không phản ứng với các lệnh thông qua giao diện UART. Khi điều này xảy ra, chúng tôi phải tháo pin Roomba và khởi động lại Roomba với cầu nối WiFi-UART được gắn vào. Tuy nhiên, chỉ có D24V3F3 hoạt động tốt.
Ngoài chi tiết kỹ thuật đó, bạn phải thêm các lệnh bổ sung vào mã mà bạn có thể tìm thấy trong thông số kỹ thuật giao diện mở Roomba. Bạn sẽ cần thêm tất cả các lệnh mà bạn muốn roomba của mình phản ứng (ví dụ: lùi, tiến, tốc độ, v.v.).
ví dụ trong arduino IDE:
void goForward () {char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print (c); }
void goBackward () {char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print (c); }
void spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Serial.print (c); }
void spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serial.print (c); }
nếu bạn viết bằng lua, nó trông hơi khác một chút, một ví dụ cho lần lượt TRÁI sẽ trông như thế này:
if (_GET.pin == "LEFT") then print ('\ 137'); --VOR
tmr.delay (100);
print ('\ 00'); - Vận tốc = 200 = 0x00C8 -> 0 dưới 200
tmr.delay (100);
print ('\ 200'); - Vận tốc
tmr.delay (100);
print ('\ 254'); - Bán kính = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr.delay (100);
print ('\ 12'); -- Xoay
kết thúc
Đảm bảo rằng bạn phải sửa mô tả giao diện mở cho Roomba của mình. Có sẵn ít nhất hai thông số kỹ thuật giao diện mở.
cho dòng Roomba 5xx:
cho loạt Roomba 6xx:
Khi bạn đã xây dựng cầu nối WiFi-UART của mình và thử nghiệm các lệnh mà bạn đã thực hiện thêm một bước lớn. Video này chứng minh rằng ứng dụng và cách tiếp cận hoạt động. Chúng tôi hơi lười biếng, giao diện web thiếu tất cả các lệnh điều khiển khác, như tiến, lùi, tốc độ, phải, trái, v.v., nhưng bạn có thể đưa ra các lệnh qua http. Nhưng dù sao, nó chỉ là một minh chứng rằng điều khiển từ xa của Roomba hoạt động với một phần cứng và phần mềm dễ dàng sử dụng ESP8266.
Giờ đây khi bạn có thể điều khiển Roomba của mình từ xa từ ứng dụng PC, điều duy nhất còn thiếu là bản địa hóa trong nhà. Chúng tôi cần điều này để đóng vòng phản hồi, vì mục tiêu của chúng tôi là điều khiển robot theo một hướng nhất định. Làm thôi nào.
Bước 3: Thiết lập hệ thống bản địa hóa trong nhà của bạn
Để đóng vòng phản hồi, chúng tôi sử dụng hệ thống bản địa hóa trong nhà. Chúng tôi sử dụng Localino cho việc này. Hệ thống Localino bao gồm "mỏ neo" và "thẻ". Các neo được định vị tại các vị trí cố định bên trong phòng và xác định vị trí của thẻ di chuyển (được đặt trên Roomba). Xử lý vị trí được thực hiện trong một ứng dụng PC. Đó là một lợi thế lớn, vì bạn cũng có thể điều khiển Roomba từ cùng một PC! Có sẵn mã nguồn miễn phí từ trang web Localino, nó được viết bằng python và cũng có một luồng thời gian thực cung cấp tọa độ XYZ của thẻ. Dòng dữ liệu có sẵn thông qua mạng UDP, nhưng bạn cũng có thể thêm MQTT hoặc bất kỳ thứ gì khác mà bạn thích. Nếu bạn biết Python, có rất nhiều thư viện giúp bạn.
Trong video này, bản địa hóa của Roomba được trình bày. Do đó, chúng tôi có 4 thiết lập neo trong phòng tại các vị trí cố định, cho phép định vị 3D của Roomba. Nói chung, chúng tôi sẽ chỉ yêu cầu 3 neo, vì Roomba có thể sẽ không di chuyển theo trục Z, do đó 2D là đủ. Nhưng vì các neo được đặt ở độ cao của phích cắm chính AC (cách mặt đất khoảng 30cm) nên thiết lập 2D sẽ gây ra ít lỗi ước tính vị trí. Vì vậy, chúng tôi quyết định có 4 neo và bản địa hóa ở dạng 3D.
Bây giờ khi chúng ta có vị trí của Roomba, bước tiếp theo của chúng ta là điều khiển Roomba từ cùng một ứng dụng. Ý tưởng là sử dụng sự thật cơ bản và ước tính một con đường làm sạch hoàn hảo cho robot. Với việc sử dụng Localino, chúng ta có thể đóng vòng phản hồi và điều khiển robot từ ứng dụng PC.
Nhận xét thiết lập
Định vị các neo Localino bên trong phòng ở các vị trí x, y khác nhau và ba trong số chúng ở cùng một vị trí z. Định vị một trong bốn neo ở độ cao khác z cho mỗi phòng. Đảm bảo rằng thẻ Localino được phủ sóng tốt, thẻ này sẽ di chuyển cùng với Roomba.
Tất cả các neo đều có một ID neo uniqe, được hiển thị trên mã vạch của Localino và có thể được đọc ra bằng công cụ “cấu hình localino”.
Lưu ý các vị trí trong X, Y, Z và các ID neo. Điều này là bắt buộc đối với Phần mềm Bộ xử lý Localino và phải được điều chỉnh trong tệp “localino.ini” trong thư mục “LocalinoProcessor”
Các mỏ neo phải hướng lên trên hoặc hướng xuống trong Z (khi vùng XY được bao phủ), nhưng không hướng về phía vùng được bao phủ. Các neo cũng không được bao phủ bởi kim loại hoặc bất kỳ vật liệu làm nhiễu tín hiệu không dây nào khác. Nếu điều này là không thể, thì giữa bất kỳ vật liệu nào và mỏ neo cũng phải có một khe hở không khí nhất định.
… Nhiều hơn nữa.
Bước 4: Điều chỉnh phần mềm Python
giữ nguyên. nhiều hơn nữa để đến.
Đề xuất:
Theo dõi & theo dõi các cửa hàng nhỏ: 9 bước (có hình ảnh)
Theo dõi & theo dõi cho các cửa hàng nhỏ: Đây là một hệ thống dành cho các cửa hàng nhỏ được cho là gắn vào xe đạp điện hoặc xe tay ga điện tử để giao hàng trong phạm vi ngắn, ví dụ như một tiệm bánh muốn giao bánh ngọt. Theo dõi và theo dõi nghĩa là gì? Theo dõi và theo dõi là một hệ thống được sử dụng bởi ca
Bộ dụng cụ theo dõi xe ô tô tự làm bằng rô bốt thông minh Theo dõi ô tô cảm quang: 7 bước
Tự làm bộ dụng cụ theo dõi rô bốt thông minh theo dõi ô tô Theo dõi ô tô cảm quang: Thiết kế bởi SINONING ROBOT Bạn có thể mua từ rô bốt theo dõi ô tô ChipLM393 so sánh hai điện trở quang, khi có một đèn LED cảm quang một bên TRẮNG thì bên của động cơ sẽ dừng ngay lập tức, bên kia của động cơ quay lên, để
Cách thiết lập môi trường lập trình AVR trên Linux: 5 bước
Cách thiết lập Môi trường lập trình AVR trên Linux: Nếu bạn muốn lập trình vi điều khiển AVR trên Windows, bạn có một Studio nhưng trên Linux, tất cả những gì chúng ta có là Dude .AVRDUDE là giao diện dòng lệnh để lập trình chip AVR, có thể hơi phức tạp để thiết lập lúc đầu. Trong Hướng dẫn này, tôi sẽ là
Theo dõi thời tiết M5Stack M5stick C dựa trên ESP32 với DHT11 - Theo dõi nhiệt độ độ ẩm & chỉ số nhiệt trên M5stick-C với DHT11: 6 bước
Theo dõi thời tiết M5Stack M5stick C dựa trên ESP32 với DHT11 | Theo dõi nhiệt độ độ ẩm và chỉ số nhiệt trên M5stick-C Với DHT11: Xin chào các bạn, trong phần hướng dẫn này, chúng ta sẽ học cách giao tiếp cảm biến nhiệt độ DHT11 với m5stick-C (một bảng phát triển của m5stack) và hiển thị nó trên màn hình của m5stick-C. Vì vậy, trong hướng dẫn này, chúng ta sẽ đọc nhiệt độ, độ ẩm & nhiệt tôi
Hướng dẫn lập trình thú vị cho nhà thiết kế - Kiểm soát quy trình chương trình- Tuyên bố vòng lặp: 8 bước
Hướng dẫn lập trình thú vị cho nhà thiết kế - Điều khiển quy trình chương trình- Tuyên bố vòng lặp: Điều khiển quy trình chương trình- Tuyên bố vòng lặp Từ chương này, bạn sẽ tiếp xúc với một điểm kiến thức quan trọng và mạnh mẽ - Câu lệnh vòng lặp. Trước khi đọc chương này, nếu bạn muốn vẽ 10.000 vòng tròn trong chương trình, bạn chỉ có thể thực hiện với một