musan6363 / GlaphingAccelerometer

加速度センサの値をmbedからのシリアル通信で取得して3Dグラフ表示.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

加速度センサ値のグラフ化

mbedに加速度センサ(IMU-20948)を接続し,Pythonプログラムによるシリアル通信で値を取得して,matplotlibで3次元グラフ表示しました.

[TOC]

結果の例

次の写真のように,マルチプレクサを介して4つの加速度センサをmbedに接続した.

グラフ化の例

以下のようなグラフが出力された.加速度センサの1つを不規則に動かした.

グラフ化の例

実行方法

  1. dist内の2ファイル(GlaphingAccelerometer.bin, readserial.py)をダウンロード.

  2. マルチプレクサを介して加速度センサを接続したmbedをPCにUSB接続する.ピン配置は以下表の通り.

    コード色 役割 接続先
    Black GND GND
    Red 3.3V VOUT
    Blue SDA p9
    Yellow SCL p10
  3. binファイルをmbedのストレージにコピーする.すでに実行イメージがある場合には退避もしくは削除する.

  4. mbedのリセットボタンを押す.(画像**青ボタン) mbed本体

  5. mbedのマウント先を確認する.

    ls -l /dev/tty.*
  6. Pythonプログラムを実行する.4で確認したマウント先に適宜書き換える必要がある.

    python readserial.py /dev/tty.usbmodem143102
  7. グラフの描画が始まる.加速度センサを動かせば変化が確認できる.

mbed開発環境の再現

src内のファイルを用いてmbedの開発環境が再現できる.

できること

  • センサを1つだけ接続して値を出力する
  • mbedのストレージにセンサの出力値をCSV形式で保存する
  • マルチプレクサを介してセンサ4つの値をMbedStudio上で出力する
  • シリアル通信で値を取得して3次元グラフ表示する

mbed開発環境の再現に手順をまとめた.

技術的解説として,調査したmbedの扱い方やソースコードの説明がある.

今後の展望

現在,グラフの表示はセンサの動作とのタイムラグが大きい.より軽量なグラフ表示方法やコードの無駄な処理を省くことで高速動作を目指すことができる.(mbedからの値取得自体は高速にできているので,取得したデータの扱いからグラフ表示が改善点として考えられる.)

またさらに複数のセンサを取り付けることもできる.マルチプレクサの空きポートはもちろん,センサを数珠つなぎにすることも可能で,マルチプレクサは1接続で64個のI2Cバスまで可能である.(Qwiic - TCA9548A搭載 8チャンネル Mux拡張基板 - スイッチサイエンス)

シリアル通信でやりとりしているデータを一度文字にしているので,処理速度が大幅に落ちていると考えられる.センサから読み取ったバイト列をそのままシリアル通信に載せ,Pythonプログラム側で解析するほうが処理速度の向上が見込める.

About

加速度センサの値をmbedからのシリアル通信で取得して3Dグラフ表示.


Languages

Language:C 78.2%Language:C++ 20.6%Language:Python 1.3%