Đọc cảm biến Waveshare IMU 10 DOF và hiển thị trên Matlab

Waveshare IMU 10 DOF

Bài viết này sẽ hướng dẫn các bạn đọc cảm biến Waveshare IMU 10 DOF bằng Arduino Uno và truyền dữ liệu lên Matlab để vẽ đồ thị theo thời gian thực.

Tính năng

  • MPU9255 : 3-axis gyroscope, 3-axis accelerometer, and 3-axis compass/magnetometer
      Internal Digital Motion Processing™ (DMP™) engine, offloads complicate fusion calculation, sensor synchronization, gesture recognition, etc.
      Internal Digital Motion Processing™ (DMP™) engine, offloads complicate fusion calculation, sensor synchronization, gesture recognition, etc.
      Comparing with MPU6050, the MPU9255 is lower power consumption, and more suitable for wearable devices
  • BMP180 : barometric pressure sensor
      Embedded temperature sensor for temperature compensation
  • You can get the 10 DOF data through I2C interface

Thông số kỹ thuật

  • Power : 3.3V~5.5V (internal voltage regulation with low dropout)
  • Accelerometer
      Resolution : 16 bit
      Measurement range (configurable) : ±2, ±4, ±8, ±16g
      Operating current : 450uA
  • Gyroscope
      Resolution : 16 bit
      Measurement range (configurable) : ±250, ±500, ±1000, ±2000°/sec
      Operating current : 3.2mA
  • Compass/Magnetometer
      Resolution (configurable) : 14 or 16 bit
      Measurement range : ±4800µT
      Operating current : 280uA
  • Barometric pressure sensor
      Resolution (configurable) : 16~19 bit
      Measurement range : 300~1100hPa (altitude : +9000m~-500m)
      Accuracy : 0.02hPa(0.17m)

Kết nối với Arduino

Sơ đồ đấu dây

Sơ đồ đấu dây với Arduino

Các bạn download code Arduino ở bên dưới bài viết (Code này có tích hợp giải thuật AHRS để xác định hướng của IMU, cái này mình download trên mạng và chỉnh sửa để hoạt động với cảm biến IMU mà mình có). Chi tiết các bạn có thể xem trong phần commnent trong code và tùy ý chỉnh sửa.

Một số phần mà mình đã thực hiện:

  • Tốc độ truyền 115200
  • Thời gian lấy mẫu 100Hz
  • Protocol truyền dữ liệu lên máy tính: [ax;ay;az;gx;gy;gz;mx;my;mz;Yaw;Pitch;Roll;/n . Đây là định dạng do mình quy ước, trên Matlab sẽ có đoạn code để phân tách dữ liệu

Real time plot Matlab

Đoạn chương trình dưới đây lấy dữ liệu từ protocol mà mình đã xác lập từ Arduino và vẽ đồ thị thời gian thực giá trị ax, hình dưới thể hiện kết quả nếu chạy thành công.

Serial Data Log

Serial Data Log

Đây là video demo của mình

Tiến Anh

Xin chào, tôi là Tiến Anh. Nội dung trên blog này là những chia sẽ kiến thức của tôi với hy vọng sẽ hữu ích cho mọi người.

You may also like...

Trả lời