1. MPU6050 6축센서 소개

 

  MPU6050 6축센서는 물체의 자세와 움직임을 계측하기 위한 센서로서  X,Y,Z 세방향 가속도측정을 위한 3축 가속도센서와 X,Y,Z 세방향 3축 자이로센서 그리고 온도센서 총 7개의 센서로 구성된 센서이다. 자세와 회전을 측정하기 위한 센서에 온도센서가 포함되어 있는 것은 센서의 측정값이 온도에 영항을 받기 떄문에 이를 보정하기 위한 용도인데 일반적인 온도에서는 편차가 거의 없기 때문에 통상 온도값은 사용하지 않는다.  비슷한 용도의 9축센서도 있는데 이것은 6축센서에 지자기센서(나침반과 같은 지구자기센서) 3축을 더한 센서이다. 이 MPU6050센서칩을 기반으로 보드형태로 모듈화 해 놓은 것이 GY-521 모듈이다.

 

2. MPU6050 PIN배열  및 아두이노와의 연결

 

 

 

 

MPU6050의 핀배열은 위와 같고 외부기기와의 접속은 I2C방식 이다. 즉 아두이노 나노일 경우  I2C 통신용 핀이 A4,A5이므로 다음과 같이 연결해 주면 된다. 

 

아두이노 기종들 중  나노 이외의 다른 기종의 I2C 통신용 핀은 다음과 같으므로 해당 핀에 연결해 주면 된다.

 

 3. 라이브러리 설치  

 

별도의 라이브러리 없이도 I2C 방식으로 전송되는 RAW데이터 값을 받을 수는 있다. 그러나 의미있는 측정값으로 사용하려면 라이브러리를 설치하여 RAW데이터를 변환해서 받아야 한다. MPU6050용 라이브러리는 종류가 많이 있으나 간편하게 아두이노IDE내의 라이브러리매니저를 이용해서 설치하는 방법을 설명한다.    

스케치->라이브러리 설치하기 -> 라이브러리관리를 선택해서 라이브러리 매니저화면을 호출한 후 MPU6050를 입력해서 검색하면 여러가지 MPU6050관련 라이브러리들이 나오는데 그 중 두번째 것을 선택하여 설치하면 된다.  

 

 4. 샘플프로그램 

 

라이브러리를 설치하고 파일 -> 예제 메뉴에서 MPU6050 관련 샘플에서 MPU6050_DMP6 샘플프로그램을 로드한다.

샘플프로그램을 UPLOAD하 Serial Monitor로 확인해 보면 다음과 같이 "시작하려면 임의의 키를 누르라"고 표시되는데 시리얼 모니터 입력창에 임의의 문자를 입력하고 엔터키를 누르면 센서작동이 시작된다.  

잠시후 작업이 시작되고 다음과 같이 Calibration을 위한 Offset 측정치가 표시된다.  

 

위 숫자를 다음과 같이 샘플프로그램 205 ~209 Line 부분을 찾아

 

다음과 같이 수정하여 넣어 주고 다시 upload한다.  

 

센서모듈을 움직여 보면 다음과 같이 변화되어 측정되는 것을 시리얼모니터로 확인해 볼 수 있다. 

 

여기에서 ypr은 Yaw, Pitch, Roll의 의미로서 물체가 어느 축을 중심으로 어느 만큼 회전되었는를 의미한다. 

 

센서에서 측정되는 값은 x,y,z축 가속도와 자이로 센서값이지만 위와 같이 Yaw,Pitch,Roll값으로 변환하여 볼 수 있다. 만약 다른 형태로 측정값을 변환하여 보고 싶다면 샘플 프로그램 87 ~ 120 번째  Line사이의 주석처리를 조정하면 된다. 즉 샘플프로그램 초기 상태는 103번째줄 #define OUTPUT_READABLE_YAWPITCHROLL 이 선택되어 있는데 가속도값을 직접 보고 싶다면  이 103번째줄을 //로 주석처리하고     116번째 줄 //#define OUTPUT_READABLE_WORLDACCEL 문장의 //부분을 지워 선택하면 된다. 

 

 

구매좌표 :  

 

아두이노 GY-521 3축(6축) 자이로 가속도센서 모듈

 

nefing.com

 

+ Recent posts