MPU6050 센서는 단일 칩에 대해 많은 기능을 가지고 있습니다. MEMS 가속도계, MEMS 자이로 및 온도 센서로 구성됩니다. 이 모듈은 각 채널에 대해 16 비트 아날로그-디지털 변환기 하드웨어를 가지고 있기 때문에 아날로그 값을 디지털로 변환하는 동안 매우 정확합니다. 이 모듈은 x, y 및 z 채널을 동시에 캡처 할 수 있습니다. 호스트 컨트롤러와 통신하기위한 I2C 인터페이스가 있습니다. 이 MPU6050 모듈은 가속도계와 자이로를 모두 갖춘 소형 칩 입니다. 이것은 드론, 로봇, 모션 센서와 같은 많은 응용 분야에 매우 유용한 장치입니다. 자이로 스코프 또는 삼축 가속도계 라고도 합니다.
오늘이 기사에서는 이 MPU6050 자이로 스코프를 Arduino 와 인터페이스 하고 16x2 LCD 이상의 값을 보여줄 것입니다.
필수 구성 요소:
- Arduino Uno
- MPU-6050
- 10K POT
- 점퍼 와이어
- 브레드 보드
- USB 케이블
- 전원 공급
MPU6050 자이로 센서:
MPU-6050 은 단일 칩에있는 8 핀 6 축 자이로 및 가속도계입니다. 이 모듈은 기본적으로 I2C 직렬 통신에서 작동하지만 레지스터를 구성하여 SPI 인터페이스에 대해 구성 할 수 있습니다. I2C의 경우 SDA 및 SCL 라인이 있습니다. 거의 모든 핀이 다기능이지만 여기서는 I2C 모드 핀으로 만 진행합니다.
핀 구성:
Vcc:- 이 핀은 접지와 관련하여 MPU6050 모듈에 전원을 공급하는 데 사용됩니다.
GND:- 이것은 접지 핀입니다.
SDA: -SDA 핀은 컨트롤러와 mpu6050 모듈 간의 데이터에 사용됩니다.
SCL: -SCL 핀은 클럭 입력에 사용됩니다.
XDA:- 외부 센서를 구성하고 읽는 센서 I2C SDA 데이터 라인입니다 ((선택 사항) 우리의 경우에는 사용되지 않습니다)
XCL:- 외부 센서를 구성하고 읽기위한 센서 I2C SCL 클록 라인입니다 ((선택 사항) 우리의 경우에는 사용되지 않음)
ADO: -I2C 슬레이브 주소 LSB (이 경우에는 해당되지 않음)
INT:- 데이터 준비 표시를위한 인터럽트 핀.
기술:
이 기사에서는 Arduino와 함께 MPU6050을 사용하여 LCD 를 통한 온도, 자이로 및 가속도계 판독 값을 보여줍니다. 이 모듈은 출력에서 행 값과 정규화 된 값을 제공하지만 행 값은 안정적이지 않으므로 여기에서는 LCD를 통해 정규화 된 값을 보여줍니다. 가속도계 값만 원하는 경우 Arduino와 함께 Accelerometer ADXL335를 사용할 수도 있습니다.
이 프로젝트에서는 먼저 LCD에 온도 값 을 표시 하고 10 초 후에 자이로 값 을 표시 하고 10 초 후에는 아래 이미지와 같이 가속도계 판독 값 을 얻습니다.
회로도 및 설명:
MPU6050과 Arduino를 연결하기위한 회로도 는 매우 간단합니다. 여기에서는 LCD와 MPU6050을 사용했습니다. 여기에서는 노트북 USB 전원 공급 장치를 사용했습니다. 10k 포트는 LCD의 밝기를 제어하는 데 사용됩니다. MPU6050과 관련하여 3.3v 전원 공급 장치와 MPU6050의 접지를 Arduino의 3.3v 및 접지에 연결 한 5 개의 연결을 수행했습니다. MPU6050의 SCL 및 SDA 핀은 Arduino의 A4 및 A5 핀과 연결됩니다. 그리고 MPU6050의 INT 핀은 Arduino (D2)의 인터럽트 0에 연결됩니다. LCD의 RS, RW, EN은 Arduino의 8, gnd, 9에 직접 연결됩니다. 데이터 핀은 디지털 핀 번호 10, 11, 12 및 13에 직접 연결됩니다.
프로그래밍 설명
이 프로젝트에서는 프로그래밍 부분도 쉽습니다. 여기에서는이 MPU6050 라이브러리를 사용하여 Arduino와 인터페이스했습니다. 따라서 먼저 GitHub에서 MPU6050 라이브러리를 다운로드하여 Arduino IDE에 설치해야합니다.
그 후에 예제에서 예제 코드를 찾을 수 있습니다. 사용자는 해당 코드를 Arduino에 직접 업로드하여 테스트 할 수 있으며 직렬 모니터를 통해 값을 볼 수 있습니다. 또는 사용자는 기사 끝에 제공된 코드를 사용하여 LCD 및 직렬 모니터에도 값을 표시 할 수 있습니다.
코딩에는 MPU6050 및 LCD와 같은 일부 필수 라이브러리가 포함되어 있습니다.
#포함
에서 설정 기능, 우리는 두 장치 초기화 LCD 이상 및 쓰기 환영 메시지
void setup () {lcd.begin (16,2); lcd.createChar (0, degree); Serial.begin (9600); Serial.println ("MPU6050 초기화"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("장치를 찾을 수 없음"); Serial.println ("유효한 MPU6050 센서를 찾을 수 없습니다. 배선을 확인하십시오!"); 지연 (500); } 개수 = 0; mpu.calibrateGyro (); mpu.setThreshold (3); 루프 기능 에서는 온도, 자이로, 가속도계 판독 값 을 LCD 에 표시하기 위해 10 초마다 3 개의 기능을 호출했습니다. 이 세 가지 함수는 tempShow, gyroShow 및 accelShow 입니다.이 기사의 끝에 제공된 전체 Arduino 코드에서 해당 함수를 확인할 수 있습니다.
void loop () {lcd.clear (); lcd.print ("온도"); long st = millis (); Serial.println ("온도"); while (밀리 ()
MPU6050 자이로와 가속도계는 모두 모든 장치의 위치와 방향을 감지하는 데 사용됩니다. 자이로는 지구 중력을 사용하여 x, y 및 z 축 위치를 결정하고 가속도계는 움직임의 변화 속도를 기반으로 감지합니다. 우리는 이미 다음과 같은 많은 프로젝트에서 Arduino와 함께 가속도계를 사용했습니다.
- 가속도계 기반 손 제스처 제어 로봇
- Arduino 기반 차량 사고 경보 시스템
- Arduino를 사용한 지진 감지기 경보