MPU6050 : Arduino를 사용한 포지셔닝 용 모듈

MPU6050 보드

프로젝트를 만들고 배치해야하는 경우, 즉 어떻게 배치되어 있습니까 공간과 관련하여 모듈을 사용할 수 있습니다. MPU6050. 즉,이 모듈은 6 자유도 (DoF)를 갖는 관성 측정 단위 또는 IMU (관성 측정 단위)입니다. 이는 3 축 가속도계 유형 센서와 작동하도록 구현 된 3 축 자이로 스코프 덕분입니다.

이 MPU6050은 포함하는 객체가 응용 프로그램 내비게이션, 각도 측정, 안정화, 제스처 제어 등 휴대 전화에는 일반적으로 제스처를 통해 특정 기능을 제어하는 ​​이러한 유형의 센서가 포함됩니다.

가속도계와 자이로 스코프 란 무엇입니까?

MEMS 예

MEMS 예

글쎄, 부분적으로 가자. 첫 번째는 이러한 유형의 센서가 무엇인지 확인하는 것입니다. 가속과 회전을 감지 할 수 있습니다., 자신의 이름에서 추론 할 수 있습니다.

  • acelerómetro: 가속도, 즉 단위 시간당 속도 변화를 측정합니다. 물리학에서 시간에 따른 속도 변화 (a = dV / dt)는 가속도의 정의입니다. 뉴턴의 제 XNUMX 법칙에 따르면, 우리는 또한 a = F / m이고 가속도계가 작동하는 데 사용하는 것입니다. 즉, 물체의 힘과 질량의 매개 변수를 사용합니다. 이를 전자 기기에서 구현할 수 있도록 MEMS에서 기계 부품이 생성되기 때문에 기존의 전자 칩 제조 기술과 다른 MEMS (Micro Electro Mechanical Systems) 기술이 사용됩니다. 이 경우 가속도를 측정 할 수있는 트랙 또는 요소가 생성됩니다. 이것은 속도 (가속도가 시간에 통합 된 경우), 다시 통합되면 변위 등 다른 많은 단위를 사용할 수 있음을 의미합니다. 즉, 물체의 위치를 ​​알거나 움직임을 감지하는 매우 흥미로운 매개 변수입니다.
  • 자이로 스코 우프: 자이로 스코프라고도하며 물체의 각속도, 즉 단위 시간당 각도 변위 또는 물체가 축을 중심으로 회전하는 속도를 측정하는 장치입니다. 이 경우 MEMS 기술은 Coriolis로 알려진 효과를 사용하여 상기 속도를 측정하는데도 사용됩니다. 이로 인해 각속도를 측정하거나 시간에 대한 각속도를 적분하여 각 변위를 구할 수 있습니다.

MPU6050 모듈

MPU6050 핀아웃

이제 가속도계와 자이로 스코프가 무엇인지 알았으니 MPU6050 모듈 이 두 요소를 통합 한 전자 기판으로 요소 위치의 이러한 변화를 측정하여 반응을 일으킬 수 있습니다. 예를 들어, 물체가 움직일 때 LED가 켜지거나 다른 훨씬 더 복잡한 것들이 있습니다.

내가 말했듯이, 그것은 6 개의 자유 축, DoF, 3 축 X, Y, Z 가속도계 및 기타 3 축 자이로 스코프 각속도를 측정합니다. 모듈을 배치하는 방식과 측정을위한 회전 방향에서 실수하지 않도록 고려해야합니다. 잘못된 부호를 만들면 약간 혼란 스러울 수 있기 때문입니다. 축의 방향을 지정하는 다음 이미지를보십시오 (그러나 PCB 자체에도 한면에 인쇄 됨).

데이터 시트 MPU6050

이것을 고려하고 핀아웃, 어느 정도 MPU6050 사용을 시작할 수있는 모든 것이 명확합니다. 이전 이미지에서 볼 수 있듯이 연결이 매우 간단하고 I2C 통신이 Arduino를 포함한 대부분의 마이크로 컨트롤러와 호환 될 수 있습니다. SCL 및 SDA 핀에는 Arduino 보드에 직접 연결하기위한 풀업 저항이 보드에 있으므로 직접 추가 할 필요가 없습니다.

I2C 버스에서 양방향으로 작업하려면 다음을 사용할 수 있습니다. 핀 및 방향:

  • AD0 = 1 또는 높음 (5v) : I0C 주소 69x2의 경우.
  • AD0 = 0 또는 낮음 (GND 또는 Nc) : I0C 버스의 주소 68x2 용.

모델의 작동 전압은 3v3이지만 다행스럽게도 레귤레이터가 내장되어있어 문제없이 Arduino의 5v와 호환되며 3.3v로 변환됩니다.

그건 그렇고, GND에 대한 내부 저항이 있기 때문에이 핀이 연결되지 않은 경우 주소 기본적으로 0x68입니다., 기본적으로 지구에 연결되므로 논리 0으로 해석됩니다.

Arduino와 통합

Arduino 및 MPU6050 연결

당신은 얻을 수 있습니다 I2C 버스에 대한 자세한 정보 이 기사에서. Arduino 보드에 따라 버스에 사용되는 핀이 다양하다는 것을 이미 알고 있지만 Arduino UNO 아날로그 핀 A4 및 A5, SDA (데이터) 및 SCL (시계) 용 각기. 보드에 전원을 공급하는 5v 및 GND와 함께 사용해야하는 유일한 Arduino 핀입니다. 따라서 연결은 가능한 한 간단합니다.

MPU6050의 기능에 대해이 링크에서 더 많은 정보를 얻을 수있는 라이브러리를 사용할 수 있습니다. I2C 모듈과 버스의 MPU6050.

Arduino 보드 프로그래밍은 MPU6050에서 너무 간단하지 않으므로 초보자에게는 적합하지 않습니다. 또한 가속도의 한계 또는 각도 범위를 알고 있으면 정확한 움직임 또는 가속이 무엇인지 확인하기 위해 보정 할 수 있습니다. 그러나 적어도 그것을 사용하는 방법에 대한 예제를 가질 수 있도록이 코드는 Arduino IDE의 스케치 예 가속도계와 자이로 스코프에 의해 기록 된 값을 읽습니다.

// Bibliotecas necesarias:
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Wire.h"

// Dependiendo del estado de AD0, la dirección puede ser 0x68 o 0x69, para controlar así el esclavo que leerá por el bus I2C
MPU6050 sensor;

// Valores RAW o en crudo leidos del acelerometro y giroscopio en los ejes x,y,z
int ax, ay, az;
int gx, gy, gz;

void setup() {
  Serial.begin(57600);    //Función para iniciar el puerto serie con 57600 baudios
  Wire.begin();           //Inicio para el bus I2C 
  sensor.initialize();    //Iniciando del sensor MPU6050

  if (sensor.testConnection()) Serial.println("Sensor iniciado correctamente");
  else Serial.println("Error al iniciar el sensor");
}

void loop() {
  // Leer las aceleraciones y velocidades angulares
  sensor.getAcceleration(&ax, &ay, &az);
  sensor.getRotation(&gx, &gy, &gz);

  // Muestra las lecturas que va registrando separadas por una tabulación 
  Serial.print("a[x y z] g[x y z]:\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);

  delay(100);
}

초보자이고 잘 모르는 경우 Arduino IDE로 프로그래밍하는 방법이것은 이해하기 어려울 것이므로 무료로 Arduino 프로그래밍 입문 과정을 통해 매뉴얼을 참조 할 수 있습니다.


코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.