본문 바로가기

Hardware/Arduino and Friends

아두이노에서 자이로, 가속도 센서 MPU6050 테스트

저는 아주 예전에 자이로센서나 가속도센서로 실험을 꽤 했던 적이 있습니다. 그 때가 아마 7~8년 전인 것 같습니다. 그렇게 해서 2009년 6월경 자이로센서와 가속도센서를 융합해서 각도를 측정하는 방법인 상보필터라는 개념을 블로그에 포스팅[바로가기]했었죠~^^ 그리고, 다시 그로부터 몇 년 후 학교를 졸업하고, 첫 직장에 과분하게도 연구소장[바로가기]이라는 직함을 받으면서 진행했던 초반부 작품으로 각도 측정 모듈을 출시[바로가기]했었습니다. 지금 생각해보면, 제품 개발의 프로세스도 모르면서 그냥 뭐 이렇게 하면 되겠지하고 막연히 밀어부친.. 무책임한 제품이었습니다. 갑자기 이불킥이라도 하고 싶네요ㅠㅠ. 아무튼 그리고나서 이런류의 제품들은 사라져 갔던 것 같습니다. 왜냐면 칩 chip 레벨에서 이미 너무 좋은 제품이 많이 나오고 또 오픈소스로 좋은 코드를 많이 구할 수 있기 때문이지요. 그러다가 최근 자이로센서와 가속도센서가 하나로 합쳐져 있는 InvenSense의 MPU6050이라는 칩을 포함한 GY-86이라는 모듈을 테스트할 기회가 있었는데요...

잘 생겼죠?^^ 이 아이를 아두이노에서 테스트를 했습니다.~~ 그냥 I2C로 통신하는 아이라 Raw 데이터를 직접 받아도 되지만... 라이브러리를 찾아보았습니다. 그랬더니... i2cDev라고, i2c 통신을 사용하는 센서의 오픈소스 라이브러리를 제공해주는 정말 멋진 분들의 모임이 나타나더군요~

와우.. 이곳[바로가기]에서 한동안 공부를 좀 해야겠더라구요~ 아무튼...

그곳에서 MPU6050을 찾았습니다.[바로가기]

거기서 예제폴더[바로가기]에 먼저 들어가봤는데요.. 오늘은 저기서 MPU6050_raw와 MPU6050_DMP6를 실행해봤죠~~

아참... 클래서 reference 페이지[바로가기]도 잘 가지고 있어야죠^^

그리고 [바로가기] github 페이지에서는 다양한 제품을 타겟으로 mpu6050라이브러리를 제공하고 있었습니다. 그 중 아두이노

페이지에서 MPU6050을 선택하고 난 후 나타난 페이지[바로가기]를 받아서 아두이노폴더의 라이브러리폴더에 넣어두면 됩니다. 그리고, 파일->예제->MPU6050_raw를 열면 되죠~~

그리고, 아두이노 우노에서는 우노의 SCL, SDA는 각각 GY86과 물리고, 전압은 5V를 v-in에 넣었습니다. GND도 연결하고, INTA를 우노의 D2핀에 넣었습니다. 다음 예제에서 필요하거든요^^

아무튼 저렇게 연결합니다. 아.. 디폴트로 i2c로 접근하는 어드레스는 0x68입니다. AD0에 High를 걸면 0x69로 접근할 수 있다고 하네요^^

그리고~~

시리얼 모니터로 받은 값들입니다. 자이로 3개, 가속도 3개의 값이죠^^

이제.. MPU6050_DMP6 예제를 돌렸습니다.

아~ 그전에 코드 117번줄 근처에 있는 OUTPUT_TEAPOT의 define을 주석 해제해 주어야 합니다.

그리고, 예제가 있는 폴더에 보면 Processing이라는 폴더가 있는데요...

그 안에... MPUTeapot.pde 파일이 있습니다. 우와~ 방갑더라구요^^ 한때, Processing 포스팅 많이 했었는데 말이죠^^[바로가기] 아무튼 이 아이를 실행하면...

Processing IDE가 실행되고... PC에서 각도 측정 모듈을 테스트해볼 수 있는

화면이 나타납니다. 참 대단한 세상입니다. 이런걸 단지 데모만으로 구경해 볼 수 있다니요~~^^ 아래는 테스트 장면입니다.~~


반응형