M5STACK(その15)

M5Stackの話だけど、実質ESP-CAMの話の続き。

やってみたことメモ。(まだ続く)


せっかくなので、ESP-CAMで撮った画像をM5Stackに画像を転送しようと考えた。
というより下記のページを見つけたので、これだったら同じことができるかな?と単純に考えた。
 https://www.instructables.com/id/M5Cam-X-M5Stack/

M5StackにはArduino IDE用のスケッチが用意されてた。

 https://github.com/moononournation/M5Stack-Cam-Viewer

SSIDやパスワードなんかを修正してこれをM5Stackに書き込んだらOK…とは、いかなかった。 

環境が違うのに、そんなに簡単に行くわけないか。

 

しかしスケッチ自体は普通にコンパイルできていて、エラーが出てるわけではない。
シリアルモニタを見ると、以下のような状態。

 entry 0x40078ad0
 M5Stack initializing...OK
 E (707) wifi: misc_nvs_load 208 ret=4364
 E (707) wifi: wifi_init 1420 ret=4364

とにかくjpeg画像を探しに行ってもらわないと困るのに、その手前で止まっているようだ。
また壊したかな?とドキドキしたが、wifiを使うほかのスケッチを試しに書き込んだら動いたので、これだけの問題らしい。

 

検索してみても、該当するエラーがあまり見られない。
ESP32関連で、どうもフラッシュメモリをクリーンすると動くようになる、という書き込みはあった。
でもこのArduinoの環境で、どう対応するかなと考えていたが、よく参照させていただいているmeg-tecさんのブログにそれらしき解決策があった。

 ESP32 ( ESP-WROOM-32 , M5Stack )自分的 トラブルシューティング まとめ

 https://www.mgo-tec.com/blog-entry-trouble-shooting-esp32-wroom.html/2

上記の、

 9.今まで問題無かったのに、急に Wi-Fi ( WiFi )に繋がらなくなった

を参考にさせていただきました。

対策その2の最後を参照してスケッチに一行追記したところ、これが正解だったようだ。

 WiFi.disconnect(true); ←こっちを追加

 WiFi.begin(ssid, password);

ESP32はちょっとクセがあるというか、この手の問題に引っ掛かりやすい気がする。

 

スケッチを書き込み直して、再度シリアルモニタを確認すると、
 M5Stack initializing...OK
 [HTTP] begin...
 [HTTP] GET..

 [HTTP] GET... code: -11
 [HTTP] GET... failed, error: read Timeout

となり、ちゃんと画像を探しに行ってる。
しかし画像にアクセスする前に接続が切れている。

今度は別の問題かと思い、検索すると似たような(?)対策を行なっている人発見。

 https://qiita.com/ktetsuo/items/03365a9123a04481809d

上記を参照したけど、結果は同じだった。

 

やっぱり何よりアクセスというか、データ自体が重いようだ。実際、webブラウザから見ても重いし。

とにかく画像サイズが大きいので、これをなんとかしないといけないな。

引き続き、もうちょっと実験中。

Sponsered Link

M5STACK(その14)

M5Stackに関するメモ。

最近はせっせと周辺機器を集めつつある。

今回はミニキーボードを購入。

 https://www.aliexpress.com/item/M5Stack-Official-CardKB-Mini-Keyboard-Unit-MEGA328P-GROVE-I2C-USB-ISP-Programmer-for-ESP32-Arduino-Development/32963872643.html

AliExpressで在庫がしばらくなかったんだが、先日復活していたのでさっそくポチった。

そしたら一週間もかからず届いてしまった。ちょっと旅行に行ってた間に郵便受けに入ってた。

発送も早ければ届くのも早くて助かる。

(しかしそれより前に他の店で購入したものは今だに届いてない)

 

動作確認するために、サンプルのプログラムをダウンロードしてくる。

 https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit

上記の「CARDKB」内にある、CardKBTestM5.inoを使用した。

Arduino IDEを使った方が自分的には楽。

