「mbed」と「mbed Application Board」を使用して、内蔵されているMMA7660を使ってみます。
最終目標としては、得られた加速度(X,Y,Z)情報をLCDにリアルタイム表示するところまでやります。
・PC
・mbed Application Board
手順
(1)「MMA7660ライブラリ」をインポート
これはワークスペースで右クリックをし、ライブラリをインポートします。
(2) とりあえずヘッダファイル内に書いてある内容で動作確認してみる
これを実行すると、通常はLED2が点灯し、逆さまにするとLED3が点灯します。
これを確認することで、とりあえず加速度センサの値が取れていることがわかりました。
(3) main.cppプログラムを変更し、加速度(X,Y,Z)情報をリアルタイムでLCDに表示
先ほどの確認プログラムを見ると、Z軸加速度を取得するために「MMA.z()」を呼び出していることがわかる。
またヘッダファイル内を見ると、同様にしてX軸やY軸を取得できることがわかる。
そのため以下のようなソースコードに変更してみる。
#include "mbed.h"
#include "C12832.h"
#include "MMA7660.h"
C12832 lcd(p5, p7, p6, p8, p11);
MMA7660 MMA(p28, p27);
DigitalOut connectionLed(LED1);
int main()
{
//MMA7660接続確認
if (MMA.testConnection())
connectionLed = 1;
while(1){
lcd.cls();
lcd.locate(0,3);
lcd.printf("%.3f\r\n",(float)MMA.x());
lcd.printf("%.3f\r\n",(float)MMA.y());
lcd.printf("%.3f",(float)MMA.z());
wait(0.5);
}
}
これを実行すると⇓⇓⇓
上から
・X軸加速度
・Y軸加速度
・Z軸加速度
の順で表示できました!