2021/12/15 よりサイトリニューアルしました

ジョイスティックコントローラー「JoyC HAT」の使い方(micropython)

JoyC HAT

 

電子工作で主にラジコンなどの動くものを作っているのですが、コントローラー側でジョイスティックの実装をやったことがなかったので、M5Stackの拡張ボード?の「JoyC HAT」を購入しました。

JoyC HATは、ジョイスティックが実装された基板にM5StickCを取り付けるPINがついていて、M5StickCを取り付ける事で、ジョイスティックの無線コントローラーとして扱う事ができます。

専用のライブラリも用意されていますので(UiFlow)、プログラムも比較的簡単に実装できます。

という事で今回は、joyC HATの使い方について、簡単にまとめておこうかと思います。

※micropythonでの実装になります。

 

 

初めに

HATにM5StickCを接続するだけで、スティックを倒すとその方向にあるLEDが点灯します。これがなんか気持ちいいです。

HATの電源は、基板の裏にリチウムバッテリーが付いていて、それで動いています。

充電も可能ですが、充電はM5StickC経由、つまりM5StickCを接続した状態でUSBケーブルを接続(M5StickCに)しなければ充電が出来ないみたいです。

また、HATからM5StickCへの充電は出来ないみたいです。

 

 

M5StickCとの通信はI2C

JoyC HATとM5StickCとの通信はI2Cで行われるようです。

ですので、初めはJoyC HATのアドレスを調べて、先ずpythonでI2Cのオブジェクトをつくるもんだと思っていたのですが、その必要はありませんでした。

UiFlowのブロックで、ジョイスティックの値を受け取るブロックを選択するだけで、自動的にI2C接続してくれるようです。楽ですね~

 

 

プログラム

それでは、このHATを使ってメカナムラジコンを操作したプログラムがありますので、それを乗っけておきます。

UDPで相手方にジョイコンの値を送信しています。

hat_joyc0 = hat.get(hat.JOYC) がおそらく、ジョイコンのI2Cのオブジェクトになってるっぽいです。

 

hat_joyc0.GetX(0)  でジョイコンの値を受け取っています。引数は0が左で1が右になります。

値は0~200で、センターがx,y共に100になります。

 

https://twitter.com/ketunorobio/status/1552427689273065480

 

 

 

ステアリング付ラジコンも操作してみました。

 

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です