Embedded/Arduino

MPU-9250 기울기 센서 + 아두이노 나노 연동 2편

변화의 물결1 2024. 1. 21. 00:05

 

 

안녕하세요.

 

 오늘은 지난번 MPU-9250 HW 편에 이어,  MPU 9250 프로그래밍 소스 관련해서 한번 확인해 보려고 합니다. 우선 인터넷에서 검색해 본 결과 3가지 정도로 소스 형태가 있는 듯했습니다.

 

  첫 번째로 기본값(RAW)을 바로 출력해 주는 소스

  두 번째로 실제 모듈 값을 저역통과 필터와 상보 필터 등 이용해서 진동에 취약한 부분을 보완한 소스

  세 번째로 하드웨어에서 지원해 주는 DMP(Digital Motion Processing)를 사용하는 방법이 있었습니다.

 

  - 확인하는 방법은 첫 번째와 세 번째 공개된 소스를 참조해서 작동해 보도록 하겠습니다.


 

1. 배  선

 

 - 연동 1편에서와 동일하게 하고 추가로 아두이노 나노의 D2(INT 0)라고 적힌 곳과 MPU-9520에 INT라고 적힌 곳을 점퍼와 연결해 줍니다.

 

<1 편 배선 참조>

https://remnant24c.tistory.com/41?category=807430   

 

 

 

2. MPU-9250 프로그램 소스 확인

 

  - 이번에는 인터넷에 소스를 공유해 주신 분들의 것을 이용해서 동작하는 것을 확인해 보도록 하겠습니다. (이렇게 해주셔서 조금 쉽게 접근할 수 있는 듯합니다. 감사합니다. ^^)

 

  1) RAW 데이터값 확인 

 

MPU9250_raw.zip
0.04MB

 

 

  - 첨부파일을 다운로드하여서 압축을 풀고, 아두이노 프로그램에서 MPU9250_raw.ino 실행시킵니다. 그리고 컴파일과 아두이노로 다운로드시킵니다.

   

   - 다운이 다 되었다면,  툴->시리얼 모니터, 통신속도 38400bps 실행시키면 정상적으로 값이 수치들이 올라옵니다. 그러나 이 값을 바로 사용할 수는 없을 것입니다. 민감하게 반응하기 때문에 보정이 필요합니다.

 

 

 

 2) DMP 적용된 프로그램 소스

 

MPU9250_DMP6.zip
0.06MB

 

- 소스가 조금 어렵게 되어 있습니다. 그래서 분석을 하려면 시간을 조금 필요할 것 같습니다. 실행을 하면 바로 실행이 되는 것이 아니라 시리얼 모니터에서 아무 값하나를 입력해서 아두이노 나노로 전달하면 인터럽트 신호를 받고 기울기 데이터를 보내주기 시작합니다.

  (통신속도는 115,200bps 으로 바꿔 주어야 글자가 깨지지 않습니다.)

 

 

  - 바로 컴파일해서 출력하면 한 줄로 쭉 출력되기 때문에 출력하는 부분에 println(“”) 등 보기 편하게 수정을 한번 해서 출력하시면 됩니다.

 

  - 출력 결과를 보면 YAW, PITCH, ROLL로 나타나고 있습니다.

 

 

 

참  고

  - MPU-9250을 3개를 구매했는데, 지자기 센서가 맞지 않아 사용을 못 한 제품이 있었습니다. 혹시 확인하시는 분도 된다면 DMP 소스를 가지고 실행하기 전 스마트폰 나침반 앱으로 북쪽이 어디 인지 확인 후  Yaw 값이 0과 대략 방향이 맞는지 확인하시면 좋을 것 같습니다.

 

 

<소스 참고 사이트>

 

1) MPU9520 - RAW 데이터 소스

 https://m.blog.naver.com/PostView.nhn?blogId=eduino&logNo=220887867791&proxyReferer=https:%2F%2Fwww.google.com%2F

 

2) MPU9520 - DMP 데이터 소스

 https://orcacode.tistory.com/entry/MPU9250-9%EC%B6%95-%EC%84%BC%EC%84%9C-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EC%99%80-%EC%82%AC%EC%9A%A9%EB%B2%95

 

반응형