レトロでハードな物語

レトロなゲーム機・マイコン・中古デバイスなどをArduinoやAVRで再活用する方法を模索しています。

M5StackのGrove端子に何かつないでみる

2023年02月23日 | 電子工作

しばらく前に秋月電子八潮店に行ったときにこれを買っていました。

M5Stack Core2 for AWSです。M5Stack Core2もありましたが、これは外部にI2CのGroveポート1つしかないのに対し、Core2 for AWSはI2C、GPIO、UARTのGroveポートが3つもついているのでこちらを選びました。もちろんArduino IDEで開発するのでAWSは利用しません。

M5Stackに興味を持ったのはMSX0の本体に使われるのを知ったからです。個人的に欲しいのはMSXのカートリッジスロットに入れてMSX3にするMSX IOTカートリッジとかいうもので、M5Stackベースのものではないのですが、MSXエミュレータが動かせるデバイスがどんな物が興味がわいたのです。

実際に手にしてみると、単体で色々なことに使えそうな面白いガジェットでした。しばらくサンプルプログラムで遊んでいたのですが、APIについて少し分かってきたのでそろそろなにか電子工作的なことにも使ってみたくなりました。

まず試すのはI2CのGroveポートですね。様々なGrove専用のデバイスが販売されているようですが、I2Cなら自分で好きなデバイスをつなげられるので市販のGroveデバイスは買う必要ないですよね?

気になるのはI2C信号線の電圧です。公式のドキュメントでは記述が見つからなかったのでネットで調べてみると、
VCC 5V
SCL・SDA 3.3V
というのが仕様のようです。本当かどうか分かりませんが、とりあえずこれを信じてなにかつなげてみましょう。

これまでI2C接続のデバイスの中で3.3V動作だけど5V動作のマイコンにつないでも大丈夫なものがありました。Wiiのヌンチャクコントローラーです。
でも、ただヌンチャクコントローラーをつなぐだけではつまらないので、これをちょっと改造してコントローラー内にもう一つセンサーを内蔵してみようと思います。使用するセンサーは3軸地磁気センサーHMC5883Lです。このセンサーを実用的なコンパスにするにはかなり面倒なキャリブレーションを行わなければならず活用することはなかったので、なにかに利用したいと考えていました。ヌンチャクコントローラーに内蔵すれば、加速度センサーの苦手な水平方向の向きを把握することくらいには使えるでしょう。

ただこのセンサー、電源が3.6Vまでとなっているので壊れないかちょっと不安があります。でも、もともと使い道がなかったので壊れてもいいか。

では、ヌンチャクコントローラーを改造します。コントローラーを分解(特殊ネジなので専用のドライバーが必要です)すると基板にI2Cの線がつながっているのが見えます。

ここに地磁気センサーのI2C端子をはんだ付けします。

あとはセンサーを動かないようにグルーガンで固定して、元通りに組み立てたら終了です。

次にM5Stackに接続するためのGroveコネクタを入手しなければなりません。購入することもできますが、幸い秋月電子のお楽しみ袋に入っていたピンソケットにGrove端子と同じピッチのものがありました。

これを加工して、ピッチ変換ソケットが作れました。


それでは配線です。

PORT A ヌンチャク(コードの色)
SCL
SDA
VDD
GND

I2Cなので簡単です。プルアップ抵抗はつけませんでした。

スケッチはこちらです。

M5StackNunchuckTest.ino

実行するとヌンチャクコントローラーのスティックとボタンと加速度センサー、それと地磁気センサーの値を読み取って画面に表示します。

心配していた3軸地磁気センサーも正常に動作しているようです。

M5Stackの画面が大きいので、一度に多くの情報が表示出来ていいですね。様々なデバイスを内蔵しているのでこれまでマイコンと外付けデバイスで作ってきたような物が回路を組まなくても実現できてしまいます。逆に機能が豊富すぎて何をするか迷うことになりそうです。

 
 

最新の画像もっと見る

コメントを投稿