*Gainer/加速度センサ [#o5527f74] **パーツリスト [#q6705886] |部品|備考|数量| |BGCOLOR(#F8F8FF):3軸加速度センサモジュール|BGCOLOR(#F8F8FF):KXM52-1050|BGCOLOR(#F8F8FF):x1| **加速度センサの情報取得 + 角度算出 [#hbce5e96] ***回路 [#n895516a] 回路は,[[Cookbook / 加速度センサをつなぐ@GAINER.cc:http://gainer.cc/Cookbook/AccelerationSensor]]を参考にし, |加速度センサ|Gainer| |BGCOLOR(#F8F8FF):X軸の出力|BGCOLOR(#F8F8FF):ain 0| |BGCOLOR(#F8F8FF):Y軸の出力|BGCOLOR(#F8F8FF):ain 1| |BGCOLOR(#F8F8FF):Z軸の出力|BGCOLOR(#F8F8FF):ain 2| となるよう接続しています. ***加速度センサ情報取得 [#v9924ed7] 単純にain 0~ain 2の状態を取得することで3軸加速度センサの情報を取得しています. ただ,センサから取得した値が安定せずブレてしまうので,[[Cookbook / 移動平均法によるスムージング@GAINER.cc:http://gainer.cc/Cookbook/SmoothingByMovingAverageMethod?p=4]]を参考にしてスムージング処理を行いました. ***角度算出 [#z9b1445d] [[加速度センサの出力を角度に変換する:http://gainer.cc/Cookbook/ConvertOutputsOfAnAccelerationSensorToAngles?p=5]]を参考に. 算出にはスムージング処理後の値を使いました.ただし,Processing版の角度算出サンプルが無かったため自力でコーディング(下記コード参照). **サンプルプログラム(Processing) [#h3fb321a] 下記コード中の //--------------- int xMin = 75; //最小値 int xMax = 184; //最大値 //---------------- int yMin = 75; //最小値 int yMax = 184; //最大値 というところは,実際にセンサを90度,-90度と傾けてみて得られた実測値 を設定しています.&br; 同じセンサを使っていても人によっては異なる可能性があるので適宜設定してください. ※Processing初心者(というかマジメにコード書いたの今回はじめて)なので ※Processing初心者(というかマジメにコード書いたのは今回はじめて)なので 間違い等ありましたら連絡お願いします. ***各種バージョン [#uac3c634] |Processing|gainer_lib_processing|JDK| |BGCOLOR(#F8F8FF):0135 beta|BGCOLOR(#F8F8FF):v1.1.0rc3|BGCOLOR(#F8F8FF):1.6.0_03| #code(java,nooutline,nonumber,http://www.atinfinity.info/processing/src/accelerationSensor.pde) ***スクリーンショット [#n5e28903] |CENTER:&ref(screenshot.png);|