Hướng dẫn lập trình mpu6050

  • Module Cảm biến 
  • Cảm biến góc và gia tốc 

Module cảm biến gia tốc GY-521 MPU6050 được sử dụng để đo 6 thông số: 3 trục Góc quay [Gyro], 3 trục gia tốc hướng [Accelerometer], là loại cảm biến gia tốc phổ biến nhất trên thị trường hiện nay, ví dụ và code dành cho nó rất nhiều và hầu như có trên mọi loại vi điều khiển, nếu bạn muốn mua cảm biến gia tốc GY-521 để làm các mô hình như con lắc động, xe tự cân bằng, máy bay,… thì MPU6050 sẽ là sự lựa chọn tối ưu.

THÔNG SỐ KỸ THUẬT:

  • Điện áp sử dụng: 3~5VDC
  • Điện áp giao tiếp: 3~5VDC
  • Chuẩn giao tiếp: I2C
  • Giá trị Gyroscopes trong khoảng: +/- 250 500 1000 2000 degree/sec
  • Giá trị Acceleration trong khoảng: +/- 2g, +/- 4g, +/- 8g, +/- 16g

 Schematic của GY-521:

Hướng dẫn sử dụng với Arduino:

Tải thư viện MPU6050_tockn

Code cho GY-521 MPU6050:

/***************************************************  Kết nối:            MPU6050                  UNO R3              MEGA              VIN                     5V                 5V              GND                     GND                GND              SCL                     A5                 SCL              SDA                     A4                 SDA  Nạp code mở Serial Monitor chọn No line ending, baud 9600. ****************************************************/ #include #include MPU6050 mpu6050[Wire]; void setup[] {  Serial.begin[9600];  Wire.begin[];  mpu6050.begin[];  mpu6050.calcGyroOffsets[true]; } void loop[] {  mpu6050.update[];  Serial.print["angleX : "];  Serial.print[mpu6050.getAngleX[]];  Serial.print["tangleY : "];  Serial.print[mpu6050.getAngleY[]];  Serial.print["tangleZ : "];  Serial.println[mpu6050.getAngleZ[]]; }DO

Tư vấn ngay

Mô-đun MPU6050


Mô-đun cảm biến MPU6050 là thiết bị theo dõi chuyển động 6 trục tích hợp.

  • Nó có một con quay hồi chuyển 3 trục, gia tốc kế 3 trục, bộ xử lý chuyển động kỹ thuật số và cảm biến nhiệt độ, tất cả trong một IC duy nhất.
  • Nó có thể chấp nhận đầu vào từ các cảm biến khác như từ kế 3 trục, một cảm biến áp suất sử dụng bus phụ I2C của nó.
  • Nếu từ kế 3 trục bên ngoài được kết nối, nó có thể cung cấp đầu ra Motion Fusion 9 trục hoàn chỉnh.
  • Một vi điều khiển có thể giao tiếp với mô-đun này bằng giao thức truyền thông I2C.
  • Con quay hồi chuyển và gia tốc đọc dọc theo trục X, Y và Z có sẵn trong dạng bổ sung của 2. Nhiệt độ đọc có sẵn ở dạng số nguyên đã ký.
  • Các chỉ số con quay hồi chuyển được tính bằng đơn vị độ / giây [dps]; Các chỉ số gia tốc kế theo đơn vị g; và nhiệt độ đọc là ở độ Celsius.


Lập trình PIC18F4550 cho MPU6050

Hãy giao diện và lập trình PIC18F4550 với mô-đun cảm biến MPU6050 [Gyro meter + Accelerometer + Temperature] để đọc tất cả các giá trị cảm biến và gửi tất cả các giá trị trên các đầu cuối máy tính qua USART.

  • Vì MPU-6050 có giao diện truyền thông I2C, chúng tôi đang kết nối nó với I2C của PIC18F4550.
  • Các mô-đun yêu cầu + 5V DC cung cấp điện, do đó, kết nối nó với VCC pin của một mô-đun.
  • Kết nối mặt đất với pin GND của một mô-đun.
  • Ở đây chúng tôi đã sử dụng FTDI nối tiếp để chuyển đổi USB để gửi các giá trị serially đến các thiết bị đầu cuối máy tính.

Giao diện PIC18F4550 với MPU6050

void MPU6050_Init[] { MSdelay[150]; I2C_Start_Wait[0xD0]; I2C_Write[SMPLRT_DIV]; I2C_Write[0x07]; I2C_Stop[]; I2C_Start_Wait[0xD0]; I2C_Write[PWR_MGMT_1]; I2C_Write[0x01]; I2C_Stop[]; I2C_Start_Wait[0xD0]; I2C_Write[CONFIG]; I2C_Write[0x00]; I2C_Stop[]; I2C_Start_Wait[0xD0]; I2C_Write[GYRO_CONFIG]; I2C_Write[0x18]; I2C_Stop[]; I2C_Start_Wait[0xD0]; I2C_Write[INT_ENABLE]; I2C_Write[0x01]; I2C_Stop[]; } void MPU_Start_Loc[] { I2C_Start_Wait[0xD0]; I2C_Write[ACCEL_XOUT_H]; I2C_Repeated_Start[0xD1]; } void main[] { char buffer[20]; int Ax,Ay,Az,T,Gx,Gy,Gz; float Xa,Ya,Za,t,Xg,Yg,Zg; OSCCON = 0x72; I2C_Init[]; MPU6050_Init[]; USART_Init[9600]; while[1] { MPU_Start_Loc[]; Ax = [[[int]I2C_Read[0]

Chủ Đề