メカ徒然日記
とある工学屋のブログ.鳥人間とかプログラミングとか.
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


mbedでMPU6050
mbedでジャイロ3軸、加速度3軸のMPU-6050(InvenSense)の乗ったボード
が動いたので報告。なんと買ったときはなんと600円。お安い。乗ってるセンサはこれ。

I2Cなので注意。

テストにはLPC1768とStarBoardOrangeを使用しました。

LPC1768(青mbed)の
9番ピンをsda
10番ピンをsclと結線。
ad0(アドレス指定用ピン)をGNDに接続。
VCCはmbedのVOut
GNDはmbedのGNDに接続。
IMG_1754_R.png
念のためsda,scl端子はプルアップ。

http://mbed.org/users/Sissors/code/MPU6050/docs/5c63e20c50f3/classMPU6050.html
このクラスを使用しますがアドレスが違うようなので書き直す。

MPU6050.hの

MPU6050_ADDRESS 0x69 を

MPU6050_ADDRESS 0x68 に変更。

コードはこんな感じ。
TextLCDMPU6050のライブラリは各自用意のこと。

#include "mbed.h"
#include "TextLCD.h"
#include "MPU6050.h"
#include < string >
#define N 3
TextLCD lcd(p24,p26,p27,p28,p29,p30);//rs,e,d0,d1,d2,d3
MPU6050 mpu(p9,p10);//sda,scl


void PrintFloatN(const float data[N],string name)
{
lcd.printf(name.c_str());
for(int i = 0; i < N ; i++ ) {
lcd.printf("%4.1f",data[i]);
}
lcd.printf("\n");
}

int main()
{
float acc[N];
float gyro[N];
//initialize

for(int i = 0; i < N ; i++ ) {
acc[i] = 0;
gyro[i] = 0;
}


while(true) {
//update
mpu.getAccelero(acc);
mpu.getGyro(gyro);

//draw
lcd.cls();
PrintFloatN(acc,"acc");
PrintFloatN(gyro,"gyro");
wait(0.1);
}
}
スポンサーサイト



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。