【IoT工作】Location_Clockの作成のコード&机上デバック

IoT

Location Clockのコード検討

※2020/2/18 原点センサを修正

フォトマイクロセンサを使用する予定でしたが、取り付け場所の制限からフォトリフレクタに変更を行いました。

では前回の構想編に引き続き今回はLocation Clockのコードを書いていきたいと思います。

【IoT工作】Location_Clockの作成の構想
位置情報を取得して時計の針を動かすLocation Clockの構想になります。実際の作成は次回から始めたいと思います。

ちなみにM5Stackを使用してArduino_IDEでコードを書いていますが、無印のESP32でも問題ありません(なんならESP8266でも行けると思います)。

コード検討

機能フローチャート

機能は単純でまずセットアップとしてWifi設定, Blynkサーバーとの連携設定,を行います。その後はループに入り状態フラグsによる分岐を行います。状態は3状態を予定していまして【受信待機】【原点復帰】【移動】になります。ステッピングモーターのエンコーダーとしてはソフト内でのカウンタを設けて角度モニターを行います。停止範囲は±1°とします。

この停止条件から必然的にステッピングモーターの1サイクルが1以下とする必要があります。今回使用予定のステッピングモーターは28BYJ-48(フルステップ:2048step)を使用するので、1ステップが0.176degです。フルステップの使用を想定して1サイクルは0.176×4=0.7degとしたいと思います。

まあ、そんな精度を求める機器ではないので±5degでも問題ないと思いますね。

コード


結構シンプルなコードだと思います。唯一計算らしい計算を行っているのは現在値と角度指令値(Blynkからの読み取り値)の差分を制御するくらいですかね。

あとは、Blynkライブラリがサーバーとの接続をやってくれますし、ステッピングモーターの制御も単純なフルステップで動かしているだけです。

机上でのデバックの動画を以下に載せました。

※デバックなのでLocationアプリとは連携しておりません。IFTTTのトリガーをボタンウィジェットを使用しています。

おわりに

今回はコードの検討と机上でのデバックを行いました。ここまでくればほぼほぼ機能は満足していると思います。最終的には月末に家族へのプレゼントとすることが目的なのですが、先日リビングの机上時計が欲しいと言っていたのでNTPサーバーアクセスの7セグLED時計もつけれたらつけたいと思っていたりしています。


コメント

タイトルとURLをコピーしました