スケッチは非常にシンプルだけど、ちゃんと入力できた。

でもこのスケッチだと、リターンやデリートが使えないようだ。

このあたり、他の人はどう使ってるのかもうちょっと調べてみたい。

 

それと先日、また一つM5Stackを壊した。(1年ぶり2度目)

今度は物理的に壊したというか、机から落としただけなんだが(今までもよくやった)、当たりどころが悪かったらしく画面がちょっと割れてしまった。

しかもそれだけじゃなく、電源を入れると画面が真っ白のまま。LCDがいかれたか。

Basicじゃなく、9軸IMU搭載のやつだったからショックが大きい。

また買おうかと思ったけど遊べるM5Stakはまだ持ってるので、しまっておくのももったいないしせっせと引っ張り出して遊ぶことにする。

今度こそ壊さないようにしないと…。

Sponsered Link

M5STACK(その13)

M5Stack の Servo モジュールを購入して、動作確認したのでメモ。

 

まずは公式のドキュメントを参考に、Arduino IDE からサンプルのスケッチをコンパイルして動作確認。

 https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Module/SERVO

右下の0のところにサーボモーターを一つ取り付けて、動きは問題なかった。

でもどうせ使うなら M5UI Flow を使って簡単にプログラムできないかと考えた。

以前ファームウェアを焼きこんだ時はバージョンが0.8だったが、今では1.1.1。

最新のものを選んでファームウェアをインストールして、サーボモジュール用のブロックを読み込んだ。

しかしこれがどうもうまくいかなかった。

Servo モジュールの動きがおかしいのではなくて、 USB 接続を外して M5Stack だけで動かして遊ぼうとすると、何故かセットアップ画面に戻ってしまう。

しかたないので焼き込み直しを何度もやっているうちに、画面に赤字で  I2C のエラーという文章が出てきてインストールが出来なくなってしまった。

これはまた壊したかと心配したが、 再び Arduino IDE に戻してサンプルプログラムを焼き込むとうまくいった。

壊れたわけではなかったんで、まあ良かった…。

(原因はまた確認することにする)

 

なので M5UI Flow はとりあえず諦め、引き続きArduino IDE を使用。

以前作った Otto ロボットの頭にある Arduino nanoを取り外し、とりあえず足の付け根にあたるサーボモーター二つを Servo モジュールに接続した。

プログラムはサンプルプログラムを多少変更。と言っても二つの足を同時に動かすようにしただけ。

角度が大きすぎて動きが派手になったけど。

↓ツイッターに投稿したやつ。

もっと細かい動きを Arduino IDE でプログラムしようとするとめんどくさそうだなと思った。

やっぱり M5UI Flow から遊びたいな。

でもサーボモーターを比較的手軽に M5Sack からコントロールできるようになったのは進歩。

 

あと気になるのはやはり電源のところ。あるいは M5Sack 本体とモジュールとのコネクターの接続。

これはちょっとでも接続が悪いと安定して電気が供給されないらしく、動きが変になる。

それに12個のコネクタが付いているけど、今のところ9個までしか接続できないらしい。

 https://github.com/m5stack/m5-docs/blob/master/docs/ja/module/servo.md

やはり複数のサーボモーターを一度に動かすのは結構大変そうだ。

Sponsered Link

M5STACK(その12)

M5Stackが増えていく。

困ったことに、あっちはM5Flow用でこっちはArduinoIDE用…という感じに使い分けたいために、ついつい購入してしまう。主にBASICが多い。
(それと一度ぶっ壊したから怖いという話もある)
でもファームウェア入れ替えでいろんな手段で遊べるというのはメリットだと思う、自分の好きな方法でプログラムできる。

 

そしてとうとう手に入れたM5BALA。いろんな人が遊んでるのを見てつい欲しくなってしまった。

M5Fireを買うのを忘れるといけないので、AliExpressにある本店(?)からバンドル品を購入。

今さらだけど、BALAってBalanceの略だったのか。(気付くの遅い)

 

