ARDUINO-lgoo

ARDUINO GY87 결합 센서 테스트 스케치

ARDUINO-GY87-결합-센서-테스트-스케치-제품

소개

열렬한 제작자나 로봇 애호가라면 이 작지만 강력한 모듈을 접했을 것입니다. 열렬한 제작자나 로봇 애호가라면 이 작지만 강력한 모듈인 BMP085 기압계를 접했을 것입니다. GY-87 IMU 모듈은 자체 균형 로봇이나 쿼드콥터와 같은 프로젝트에 동작 감지를 추가하는 좋은 방법입니다.
그러나 GY-87 IMU 모듈로 실험을 시작하기 전에 Arduino 보드와 인터페이스하는 방법을 알아야 합니다. 그것이이 블로그가 들어오는 곳입니다! 다음 단락에서는 GY-87 IMU 모듈의 기본 사항, 설정 방법, 센서 데이터를 읽기 위해 Arduino 코드를 작성하는 방법을 다룰 것입니다. 또한 일반적인 문제를 해결하기 위한 몇 가지 팁과 리소스를 제공합니다.
따라서 시작할 준비가 되었으면 GY-87 IMU 모듈과 Arduino의 인터페이스에 대해 자세히 알아보십시오!

GY-87 IMU MPU6050은 무엇입니까

GY-87과 같은 관성 측정 장치(IMU) 모듈은 MPU6050 가속도계/자이로스코프, HMC5883L 자력계 및 BMP085 기압 센서와 같은 많은 센서를 단일 패키지에 결합합니다. 따라서 GY-87 IMU MPU6050은 9축 자이로스코프, 3축 가속도계, 3축 자력계 및 디지털 모션 프로세서를 결합한 올인원 3축 모션 추적 모듈입니다. 방향과 동작을 정확하게 측정하고 추적할 수 있기 때문에 쿼드콥터 및 기타 무인 항공기(UAV)와 같은 로봇 프로젝트에서 많이 사용됩니다. 내비게이션, 게임 및 가상 현실과 같은 다른 응용 프로그램에서도 사용됩니다.

하드웨어 구성 요소

Arduino와 GY-87 IMU MPU6050 HMC5883L BMP085 모듈을 인터페이스하려면 다음 하드웨어가 필요합니다.

구성 요소 수량
아두이노 우노 1
MPU6050 센서 모듈 GY-87 1
브레드보드 1
점퍼 와이어 1

GY-87 아두이노 

이제 GY-87을 이해했으므로 Arduino와 인터페이스할 시간입니다. 그렇게 하려면 GY-87을 이해했으므로 이제 Arduino와 인터페이스할 시간입니다. 그렇게 하려면 다음을 따르십시오.

개략도

아래 주어진 회로도에 따라 연결하십시오.

GY-87 IMU MPU6050 HMC5883L BMP085 아두이노ARDUINO-GY87-결합-센서-테스트-스케치-그림 1배선 / 연결

아두이노 MPU6050 센서
5V (주)비씨씨
접지 접지
A4 재림교회
A5 에스에이(SCA)

아두이노 IDE 설치 

먼저 공식 사이트에서 Arduino IDE 소프트웨어를 설치해야 합니다. web사이트 아두이노. 다음은 "Arduino IDE 설치 방법"에 대한 간단한 단계별 가이드입니다.

라이브러리 설치 

코드 업로드를 시작하기 전에 /Program에서 다음 라이브러리를 다운로드하고 압축을 풉니다. Files(x86)/Arduino/Libraries(기본값) Arduino 보드와 함께 센서를 사용하기 위해. 다음은 "Arduino IDE에서 라이브러리를 추가하는 방법"에 대한 간단한 단계별 가이드입니다.

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_단순

암호 

이제 다음 코드를 복사하여 Arduino IDE 소프트웨어에 업로드합니다.

