Mục lục:

Đo góc bằng con quay hồi chuyển, gia tốc kế và Arduino: 5 bước
Đo góc bằng con quay hồi chuyển, gia tốc kế và Arduino: 5 bước

Video: Đo góc bằng con quay hồi chuyển, gia tốc kế và Arduino: 5 bước

Video: Đo góc bằng con quay hồi chuyển, gia tốc kế và Arduino: 5 bước
Video: Arduino | Cảm biến gia tốc góc nghiêng MPU6050 2024, Tháng mười một
Anonim
Đo góc bằng con quay hồi chuyển, gia tốc kế và Arduino
Đo góc bằng con quay hồi chuyển, gia tốc kế và Arduino

Thiết bị này là một nguyên mẫu thô của thứ cuối cùng sẽ trở thành một robot tự cân bằng, đây là phần thứ hai của thứ lỗ (đọc gia tốc kế và điều khiển một động cơ để tự cân bằng). Phần đầu tiên chỉ có con quay hồi chuyển có thể được tìm thấy ở đây. Trên phần hướng dẫn này, chúng tôi sẽ đo góc bằng cách sử dụng cả con quay hồi chuyển và gia tốc kế, đồng thời sử dụng kỹ thuật kết hợp cả hai cảm biến để có được tín hiệu mượt mà. Kỹ thuật này được gọi là "bộ lọc bổ sung".previous

Bước 1: Những gì chúng ta cần:

Những gì chúng ta cần
Những gì chúng ta cần
Những gì chúng ta cần
Những gì chúng ta cần
Những gì chúng ta cần
Những gì chúng ta cần
Những gì chúng ta cần
Những gì chúng ta cần

Một số bộ phận có thể được thay thế và một số sửa đổi ở mã phải được thực hiện để phù hợp với phần cứng của bạn. Trong dự án này, chúng tôi sẽ sử dụng: - Breadboard- Vi điều khiển, tôi đã sử dụng Arduinoboard- Wire- Jumper Wires- Con quay hồi chuyển XV-8100- Nunchuck Wii (cho gia tốc kế) - Bộ điều hợp Nunchuck Wii cho Arduino

Bước 2: Xây dựng…

Xây dựng…
Xây dựng…
Xây dựng…
Xây dựng…
Xây dựng…
Xây dựng…

Mạch bao gồm một con quay hồi chuyển được kết nối trực tiếp với cổng 0 tại arduino của bạn và một wii nunchuck kết nối tại cổng I2C. - cắm con quay hồi chuyển tại breadboard2. - dây từng điều: - Chân Vo từ con quay hồi chuyển kết nối với cổng analog0 tại arduino (Dây màu cam nhạt) - Chân G từ con quay hồi chuyển nối đất (Dây trắng) - Chân V + từ con quay nối với Vdd (3.3V) (Dây màu cam) Lắp ráp gia tốc kế: 1. - cắm bộ chuyển đổi vào nunchuck2. - cắm nunchuck vào arduino bằng bộ chuyển đổi3. - đặt cảm biến accel như hình trên

Bước 3: Một số thông tin bổ sung trước khi chúng tôi tiếp tục

Một số thông tin bổ sung trước khi chúng tôi tiếp tục
Một số thông tin bổ sung trước khi chúng tôi tiếp tục
Một số thông tin bổ sung trước khi chúng tôi tiếp tục
Một số thông tin bổ sung trước khi chúng tôi tiếp tục
Một số thông tin bổ sung trước khi chúng tôi tiếp tục
Một số thông tin bổ sung trước khi chúng tôi tiếp tục

Từ cả hai cảm biến, chúng ta có thể đo góc nhưng sử dụng hai kỹ thuật riêng biệt. Để đo góc bằng con quay hồi chuyển, chúng ta phải tích hợp tín hiệu. Nhưng tại sao chúng ta phải làm điều này? Bởi vì con quay hồi chuyển cung cấp cho chúng ta tốc độ góc, do đó, một cách đơn giản để có được góc là lấy tốc độ góc nhân với thời gian [angle = angle + w * dt] Để đo góc bằng gia tốc kế, chúng ta phải cảm nhận được lực hấp dẫn trong mỗi trục của gia tốc kế, ý nghĩa của nó, hình chiếu của gia tốc trọng trường lên mỗi hướng của cảm biến cho chúng ta một ý tưởng về góc. [angle_accel = arctg (Ay / sqrt (Ax ^ 2 + Az ^ 2))] Vậy tại sao chúng ta lại sử dụng hai cảm biến thay vì một? Để tận dụng lợi thế của cả hai thuộc tính cảm biến. Nếu bạn nhìn vào đồ thị, dữ liệu con quay hồi chuyển tăng liên tục, điều này được gọi là sự trôi dạt và dữ liệu gia tốc kế thay đổi rất nhiều tại một thời điểm nhỏ. Và làm thế nào để hợp nhất cả hai tín hiệu? Chúng ta sẽ sử dụng một kỹ thuật gọi là bộ lọc bổ sung. Tôi không biết lý thuyết chính xác đằng sau điều này, nhưng nó hoạt động tốt. Có một số thông tin trên internet, chỉ cần google nó nếu bạn cần thêm thông tin. Liên kết này có rất nhiều thông tin và có thể hữu ích.filtered_angle = HPF * (filter_angle + w * dt) + LPF * (angle_accel); trong đó HPF + LPF = 1 Có thể tìm thấy các giá trị của HPF và LPF tại liên kết này, trên tệp filter.pdf. Cảm ơn các bạn từ "The DIY Segway". Chỉ với mục đích thử nghiệm, chúng tôi sẽ đặt các giá trị này như thế này, HPF = 0,98 và LPF = 0,02.

Bước 4: Mã:

Mã này là một bản chuyển thể từ mã mà tôi đã sử dụng trong một dự án khác. Có thể có một số biến không được sử dụng. Tôi đã sử dụng một thư viện để đọc dữ liệu nunchuck từ https://todbot.com/blog/. Cảm ơn bạn Tod E. Kurt. Các bình luận về mã bằng tiếng Bồ Đào Nha, ngay khi rảnh mình sẽ dịch nó. Đầu ra mã vạch ra dòng sê-ri một số số có mẫu này: dt: w: teta: pitch: filter_teta $ time: angle_velocity: gyro_angle: accel_angle: filter_angle $ Vì vậy, bạn có thể lưu các giá trị này tại một thiết bị đầu cuối nối tiếp và vẽ đồ họa hoặc sử dụng góc cho những thứ khác. đã được nén lại. Chỉ cần giải nén, mở và tải nó lên arduino của bạn.

Bước 5: Kiểm tra và kết luận

Thử nghiệm và Kết luận
Thử nghiệm và Kết luận
Thử nghiệm và Kết luận
Thử nghiệm và Kết luận

Để kiểm tra hệ thống, tôi đã lưu dữ liệu bằng một chương trình có tên là Termite, sau đó nhập dữ liệu này vào excel và vẽ biểu đồ để xem bộ lọc của tôi tốt như thế nào. Kết quả thật tuyệt vời. Tất nhiên bạn có thể sử dụng tín hiệu để điều khiển động cơ hoặc những thứ khác.

Đề xuất: