曲げセンサを使って動作確認をした Arduino ですが、今日は、加速度センサ(KXM52-1050)を繋いでみました。
とは言っても、結局は 5v、GND の2本と、X, Y, Z 計3本の信号線を Arduino のアナログ端子に接続するだけ。プログラムは、前回と同じく、analogRead() で読み出して、Serial.print(value, DEC) で出力するだけ。使い方は、曲げセンサのときと同じ。
モノは、秋月で買った加速度センサで、基板に必要な部品が実装済であり、8ピンモジュールになってます。
- Vdd:2.7V--5.5V
- PSD:パワーシャットダウン。(通常は Vdd に接続)
- GND
- Parity:パリティ。(通常は NC)
- SelfTest:セルフテスト。(通常は GND に接続)
- Out X:X軸出力
- Out Y:Y軸出力
- Out Z:Z軸出力
片面基板でやろうと思ったら、ピンヘッダを実装面、ハンダ面とで逆に付けなきゃイカンので...今回は両面基板を使いました。ホームセンターで ELPA のヤツを買ったんですが、こんなんで¥600 オーバー。高すぎる。送料考えなきゃ、スイッチサイエンスさんのバニラ・シールドのほうが安いじゃないか。ピンヘッダ付いてくるし。
作成したシールドですが。
analog 0 は、曲げセンサ用(中央のピンヘッダ2本)。analog 1 は、SHARP の距離センサ用(中央のピンヘッダ3本。暗くてみえませんが...)を想定しています。analog 2--4 が、加速度センサの X、Y、Z になってます。Digital 側のピンは一切使って無いというリッチなシールド。
作っちゃってから気がついたんですが...車用途で使用するなら、Z 軸のセンサは未接続で良かったですね。そんなデータあってもイラナイですから。ポート1個無駄にしてしまいました。
勢いで作っちゃイカンな。やっぱ、設計が大事だ。
続きには、今回のスケッチ。
ポート番号変えただけのセクションが5つあるだけ。
センサー情報の最終的な処理を PC でやるなら、Arduino 側はデータを送るだけに専念すればイイんだけどね...。こいつをデータロガーにするなら、キャリブレーションしないとなぁ。
//----------------------------------------------------- // 初期化 // //----------------------------------------------------- void setup() { Serial.begin(115200); } //----------------------------------------------------- // メイン // //----------------------------------------------------- void loop() { int iValue; Serial.print("[Sensor]"); // Analog 0 -- Accelerator iValue = analogRead(0); Serial.print(iValue, DEC); Serial.print(","); // Analog 1 -- Brake iValue = analogRead(1); Serial.print(iValue, DEC); Serial.print(","); // G-Force X iValue = analogRead(2); Serial.print(iValue, DEC); Serial.print(","); // G-Force Y iValue = analogRead(3); Serial.print(iValue, DEC); Serial.print(","); // G-Force Z iValue = analogRead(4); Serial.print(iValue, DEC); Serial.print("\r\n"); delay(50); }