2020/01/01(WED) 冬休みの自由研究A
正月でも自由研究は続きますw
本当は年末から続いてますが・・・

で、先日手に入れたマイコン
M5Stickを研究中。
↓これね
フォト

で、開発環境を整えて
プログラムの基本をある程度覚えたので
応用編へ。

以前、スピードメーターを作るのに使った磁力センサー
↓これね
フォト

水温計を作るのに使った温度センサー
↓これね(加工したまんまですけど・・・)
フォト

これらをM5Stickに接続します。
フォト

↓こんな感じに接続します。
フォト


で、プログラムするわけですが
本体の上面のボタン(M5と書かれた部分ね)と
右側面のボタンも使います。
フォト


ここからちょっとプログラムの話。
Arduinoの環境でC言語で書いてます。
まずはヘッダと宣言部分
各変数とか関数のプロトタイプを宣言しています。
フォト

初期化処理
起動時に1回呼ばれます。
31行目と32行目で
接続しているPINを入力と設定をしています。
34行目で、G36つまり磁力センサーがつながっているところ
入力割り込みが入ったときに呼ぶ関数を設定しています
フォト

ループ関数です。
繰り返し呼ばれるところ
キー入力とか表示とか温度センサーからの入力を処理してます。
ちなみに上面のボタン(M5と書かれたボタン)を押すと
磁力センサーのカウンタと温度の表示を切り替えます。
右側面のボタンは磁力センサーのカウンタをクリアします
フォト

フォト

磁力センサーの入力割り込みです。
磁石が近づいた時に呼ばれます。
カウンタをカウントアップだけしています。
フォト

画面に出力する処理
磁力センサーのカウンタを表示と
温度センサーの表示を行います。
フォト

んで、実行してみると
磁石を近づけると見事にカウントアップします。
フォト

M5のボタンを押すと温度表示です。
フォト

ちょっとAD値が癖があって
補正してます。
それも正しいか不明ですが・・・
精度はさほど良くないようです。
そもそもで整数で計算しているところで
誤差を許容していますが・・・

これだけじゃこのマイコンの機能を使いきってませんが・・・
WiFiとかBluetooth(BLE)も積んであるから
その辺を活用できるとさらに面白いんですが・・・
まずは、入力割り込みとAD値取得が出来ました。
AD値が取れたってことは
YPVSインジケーターもアクセル開度モニタも作れます。
さらにそれらをWiFiとBluetoothで飛ばすのも夢じゃない。
研究はまだまだ続く