MPU6050 6축 자이로 가속도 센서
일반
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 |
사용 가능한 GPIO
- 라즈베리파이 0~4
- 라즈베리파이 5
- 비글본 블랙/그린
- 젯슨 나노
- FT232H, FT2232H, FT4232H
- MCP2221
명령
[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]
셀프 테스트를 수행합니다.
예제
목표
센서의 Yaw, Pitch, Roll 값을 대시보드의 위젯에 표시합니다. 센서를 움직여서 값이 변화는지 확인합니다.
부품
부품 | 갯수 |
---|---|
라즈베리파이 4 * | 1 |
MPU6050 | 1 |
* 다른 하드웨어를 사용할 수도 있습니다. 사용 가능한 GPIO를 참고하세요.
연결
MPU6050 | GPIO |
---|---|
VCC | 3.3V |
GND | GND |
SCL | 3 (I2C1 SCL) |
SDA | 2 (I2C1 SDA) |
AD0 * | 연결 안함 |
* 연결하지 않으면 I2C주소는 0x68, 3.3V에 연결하면 0x69 (모듈 제조사에 따라 다를 수 있음)

프로젝트
캘리브레이션
- 모듈을 평평한 곳에 위치한 뒤에 캘리브레이션 수행
- 캘리브레이션을 통해 얻은 편차(bias)를 기록해 둠
- 초기명령의 SET_BIAS에 편차를 입력