2015年12月11日金曜日

MPU-6050三軸加速度三軸ジャイロセンサーモジュール

MPU-6050_V2.jpg
MPU-6050三軸加速度三軸ジャイロセンサモジュール

製品ウィキページに記載されていたTeaPotを使用し動作確認をしようとしたのですが,INVENSENSEでアカウントを作成しソフトを探したのですが,ページ内でTeaPotが見つからなかったため断念しました.
ですが,Arduinoのplayground(ここ)のshort example sketchを利用することでデータの取得には成功しました.

  1. // MPU-6050 Short Example Sketch
  2. // By Arduino User JohnChi
  3. // August 17, 2014
  4. // Public Domain
  5. #include<Wire.h>
  6. const int MPU_addr=0x68;  // I2C address of the MPU-6050
  7. int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
  8. void setup(){
  9.   Wire.begin();
  10.   Wire.beginTransmission(MPU_addr);
  11.   Wire.write(0x6B);  // PWR_MGMT_1 register
  12.   Wire.write(0);     // set to zero (wakes up the MPU-6050)
  13.   Wire.endTransmission(true);
  14.   Serial.begin(9600);
  15. }
  16. void loop(){
  17.   Wire.beginTransmission(MPU_addr);
  18.   Wire.write(0x3B);  // starting with register 0x3B (ACCEL_XOUT_H)
  19.   Wire.endTransmission(false);
  20.   Wire.requestFrom(MPU_addr,14,true);  // request a total of 14 registers
  21.   AcX=Wire.read()<<8|Wire.read();  // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)    
  22.   AcY=Wire.read()<<8|Wire.read();  // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
  23.   AcZ=Wire.read()<<8|Wire.read();  // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
  24.   Tmp=Wire.read()<<8|Wire.read();  // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)
  25.   GyX=Wire.read()<<8|Wire.read();  // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
  26.   GyY=Wire.read()<<8|Wire.read();  // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
  27.   GyZ=Wire.read()<<8|Wire.read();  // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)
  28.   Serial.print("AcX = "); Serial.print(AcX);
  29.   Serial.print(" | AcY = "); Serial.print(AcY);
  30.   Serial.print(" | AcZ = "); Serial.print(AcZ);
  31.   Serial.print(" | Tmp = "); Serial.print(Tmp/340.00+36.53);  //equation for temperature in degrees C from datasheet
  32.   Serial.print(" | GyX = "); Serial.print(GyX);
  33.   Serial.print(" | GyY = "); Serial.print(GyY);
  34.   Serial.print(" | GyZ = "); Serial.println(GyZ);
  35.   delay(333);
  36. }


MPU-6050はI2C通信なのでVCC,GND,SCL,SDAの4つの端子を使用することで,6軸と温度センサの役割を果たします.
電源にはレギュレータが乗っているので5Vをそのまま接続できます.

Arduinoの使用端子はアナログ入力端子A4(SDA),A5(SCL),VCC5V,GND



0 件のコメント:

コメントを投稿