とにかく動くところを見たいので、必要なものをダウンロードしてくる。
 https://github.com/m5stack/M5Bala
が、PlatformIO IDE という開発環境を使うこと前提にしてる。
ていうか先日いじってたPocketBeagleの開発環境にあったCloud9だよねこれ。
Cloud9上にPlatformIO IDEがあるということかな…ここでコケそうなので、この件はまた調べる。

自分としては一番慣れてるArduino IDEを使うことにした。

 

いざコンパイルしてみたらM5Stack用のライブラリをインストールし忘れてたり、MPU6050_tocknをダウンロードしてなかったりとバタバタしたけど、最終的にexamplesのBasic.inoをコンパイル&転送できた。

なのにM5BALAが動かない。特に何が間違ってると言うわけでもなさそうなので手詰まり。

 

諦める前に他のスケッチを入れてみるかとか考えたけど、まずはM5Burnerを使用して、ファームウェアを入れ直した。

前からここにいろんなM5Stack用のファームウェアがあることはわかってたので、最新のがあるんじゃ無いか?と思ったため。

するとLCDの表示は購入直後のものに戻った。元々入っていたのは公式のファームウェアだったのか。

 

でもこれでM5BALAにUSBで充電しているものに接続したところ、いきなりモーターが動き出した。

我が家の猫にちょっかい出されつつも、頑張ってバランスを取ろうとしつつ動作していることは確認できた。

(ムービー撮っておけば良かったなあ)

実際に動くモノってすごく楽しい。これは遊びがいがありそう、買って良かったものの一つになった。

 

ここに来て、最初のArduinoのスケッチで動かなかったのって、もしかして単にM5BALAのバッテリーがなかったからじゃないかと今さら気がついた。

また後日確認しよう…。

Sponsered Link

M5Stack(UI FLOW続き)

M5UI.Flow(バージョン0.8.0)の設定した後、続き。
しばらく放置かと思ってたが、突然「あ、なんか解るかも」と降って来たので、やったことをメモる。

前回の続きとはいえ、最初からでなく再度起動して接続するのはどうしたらいいのかでちょっと躓いた。
(毎回コケてばかり)


リブートして最初の起動画面で、SETUPではなく左端のUPLOADを選択すればいいのはなんとなくわかった。
wifiにアクセス成功した後、画面にはAPIKEY(一応隠す)とQRコードが表示される。

PCのWebブラウザから、
 http://flow.m5stack.com
に接続すると、APIKEYを入力する画面になるので入力。たったこれだけだった。

後からでも右上の設定アイコンで画面が出てくる。

問題はこの先。簡単に動作確認する。

中央にあるメニュー(?)の中から「emoji」を選択。出てくるグリッドに適当にチェックを入れてみた。

これを、もともと画面上にあった「Setup」とくっつける。

完成したら、M5Stackにアップロード。ダウンロードみたいなアイコンだけど、アップロード。

M5Stackと接続してるかどうかわからなかったんだけど、クリック後にM5Stackの画面がこうなってたのでデータ転送中だとわかった。

PCの画面上にも、上部にデータ転送中とか成功したとか、英文が出てる。これも最初気付いてなかった。
データ転送後、自動でリブートされて画面にさっきのドット絵(?)が出てくる。どうやら成功。

背景がなぜかファンシー。

 

実は最初このUIが自分にはさっぱりわからなかったんだけど、別件で(絶賛積みボード中の)micro:bitを使ってみようかなーと調べたりいじっていたら、インターフェースが似てたんで理解できた。
というより、micro:bitのLEDで図形を作っていて「M5Stackのアレに似てる…」とようやく気付いた。
なんだ、ものすごくわかりやすいじゃん!と、目が覚めた感じです。
気付けばなんて事ないんだが、気付かないといつまで経っても解らない。(頭固くなってるもんだから)

 

ちなみに、起動画面でAPP.LISTを選択すると、サンプルプログラムが出てくる。

M5GOとか、他のシリーズを手に入れたら使ってみたい。

Sponsered Link