2020年1月4日土曜日

M5Balaのサンプルプログラムを動かすまでの顛末

あけましておめでとうございます。

本業のほうがかなり忙しく、年末まで個人的な開発はほとんどできない状況でした。
今年の年末年始はM5Balaを買ったのでこれを題材に制御のお勉強をしたいと思います。
M5Stack自体は以前から触ってはいたのですが、今回は本格的に開発したいということでPlatformIOの開発環境を整えてM5Balaのサンプルプログラムを動かしてみます。
この過程でかなりはまった点があり、これについても記載します。




参考:
https://qiita.com/lutecia16v/items/1c560bdd7eac7ebeaff7

環境:
Windows10
Visual Studio Codeはインストール済み(Version: 1.38.1)

上記の記事とは違いますが、ウィンドウ左の四角が4つあるアイコンがExtensionsのアイコンなので、これをクリックして、出てくる検索ウィンドウに「PlatformIO」と入力します。
「Install」をクリックしてインストールします。


PIO Homeを開きます。


M5StackのLibraryを導入します。
PIO Homeから「Libraries」を開き、検索窓に「M5Stack」と入力すると「M5Stack by Zibin」をクリックし、「Install」をクリックするとM5Stackのライブラリをインストールします。



では早速M5Balaのプロジェクトを開いてコンパイルしてみましょう。
さくっとM5BalaのgithubリポジトリからクローンもしくはZIPファイルをダウンロードします。
https://github.com/m5stack/M5Bala



ZIPファイルでダウンロードしたらあらかじめ解凍しておきます。

Visual Studio CodeのPIO Homeの「Open Project」をクリックして先ほどダウンロードした一式のフォルダを開きます。このとき、「platformio.ini」が含まれているフォルダを指定します。

開いたらVisual Studio Codeの左下の「✔」ボタンをクリックしてビルドします。

ビルドが完了したら「→」ボタンをクリックしてM5Stackに書き込みます。


以上でM5Balaが動きます...という流れだったのですが、この後かなりはまりました。
まず、センサの値がうまく出てきません。
いろいろ調べてみると、購入したSwitch ScienceさんのM5Stack Fireのページにいろいろと注意書きがありました。(購入するときにはあまりちゃんと読んでいませんでした)


一番最初の段落が特に重要です。
MPU6050、MPU9250、SH200Qは3軸加速度+3軸ジャイロセンサです。このセンサが2019年7月29日入荷分以降SH200Qに変わっているとのことです。
単純に置き換えができるデバイスなのかと思いきや、レジスタマップから完全に違います。ということは、従来のサンプルプログラムは動かないのか?と思いサンプルプログラムを見ると案の定MPU6050を想定したプログラムのみで、SH200Qには対応していないようでした。

仕方ないので以前購入していたM5Stack Gray(MPU6050搭載品)の上部分(画面がついている方)をM5Stack Fireと交換したところ、無事サンプルプログラムが動作しました。
購入したM5Stack Fireに最初から書き込まれていたファームではジャイロも反応していたので、一部のソースではまだ対応していない?ということだと推測しています。

ちなみに下記のページにある方法でジャイロセンサがきちんと動作しているか確認しましたが、「Not Found」となりました。このプログラムもまだSH200Qに対応していないようです。
https://mag.switch-science.com/2018/08/21/m5stack-fire-check/

現在はM5Stack Grayもセンサが変わっているようです。新しくM5BalaとM5Stack Fire一式をそろえてサンプルプログラムを動かそうという方はご注意ください。

SH200Qに対応するようにMPU6050に依存する部分を書き換える方法もありますが、今回はM5Stack Grayを流用する形で進めていきたいと思います。

0 件のコメント:

コメントを投稿