#author("2016-05-29T17:38:26+09:00","default:qua","qua")
*アナログ3軸加速度センサ KXR94-2050 [#r18ee99c]
#ref(http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/img/kxr942050.jpg,200x150)
-[[販売元情報ページ:http://akizukidenshi.com/catalog/g/gM-05153/]]
** 配線 [#p4d35b9d]
|ピン番号|名称|意味|
|1|Vdd|電源(Arduinoの5Vへ)|
|2|Enable|動作モード(通常はArduinoの5Vへ)|
|3|GND|Ground(ArduinoのGNDへ)|
|4|Vmux|未使用|
|5|Self Test|セルフテスト(ArduinoのGNDへ)|
|6|Out X|X軸出力(Arduinoのアナログ入力へ)|
|7|Out Y|Y軸出力(Arduinoのアナログ入力へ)|
|8|Out Z|Z軸出力(Arduinoのアナログ入力へ)|
ピン番号は1から反時計回りで8までで、1, 4, 5, 8番のみ印字。1→4がX軸正方向、1→8がY軸正方向、下から上がZ軸正方向。出力は、Vddの5分の1が重力加速度に対応。すなわち~
加速度=9.8*(入力値-512)/204.8[m/s^2]
** プログラミング例 [#o992ff1f]
 // アナログ入力ピン0,1,2の値をモニタするためのスケッチ
 // IDEのツール→シリアルモニタで数値を表示
 
 const int Px = 0; // 入力ピン番号
 const int Py = 1; // 入力ピン番号
 const int Pz = 2; // 入力ピン番号
 const int Delay = 100;  // データ入力時間間隔(ミリ秒)
 
 void setup() {
   // Arduinoとコンピュータの間の通信を準備
   // データ通信速度は9600ビット/秒
   Serial.begin(9600);
 }
 
 void loop() {
   String xyz = "(";
   float ax = (analogRead( Px )-512)*9.8/204.8;
   float ay = (analogRead( Py )-512)*9.8/204.8;
   float az = (analogRead( Pz )-512)*9.8/204.8;
   
   // 入力ピンから読み取って、
   xyz = String("(") + ax + ", " + ay + ", " + az + ")" ;
   // コンピュータへ送信
   Serial.println( xyz );
   // 時間間隔だけ待つ
   delay( Delay );
 }
#author("2016-05-29T17:43:14+09:00","default:qua","qua")


* デジタル3軸加速度センサ MMA8451 [#h77cc4ff]
#ref(http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/img/mma8451.jpg,200x178)
-[[メーカーWebページ:https://www.adafruit.com/products/2019]]
** 配線 [#u17bb071]
I2Cアドレス 0x1C / 0x1D
|ピン|意味|h
|Vin|電源(Arduinoの5Vへ)|
|GND|Ground(ArduinoのGNDへ)|
|3Vo|3V出力|
|I2|割り込み2|
|I1|割り込み1|
|SCL|I2Cクロック(ArduinoのA5へ)|
|SDA|I2Cデータ(ArduinoのA4へ)|
|A|3Voに接続→I2Cアドレスを0x1Cから0x1Dに変更|
** プログラミング [#d2640ebd]
-準備~
まず、次の2つのライブラリを[[インストール:Arduinoのライブラリ_]]する。
--[[ライブラリMMA8451.zip:http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/lib/MMA8451.zip]]
--[[共通センサライブラリAdafruitSensor.zip:http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/lib/AdafruitSensorzip]]
- ライブラリの使用
-- ライブラリのインクルード
 #include <Wire.h>
 #include <Adafruit_MMA8451.h>
 #include <Adafruit_Sensor.h>
-- 入出力用オブジェクトの生成
 Adafruit_MMA8451 mma = Adafruit_MMA8451();
-- setup()ですること~
I2Cアドレスを指定して、センサの使用を開始し、測定範囲を2G, 4G, 8G(Gは重力加速度)から選ぶ。
I2Cアドレスは省略可能。
 mma.begin(0x1c);
 mma.setRange(MMA8451_RANGE_2_G);
-- センサデータの利用~
loop()内などで、
  mma.read() 
でデータを取得する。mma.x, mma.y, mma.zに3軸方向の加速度が入っている。値の範囲は-8096から+8095で、測定範囲の±2G、±4G、±8Gに対応する。人間がわかりやすいデータを得るには、次を実行する。
  sensors_event_t event;
  mma.getEvent(&event);
event.acceleration.xなどで、加速度の値をm/s^2単位で得ることができる。


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS