M5STACK(その16)

しつこいですが、ESP-CAMの画像をM5Stackに表示させるメモ、解決編。
結局、M5Stackはほぼ問題なく、ESP-CAMに書き込むファームウェアを変えるだけで終わりました。

ESP-CAMは以前取り上げた、ESP-IDFで書き込む方法の「esp-who」にあるサンプルプログラムを使えばOKでした。
 https://github.com/espressif/esp-who
にある、
 https://github.com/espressif/esp-who/tree/master/examples/single_chip/camera_web_server
です。

 

参照したサイトの説明通り、githubからクローンして~/esp-who/tree/master/examples/single_chip/camera_web_serverのフォルダ内でmenuconfigで設定を書き換え、フラッシュしてmonitorでURLを確認。
この画像を参照するURLで、
 http://IPアドレス/capture
と、IPアドレスの末尾に/captureを追加すると、取得した画像のみweb上で見ることができました。
(どこかのESP32関連のフォーラムに書いてあったんだけど、場所忘れた…)
形式はjpgになってるようです。というか、なってた。

画像サイズは元の
 http://IPアドレス
側で設定できるので、その場で変えられて便利。

 

M5Stackのスケッチも、参照先のURLをcapture付に変更して書き込み。
画像サイズはM5Stack用に320x240にして、無事表示することができました。

謎の物体が映ってますが、一応ポンデライオンのフィギュアを写そうとしたんです…。

難点は見ての通り、ESP-CAM本体の配線が邪魔なことですね。
書き込みは終わってるので、動作をmonitorで見る必要がなければ電源GND以外のピンは抜いても良さそうですが。

スッキリした基板がいいなら、やはりM5StackオフィシャルのESP32-CAMを使用するのがいいと思います。

Sponsered Link

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