#포함 "I2Cdev.h" #포함 "MPU6050.h" #포함 #포함하다 MPU085 가속 자이로; Adafruit_BMP5883 bmp; HMC6050L_간단한 나침반; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 부울 깜박임 상태 = 거짓; 무효 설정() { Serial.begin(16); Wire.begin(); // 장치 초기화 Serial.println("I13C 장치 초기화 중..."); // 초기화 bmp9600 if (!bmp.begin()) { Serial.println(“유효한 BMP2 센서를 찾을 수 없습니다. 확인하십시오(!bmp.begin()) { Serial.println(“유효한 BMP085 센서를 찾을 수 없습니다. check Serial.println(accelgyro.testConnection() ? “MPU085 연결 성공” : “MPU085 연결 실패”); accelgyro.setI6050CBypassEnabled(true); // 게이트웨이의 바이패스 모드를 hmc6050L로 설정 // hmc2l 초기화 Compass.SetDeclination(5883, 5883, 'E');나침반.세트Samp링모드(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // 활동 확인을 위해 Arduino LED 구성 pinMode(LED_PIN, OUTPUT); } 무효 루프() {
Serial.print("온도 = "); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print("압력 = ");
Serial.print(bmp.readPressure()); Serial.println("Pa"); // '표준' 기압을 가정하여 고도 계산 // 기압 1013.25밀리바 = 101325 파스칼 Serial.print("고도 = "); Serial.print(bmp.readAltitude()); Serial.println("미터"); Serial.print("해수면 압력(계산됨) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print("실제 고도 = "); Serial.print(bmp.readAltitude(101500));
Serial.println("미터"); // 장치 accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz)에서 원시 가속/자이로 측정값 읽기; // 탭으로 구분된 가속/자이로 x/y/z 값 표시 Serial.print(“a/g:\t”); Serial.print(ax);
Serial.print("\t"); Serial.print(ay); Serial.print("\t"); Serial.print(az);
Serial.print("\t"); Serial.print(gx); Serial.print("\t"); Serial.print(gy);
Serial.print("\t"); Serial.println(gz); 플로트 표제 =
Compass.GetHeadingDegrees(); Serial.print("제목: \t"); Serial.println( 제목 ); // 활동을 나타내기 위해 LED를 깜박임 blinkState = !blinkState;
digitalWrite(LED_PIN, 깜박임상태); 지연(500); }

그것을 테스트하자 

코드를 업로드하면 회로를 테스트할 시간입니다! Arduino 프로그램의 코드는 라이브러리를 사용하여 센서와 인터페이스하므로 센서 데이터를 읽고 센서의 다양한 구성을 설정할 수 있습니다. 그런 다음 직렬 포트를 통해 센서 데이터를 인쇄합니다. LED는 회로가 무언가를 하고 있음을 나타내는 데 사용됩니다. 즉, 루프 기능이 실행될 때마다 LED가 깜박이며 코드가 센서 값을 적극적으로 읽고 있음을 나타냅니다.

작업 설명 

코드는 회로 작동의 기반이 되는 주요 항목입니다. 이제 코드를 이해해 봅시다.

  • 첫째, 센서와 인터페이스하기 위한 여러 라이브러리가 포함되어 있습니다.
  • "I2Cdev.h" 및 "MPU6050.h"는 MPU6050 6축 가속도계/자이로스코프 센서용 라이브러리입니다.
  • "Adafruit_BMP085.h"는 BMP085 기압 센서용 라이브러리입니다.
  • “HMC5883L_Simple.h”는 HMC5883L 자력계 센서용 라이브러리입니다.
  • 그런 다음 MPU6050 accelgyro, Adafruit_BMP085 bmp 및 HMC5883L_Simple Compass의 세 가지 센서에 대한 전역 객체를 생성합니다.
  • 다음으로 MPU6050의 가속도계에 대한 ax, ay, az와 같은 센서 값을 저장하고 HMC5883L의 자력계에 대한 향하는 몇 가지 변수를 정의합니다. 그리고 LED_PIN 상수와 blinkState 변수를 정의합니다.
  • setup() 함수는 직렬 통신을 시작하고 I2C 통신을 시작합니다. 그런 다음 세 개의 센서를 초기화합니다.
  • BMP085 센서는 begin() 메서드를 호출하여 초기화됩니다. 이것이 센서를 찾을 수 없음을 나타내는 false를 반환하면 프로그램은 무한 루프에 들어가 직렬 포트를 통해 오류 메시지를 인쇄합니다.
  • MPU6050 센서는 initialize() 메서드를 호출하고 올바르게 작동하는지 확인하여 초기화됩니다. 그리고 MPU2에 대해 활성화된 I6050C 바이패스를 설정합니다.
  • HMC5883L 센서는 SetDeclination, SetS와 같은 일부 함수를 호출하여 초기화됩니다.amplingMode, SetScale 및 SetOrientation - 센서에 대해 다른 구성을 설정합니다.
  • loop() 함수에서 코드는 세 개의 센서에서 데이터를 읽고 직렬 포트를 통해 출력합니다.
  • 센서에서 해수면의 온도, 압력, 고도 및 압력을 읽습니다.
  • MPU6050 센서에서 원시 가속도 및 자이로스코프 측정값을 읽습니다.
  • 센서가 가리키는 방향과 자북이 있는 방향 사이의 각도인 HMC5883L 센서에서 방향을 읽습니다.
  • 마지막으로 LED를 깜박여 활동을 표시하고 센서를 다시 읽기 전에 잠시 기다립니다.

문서 / 리소스

ARDUINO GY87 결합 센서 테스트 스케치 [PDF 파일] 사용자 매뉴얼
GY87 결합 센서 테스트 스케치, GY87, 결합 센서 테스트 스케치, 센서 테스트 스케치, 테스트 스케치

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *