スポンサーリンク




Arduino

【Arduinoで電子工作-5】加速度センサを使って水平器を作る【KXR94】

Arduinoと加速度センサを使用して水平器の作成

今回は3軸加速度センサを使用して、物体の角度の取得をしてみました。

そして、角度を取得するだけでは楽しくないので、水平器を作ってみました。

準備するもの

今回、準備したものはこちらになります。

  • Auduino UNO
  • 3軸アナログ加速度センサ KXR94-2050
  • 赤色LED  ×11
  • カーボン抵抗 220Ω
  • ジャンパー線 たくさん

となります。

3軸加速度センサ"KXR94-2050"とは

加速度センサとは、文字通りセンサに加わっている加速度を取得できるセンサになっています。

加速度センサでできること

    • 加速度を取得することができれば、時間で積分することで速度が取得できる
    • 速度を積分することで、距離を取得することができる
    • どの軸に重力加速度が加わっているかを検出して、平行度や傾き角度を取得できる
    • 3軸あることで平行移動の動きや衝撃、振動、落下など、物体の状態確認にも利用できる

など、とても便利なセンサで、加速度センサ自体は、振動計などの測定機器からロボットやロケットの姿勢制御などあらゆるところで使用されています

使用する、3軸加速度センサ"KXR94-2050"は、図のようにDIP化されたものを秋月電子で購入して使用しています。

データシートや取扱説明書はこちらになります。
<KXR94-2050>DataSheet
<KXR94-2050>DIPモジュール取扱説明書

早速、この三軸加速度センサを使用して、物体の角度を検出し、Arduinoで水平器を作成していきます。

Arduino水平器の回路図と配線図の作成

以下が、回路図と配線図になっています。

 

今回は加速度センサを載せているブレッドボードと、LEDを載せているブレッドボードを分けて、加速度センサ部だけを動かせるようにしています。

また、今回使用する水平器自体には、加速度センサのX軸の値しか使用しませんが、Y軸・Z軸の数値も読み取れるようにしています。

実際に組み立てた配線がこちらになります。

 

水平器のArduinoプログラム作成

加速度センサを使用した水平器のプログラムはこのように作成しました。

24行目から49行目は出力されたアナログ値をsinθ値に変換する関数です。

この時、iTn1, iTn2はセンサを90° と-90° に傾けた時のAD変換値が挿入されれます。

69行目から75行目は取得したAD変換値から角度を計算しています。

この時、

double rotateX = Map( ADC_X, 292, 732, -1.0, 1.0, true );

の292が加速度センサをX軸を中心に-90° 、732が90° 傾けた値です。

この数値はセンサの個体によって変わってくるので、各自で調整が必要になります。

77行目から87行目はLEDを点灯させるためのプログラムです。

使用する出力ピンによって数字が変わるので注意してください。

各箇所でコメントアウトしていますが、シリアル通信によって角度祖取得できるようになっています

実際に動かすと以下の動画のようになります。

角度によってLEDの光が移動しているのがわかると思います

また、水平移動に合わせてLEDの光が移動しています。

このような動作になれば正常に動いています。

今回は1軸しか使用しませんでしたが、多くの軸を使うことでもっといろいろなことができるようになります

今後は、2軸の水平器とかを作成してみたいと思っています。

 

ブログランキング参加中

クリックしていただけると
ブログ更新の励みになります


電子工作ランキング
にほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村

スポンサーリンク

-Arduino
-, ,

© 2020 電子工作でライフハック Powered by AFFINGER5