Kết quả 31 đến 40 của 41
-
02-18-2014, 07:25 AM #31Silver member
- Ngày tham gia
- Apr 2016
- Bài viết
- 0
cho mình hỏi động cơ của bạn có tích hộp sẵn giảm tốc,encoder không?
-
03-27-2014, 06:05 AM #32Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình thấy con này chạy rất ổn định. Mình đang làm 1 đề tài cũng liên quan đến cảm biến 6 trục này. Bạn có thế chia sẻ cho mình code để đọc và lọc dữ liệu không? Nếu được xin gửi vào mail: lvdinh.tvtsth@gmail.com. Cám ơn bạn rất nhiều.
-
04-10-2014, 08:13 PM #33Silver member
- Ngày tham gia
- Feb 2016
- Bài viết
- 0
Lâu lắm rồi mình mới lên diễn đàn. Mình cứ tưởng thread này bị lãng quên rồi, không ngờ vẫn có nhiều người quan tâm vậy. Bạn nào có câu hỏi gì cứ đăng lên, nếu trả lời được thì mình sẽ trả lời, hỗ trợ ...
-
04-10-2014, 08:28 PM #34Silver member
- Ngày tham gia
- Apr 2016
- Bài viết
- 0
Gửi bởi lon888
- Đọc giá trị từ cảm biến: gyro_x, gyro_y, gyro_z, acc_x, acc_y, acc_z
- Sử dụng các công thức toán, vật lý tính ra giá trị góc
+ Với gyro thì tính giá trị gyro_x_rate, gyro_y_rate, gyro_z_rate (lần lượt là vận tốc góc trên 3 trục)
gyro_x_rate = (gyro_x-gyro_x_zeo)/sensitivity (gyro_x_zero: là giá trị cố định đo 1 lần của cảm biến, sensitivity là độ nhạy của cảm biến-đọc datasheet)
+ Với gia tốc thì tính giá trị acc_x_angle, acc_y_angle, acc_z_angle (lần lượt là giá trị góc trên 3 trục)
acc_x_angle = acc_x_angle=(180/PI)*atan(acc_y/sqrt(acc_x*acc_x+acc_z*acc_z));
Sau khi tính được như vậy sử dụng bộ lọc Kalman để lọc lấy giá trị góc tham khảo bộ lọc kalman tại đấy nhé:
Example-Sketch-for-IMU-including-Kalman-filter/IMU6DOF/MPU6050/Kalman.h at master · TKJElectronics/Example-Sketch-for-IMU-including-Kalman-filter · GitHub
Sử dụng hàm getAngle của bộ lọc để lọc lấy góc:
getAngle(acc_x_angle, gyro_x_rate, dtime);
acc_x_angle: là góc tính được từ trục x của gia tốc
gyro_x_rate: là tốc độ góc tính được từ trục x của gyro
dtime : là thời gian lấy mẫu, thời gian đáp ứng của MPU6050 là 100Hz tương ứng 10ms (sử dụng timer tạo ra 1 vòng lặp 10ms để đưa vào lọc góc)
Ví dụ 1 vòng lặp 10ms như sau:
Mã:float system_loop_time(void) { /*********************** Timing Kalman Filter **************************/ lastLoopUsefulTime = milis() - loopStartTime;//[ms] while(lastLoopUsefulTime < STD_LOOP_TIME) { _delay_ms(STD_LOOP_TIME-lastLoopUsefulTime); //[ms] } dtime = (float)(milis() - loopStartTime)/1000; // loopStartTime = milis(); return dtime; }
=============
BQT: bạn cần cho code vào thẻ code
-
04-12-2014, 06:50 AM #35Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cám ơn bạn đã hướng dẫn. Mình sẽ tìm hiểu theo cách của bạn xem sao
-
08-14-2014, 04:40 AM #36Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi kim jong
giải thích giup mình được không!
thanks ban!
-
08-14-2014, 05:04 AM #37Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
có thể gửi cho mình xin tài liệu của cậu đã làm rồi không?
mail của mình la: nguyenthietmta@gmail.com
-
11-28-2014, 05:39 PM #38Silver member
- Ngày tham gia
- Jan 2016
- Bài viết
- 0
Chào bạn, bạn có thể cho mình xin code được không ?? cám ơn nhiều.
-
12-11-2014, 08:18 AM #39Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi dragon1991
-
12-24-2014, 08:01 PM #40Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Giá trị của gyro_x_zero được mình lấy trung bình khoảng 500 lần, và mình cố định nó luôn như vậy (ví dụ: sau khi lấy trung bình 500 lần giá trị của gyro_x thì mình gán cho gyro_x_zero bằng luôn giá trị đó)
Bán dụng cụ tình yêu cho les loại...
Hôm qua, 08:53 PM in Rao vặt tổng hợp