Mục lục:
- Bước 1: Tại sao nên sử dụng đơn vị đo lường quán tính?
- Bước 2: Làm thế nào để Sử dụng BNO055 cho Bản địa hóa 2D?
- Bước 3: Điểm phần cứng của Vue
- Bước 4: Nó hoạt động như thế nào?
- Bước 5: Kiến trúc và phần mềm
- Bước 6: Tôi đã học được gì?
Video: Cách sử dụng đơn vị đo lường quán tính ?: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Bối cảnh:
Tôi đang xây dựng cho niềm vui một robot mà tôi muốn di chuyển tự động trong một ngôi nhà.
Đó là một công việc dài và tôi đang làm từng bước một.
Tôi đã xuất bản 2 hướng dẫn về chủ đề đó:
- một về cách tạo một bộ mã hóa bánh xe
- một về kết nối wifi
Robot của tôi được điều khiển bằng 2 động cơ DC với sự hỗ trợ của bộ mã hóa bánh xe do tôi sản xuất.
Tôi hiện đang cải thiện khả năng điều khiển chuyển động và đã dành một khoảng thời gian với con quay hồi chuyển, gia tốc kế và IMU. Tôi rất vui được chia sẻ kinh nghiệm này.
Bạn muốn biết thêm về bản địa hóa? Đây là bài viết về cách kết hợp trí tuệ nhân tạo và sóng siêu âm để khoanh vùng robot
Bước 1: Tại sao nên sử dụng đơn vị đo lường quán tính?
Vậy tại sao tôi lại sử dụng IMU?
Lý do đầu tiên là nếu bộ mã hóa bánh xe đủ chính xác để điều khiển chuyển động thẳng, thì ngay cả sau khi chạy dao, tôi vẫn không thể có được độ chính xác khi quay nhỏ hơn + - 5 độ và điều đó là không đủ.
Vì vậy, tôi đã thử 2 cảm biến khác nhau. Đầu tiên tôi sử dụng một từ kế (LSM303D). Nguyên tắc rất đơn giản: trước khi quay, hãy lấy hướng bắc, tính toán mục tiêu và điều chỉnh việc di chuyển cho đến khi đạt được mục tiêu. Nó tốt hơn một chút so với bộ mã hóa nhưng quá phân tán. Sau đó, tôi đã thử sử dụng con quay hồi chuyển (L3GD20). Nguyên tắc chỉ là tích hợp tốc độ quay do cảm biến cung cấp để tính toán chuyển động quay. Và nó hoạt động tốt. Tôi đã có thể kiểm soát vòng quay ở + - 1 độ.
Tuy nhiên, tôi vẫn tò mò muốn thử một số IMU. Tôi chọn một thành phần BNO055. Tôi đã dành một chút thời gian để hiểu và kiểm tra IMU này. Cuối cùng, tôi quyết định chọn cảm biến này vì những lý do sau
- Tôi có thể điều khiển xoay cũng như với L3GD20
- Tôi có thể phát hiện ra chuyển động quay nhẹ khi di chuyển thẳng
- Tôi cần lấy hướng bắc để bản địa hóa rô bốt và hiệu chỉnh la bàn của BNO055 rất đơn giản
Bước 2: Làm thế nào để Sử dụng BNO055 cho Bản địa hóa 2D?
BNO055 IMU là cảm biến thông minh 9 trục của Bosch có thể cung cấp khả năng định hướng tuyệt đối.
Biểu dữ liệu cung cấp một tài liệu đầy đủ. Nó là một thành phần công nghệ cao, nó là một sản phẩm khá phức tạp và tôi đã dành vài giờ để tìm hiểu cách hoạt động của nó và thử các cách sử dụng khác nhau.
Tôi nghĩ rằng nó có thể hữu ích để chia sẻ kinh nghiệm này.
Đầu tiên, tôi đã sử dụng thư viện Adafruit cung cấp một công cụ tốt để hiệu chỉnh và khám phá cảm biến.
Cuối cùng và sau rất nhiều thử nghiệm, tôi quyết định
- sử dụng thư viện Adafruit chỉ để lưu hiệu chuẩn
- sử dụng 3 trong số tất cả các chế độ có thể có của BNO055 (NDOF, IMU, Compss)
- cung cấp Arduino Nano để tính toán bản địa hóa dựa trên các mesurments BNO055
Bước 3: Điểm phần cứng của Vue
BNO055 là một thành phần I2C. Vì vậy, nó cần nguồn điện, SDA và SCL để giao tiếp.
Chỉ cần quan tâm đến điện áp Vdd theo sản phẩm bạn đã mua. Chip Bosch hoạt động trong phạm vi: 2.4V đến 3.6V và bạn có thể tìm thấy thành phần 3.3v và 5v.
Không có khó khăn khi kết nối Nano và BNO055.
- BNO055 được cung cấp bởi Nano
- SDA & SCL được kết nối với điện trở kéo lên 2 x 2k.
- 3 LED kết nối với Nano để chẩn đoán (có điện trở)
- 2 đầu nối được sử dụng để xác định chế độ sau khi khởi động
- 1 đầu nối hướng tới BNO (Gnd, Vdd, Sda, Scl, Int)
- 1 đầu nối hướng tới Robot / Mega (+ 9V, Gnd, sda, Scl, Pin11, Pin12)
Một chút hàn và thế là xong!
Bước 4: Nó hoạt động như thế nào?
Từ điểm giao tiếp của vue:
- Nano là bus chính I2C
- Robot / Mega và BNO055 là nô lệ I2C
- Nano đọc vĩnh viễn các thanh ghi BNO055
- Robot / Mega tăng tín hiệu số để yêu cầu từ đó từ Nano
Từ điểm tính toán của vue: Nano kết hợp với BNO055 mang lại
- Tiêu đề la bàn (được sử dụng để bản địa hóa)
- Một tiêu đề tương đối (được sử dụng để điều khiển các phép quay)
- Tiêu đề và vị trí tuyệt đối (được sử dụng để điều khiển các bước di chuyển)
Từ điểm chức năng của vue: Nano:
- quản lý hiệu chuẩn BNO055
- quản lý các tham số và lệnh BNO055
Hệ thống con Nano & BNO055:
- tính toán cho mỗi bánh xe rô bốt tiêu đề và bản địa hóa tuyệt đối (với hệ số tỷ lệ)
- tính toán tiêu đề tương đối trong quá trình quay của rô bốt
Bước 5: Kiến trúc và phần mềm
Phần mềm chính đang chạy trên Arduino Nano
- Kiến trúc dựa trên giao tiếp I2C.
- Tôi đã chọn dành một Nano vì thực tế là Atmega chạy robot đã được tải khá nhiều và kiến trúc này giúp dễ dàng sử dụng lại ở những nơi khác.
- Nano đọc các thanh ghi BNO055, tính toán và lưu trữ tiêu đề và bản địa hóa trong các thanh ghi của chính nó.
- Arduino Atmega chạy mã robot, gửi thông tin mã hóa bánh xe đến Nano và đọc các tiêu đề và bản địa hóa bên trong thanh ghi Nano.
Có mã subytem (Nano) ở đây trên GitHub
Công cụ hiệu chuẩn Adafruit nếu ở đây trên GitHub (hiệu chuẩn sẽ được lưu trữ trên eeproom)
Bước 6: Tôi đã học được gì?
Về I2C
Đầu tiên, tôi đã cố gắng có 2 chủ (Arduino) và 1 phụ (cảm biến) trên cùng một bus nhưng cuối cùng thì có thể và dễ dàng nhất chỉ đặt Nano làm chính và sử dụng kết nối GPIO giữa 2 Arduinos để "yêu cầu mã thông báo".
Về BNO055 cho định hướng 2D
Tôi có thể tập trung vào 3 chế độ chạy khác nhau: NDOF (kết hợp con quay hồi chuyển, gia tốc kế và Compas) khi robot không hoạt động, IMU (kết hợp con quay hồi chuyển, gia tốc kế) khi robot đang di chuyển và La bàn trong giai đoạn bản địa hóa. Chuyển đổi giữa các chế độ này rất dễ dàng và nhanh chóng.
Để giảm kích thước mã và giữ cho khả năng bạn sử dụng ngắt BNO055 để phát hiện xung đột, tôi không muốn sử dụng thư viện Adafruit và tự làm điều đó.
Đề xuất:
Cách xây dựng máy tính chơi game hoặc máy tính cơ bản (Tất cả các thành phần): 13 bước
Làm thế nào để xây dựng một máy tính chơi game hoặc cơ bản (Tất cả các thành phần): Vì vậy, bạn muốn biết làm thế nào để xây dựng một máy tính? Trong Tài liệu hướng dẫn này, tôi sẽ dạy bạn cách xây dựng một máy tính để bàn cơ bản. Dưới đây là các bộ phận bắt buộc phải có: Bo mạch chủ Vỏ máy tính (Đảm bảo rằng đó là PGA nếu AMD và LGA nếu Intel) Quạt tản nhiệt cho Vỏ máy tính CPU Pow
Lựa chọn 7 ngày: Cách tách khỏi lực lượng không quân: 22 bước
Lựa chọn 7 ngày: Cách tách khỏi Lực lượng Không quân: Hướng dẫn này trình bày từng bước bằng hình ảnh cách một sĩ quan Không quân có thể nộp đơn xin rời khỏi Lực lượng Không quân theo lựa chọn 7 ngày. " Thực hiện tùy chọn 7 ngày " hoặc " chọn trong 7 ngày " có nghĩa là nộp đơn xin tách khỏi Lực lượng Không quân vì
Hướng dẫn: Cách xây dựng mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X bằng cách sử dụng Arduino UNO: 3 bước
Hướng dẫn: Cách xây dựng Mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X bằng cách sử dụng Arduino UNO: Mô tả: Hướng dẫn này sẽ hiển thị chi tiết cho tất cả các bạn về cách xây dựng máy dò khoảng cách bằng cách sử dụng Mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X và Arduino UNO và nó sẽ chạy giống như bạn muốn. Làm theo hướng dẫn và bạn sẽ hiểu gia sư này
Xây dựng bộ đọc âm lượng xe tăng với giá dưới 30 đô la bằng cách sử dụng ESP32: 5 bước (có hình ảnh)
Xây dựng Bộ đọc khối lượng xe tăng với giá dưới 30 đô la Sử dụng ESP32: Internet of Things đã đưa rất nhiều ứng dụng thiết bị phức tạp trước đây vào nhà của nhiều nhà sản xuất rượu và nấu rượu thủ công. Các ứng dụng với cảm biến mức đã được sử dụng trong nhiều thập kỷ trong các nhà máy lọc dầu lớn, nhà máy xử lý nước và hóa chất
Cách xây dựng ngân hàng điện năng lượng mặt trời sử dụng pin của Dead Mobile: 4 bước
Cách xây dựng ngân hàng điện dựa trên năng lượng mặt trời sử dụng pin của Dead Mobile: Dự án này là ngân hàng điện dựa trên năng lượng mặt trời tại nhà với việc sử dụng pin của điện thoại di động đã chết. Chúng tôi có thể sử dụng bất kỳ loại pin nào tương đương với pin di động với cùng một sơ đồ. Bảng điều khiển năng lượng mặt trời sẽ sạc pin và chúng ta có thể sử dụng năng lượng của pin để sạc