소개
3축자이로 센서와 3축 가속도 센서가 하나로 통합된 MPU6050 칩을 사용한 센서 모듈 입니다. I2C 인터페이스를 사용합니다.
사양
- Power: 3.0V to 5.0V
Item | Gyroscope | Accelerometer |
---|---|---|
Interface | I2C interface | I2C interface |
Startup | 100 ms | 100 ms |
Max range | ±2000 d/s | ±16G |
Min range | ±250 d/s | ±2G |
Resolution(Max) | 16.4 LSB/(degree/s) | 2048 LSB/(degree/s) |
Resolution(Min) | 131 LSB/(degree/s) | 16384 LSB/(degree/s) |
Update rate | 4 ~ 8000 hz | 4 ~ 1000 hz |
명령
INIT
모듈을 초기화합니다.
항목 | 타입 | 설명 |
---|---|---|
Accel full scale | WRITE | 가속도 센서 측정범위(Full scale)를 선택합니다. (±2g,±4g,±8g,±16g) |
Gyro full scale | WRITE | 자이로 센서 측정범위(Full scale) 를 선택합니다. (±250dps,±500dps,±1000dps,±2000dps) |
GET_RAW_DATA
가속도, 자이로의 Raw 값과 온도를 읽어옵니다.
항목 | 타입 | 설명 |
---|---|---|
Accel X (g) | READ | 가속도 x축 |
Accel Y (g) | READ | 가속도 y축 |
Accel Z (g) | READ | 가속도 z축 |
Gyro X (deg/s) | READ | 자이로 x축 |
Gyro Y (deg/s) | READ | 자이로 y축 |
Gyro Z (deg/s) | READ | 자이로 z축 |
온도 (℃) | READ | 온도 |
GET_YAW_PITCH_ROLL
Yaw, Pictch, Roll 를 계산합니다.MPU6050은 지자기센서가 없으므로 Yaw값은 계속 오차가 발생하는 것이 정상입니다.(drift)
항목 | 타입 | 설명 |
---|---|---|
Yaw (º) | READ | Yaw 각도 |
Pitch (º) | READ | Pitch 각도 |
Roll (º) | READ | Roll 각도 |
이 명령의 실행주기는 가급적 작게 설정해야 합니다. (예: 10ms) 실행주기가 길수록 값의 오차도 비례하여 커집니다.
CALIBRATION
캘리브레이션을 수행하고 측정된 편차(bias)를 출력합니다.
항목 | 타입 | 설명 |
---|---|---|
Accel bias X (g) | READ | 가속도 편차 x축 |
Accel bias Y (g) | READ | 가속도 편차 y축 |
Accel bias Z (g) | READ | 가속도 편차 z축 |
Gyro bias X (deg/s) | READ | 자이로 편차 x축 |
Gyro bias Y (deg/s) | READ | 자이로 편차 y축 |
Gyro bias Z (deg/s) | READ | 자이로 편차 z축 |
SET_BIAS
캘리브레이션을 통해 출력된 편차(bias)를 센서에 적용합니다.
항목 | 타입 | 설명 |
---|---|---|
Accel bias X (g) | WRITE | 가속도 편차 x축 |
Accel bias Y (g) | WRITE | 가속도 편차 y축 |
Accel bias Z (g) | WRITE | 가속도 편차 z축 |
Gyro bias X (deg/s) | WRITE | 자이로 편차 x축 |
Gyro bias Y (deg/s) | WRITE | 자이로 편차 y축 |
Gyro bias Z (deg/s) | WRITE | 자이로 편차 z축 |
SELF_TEST
셀프 테스트를 수행합니다.
예제
부품
부품 | 갯수 |
---|---|
MPU6050 | 1 |
연결
MPU6050 | GPIO |
---|---|
VCC | 3.3V |
GND | GND |
SCL ¹ | 3 (I2C1 SCL) |
SDA ¹ | 2 (I2C1 SDA) |
AD0 ² | 연결안함 |
¹ 하드웨어 I2C 핀 (GPIO 2,3)에 연결합니다. 소프트웨어 (bit-bang) 인터페이스 사용시 임의의 핀을 사용할 수도 있습니다.
² 연결하지 않으면 I2C주소는 0x68, 3.3V에 연결하면 0x69 (모듈 제조사에 따라 다를 수 있음)
² 연결하지 않으면 I2C주소는 0x68, 3.3V에 연결하면 0x69 (모듈 제조사에 따라 다를 수 있음)
프로젝트
캘리브레이션
- 초기명령에 캘리브레이션 추가
- 모듈을 평평한 곳에 위치한 뒤에 RUN모드 진입
- 캘리브레이션을 통해 얻은 편차(bias)를 기록해 둠
- 초기명령에 SET_BIAS를 추가하고 편차를 입력
- 초기명령에 캘리브레이션 삭제