#■初めに
M5って次から次へと面白し周辺機器を出して来ますよね。今回はその中の一つのToF HATをobnizOSで使うための関数を作り、障害物回避Carに応用してみたので紹介します。
#■(参考)ToF HATとM5StickCの接続は、このようになっているようです
#■コードの説明 (後述の応用例のToF_READ関数)
M5オフィシャルの下記のコードを参考に、obnizのJacaScriptのI2Cライブラリーを使ってToF_READという関数を作成しました*。returnで計測距離(mm)を返します。ライブラリ化のやり方がわからなかったので外出しに出来ていません。コードについては後述の応用例のインラインを参照下さい。
I2Cの細かい事はさっぱりわかっていません。オフィシャルのSampleコードから気合でエッセンスを抜き出しただけです。すいません。参考としてコメントに何をやっているか推測を書きました。
M5オフィシャルのToF HAT Sampleコード
https://github.com/m5stack/M5-ProductExampleCodes/blob/master/Hat/tof-hat/Arduino/ToF_Count/ToF_Count.ino
#■ToF HATを使ってみた感じ
##以下のような少し怪しい動きをしました。個体の問題なのか、私のプログラムの問題なのか不明です。
###・仕様上の射程距離は0~2mとなっているが、40cm前後でしか動かない。
###・実際よりも10cm程度大きい距離が返ってくる。
###・実際の距離にかかわらず、時々20mmという意味不明な値が返ってくる。
#■(応用例)回転Servo 2WD 障害物回避Car
##前進中に近距離障害物を検知したら、左に後退して方向転換を行い再度前進する。。。という動作を繰り替えします。
##デモ動画
##車体 ![WIN_20191109_14_18_44_Pro.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/86701896-eeb6-5994-c66e-506585538e83.jpeg) ![WIN_20191109_14_19_23_Pro.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/2fdf81cf-6238-b8ce-d221-7396402df597.jpeg) ![WIN_20191109_14_21_44_Pro.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/635e5fd6-e556-703c-48f2-749edc393c75.jpeg) ***※コンパクトにするために、Servo及びGROVEの端子を切断して半田付けしています。*** ##コード ```html#M5StickC のToF HAT(レーザー距離センサ)を #obnizOS のI2Cで動かしてみた。動画は回転Servo 2WD Carによる障害物回避。Qiita投稿準備中。 pic.twitter.com/ZmQpTLB2g8
— Google Homer (@google_homer_) November 9, 2019
2WD Servo Car By ToF HAT
距離: ``` #■まとめ M5StickCの豊富な周辺機器とobnizOSの開発の利便性の両者の恩恵をうけるには結構体力使いますね。これからも、こつこつ移植していきます。