GY-86 모듈은 10-DOF(10 Degrees of Freedom) IMU(Inertial measurement unit : 관성측정장치) 센서 보드로 MPU6050(3축 자이로 + 3축 가속도) + HMC5883L(3축 자계) + MS5611(대기 압력) 센서의 조합으로 9축의 Pitch, Roll, Yaw 데이터와 고도계(대기 압력) 데이터를 제공되어 이러한 데이터를 사용하여 멀티위/멀티콥터 등의 자세 제어 목적으로 많이 사용되고 있습니다.
GY-86 모듈 보드의 간략한 특징은 아래와 같습니다.
10DOF modules (3축 자이로 + 3축 가속도 + 3축 지자계 + 대기압력) Sensor : MPU6050 + HMC5883L + MS5611 gyroscope range: ±250, ±500, ±1000, and ±2000°/sec Acceleration range: ±2g, ±4g, ±8g, ±16g HMC5883L: Measuring range: ± 1~8 Gauss. Power supply :3-5v Interface : I2C Weight: 1.46g Size: 22 x 17mm |
자세한 내용은 아래는 관련 부품의 데이터 시트입니다.
MPU6050 : https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Datasheet1.pdf
HMC5883L : https://media.digikey.com/PDF/Data%20Sheets/Honeywell%20PDFs/HMC5883L.pdf
MS5611 : https://www.amsys-sensor.com/downloads/data/MS5611-01BA03-AMSYS-datasheet.pdf
아래와 같은 외형을 가지고 있으며 아두이노 보드와 I2C 통신을 위한 2개의 라인과 전원(+5V, GND) 2개의 라인 총 4개의 라인만 연결시키면 간단히 테스트가 가능합니다.
쉽게 사용하기 위해서 아래와 같은 서브 보드를 만들었습니다.
이런 식으로 ISP 포트에 꽂아서 사용합니다. (ISP 포트를 사용하는 것이 아니고 단지 꽂아서 사용하는 용도로 이용합니다.)
아래 FreeIMU 사이트에서 FreeIMU-20121122_1126.zip 파일을 다운로드 받습니다.
다운로드한 zip 파일을 압축을 해제하면 arduino 관련 라이브러리와 processing 관련 GUI 예제가 제공됩니다.
아래 아두이노 관련 라이브러리를 아두이노 IDE에 설치합니다.
라이브러리 설치하는 방법은 여기를 참고하시면 됩니다.
라이브러리 설치가 완료되었으면 FreeIMU에서 제공되는 FreeIMU_serial 예제를 불러온 후 아두이노 보드에 업로드를 합니다.
processing 설치는 아래 게시글을 참고해 주시기 바랍니다.
processing을 실행하여 FreeIMU에서 제공되는 FreeIMU_cube.pde 예제를 불러옵니다.
불러온 예제 파일에서 아두이노 ide에서 사용하는 COM 포트로 변경 후 실행해 봅니다.
/* 아래와 같이 수정합니다. */
//final String serialPort = "/dev/ttyUSB9";
final String serialPort = "COM9"; /* 아두이노 IDE에서 사용하는 COM 포트 */
아래와 같은 에러가 발생됩니다.
제공된 예제가 구버전이라서 에러가 발생되는데 아래와 같이 수정후 재실행해 봅니다.
/* 아래와 같이 수정합니다.*/
//size(VIEW_SIZE_X, VIEW_SIZE_Y, OPENGL);
size(800, 600, P3D);
정상적으로 실행이 되며 GY-86에서 제공되는 데이터를 읽어 들여 3D 큐브 형태로 보여줍니다.
아래는 아두이노 UNO와 GY-86 모듈을 사용하여 FreeIMU를 테스트한 동영상입니다.
'Hardware > Arduino ( AVR )' 카테고리의 다른 글
이글 캐드용 SK6805-EC15 라이브러리 작성하기 (0) | 2021.09.12 |
---|---|
SK6805-EC15 LED 구매 및 동작 테스트 (0) | 2021.08.30 |
[AVR] ATmega fusebit Doctor로 Fuse 복구하기 (0) | 2021.07.08 |
[ATTiny13] GPIO를 사용한 LED blink 테스트 (0) | 2021.05.07 |
[ATTiny13] 소프트웨어 환경 설정 (2) | 2021.04.25 |
댓글