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

ESP-CAM(もうちょっと続き)

意外とメモっときたいことが増えた。

先日からいじっているESP-CAM、いろんなところからファームウェアをダウンロードしてビルドしてたんだけど、なかなか上手くいくのがなかった。

単純に、menuconfigだけいじればいいというものが少ない。

(でも自分ではプログラムそのものをいじれないんで…)

でもESP-CAMを販売してるサイトから辿って、簡単に使えたのを紹介しておく。

 

元は以下の紹介サイトから。

 https://www.open-electronics.org/a-i-thinker-esp32-cam-affrodable-esp32-camera-development-board-by-seeed-studio/

上記に、githubへのリンクがあった。

 https://github.com/donny681/ESP32_CAMERA_QR

ここのファームウェアが、JPG画像のみの出力だけど、そこそこ反応が早くてなかなかいい。

 

おさらいの意味も込めて、一応手順。(ESP-IDFの設定は済んでる前提で)

mingw32.exeを起動し、

 $ git clone https://github.com/donny681/ESP32_CAMERA_QR.git

 $ cd ESP32_CAMERA_QR

 $ make menuconfig

menuconfigを起動。

メニューから、一部設定を確認。

Camera configurationでOV2640を選択

Serial flasher config で接続しているポートを書き換え(自分の場合はCOM6)

Camera Web Server で自宅WifiのSSIDとパスワードを記載

完了したら、GNDとIO0の接続をして

 $ make flash

ビルドと書き込みが終わったら、IO0び接続を抜いていったんリセット。

 $ make monitor

エラーでもないのに途中で止まったら、リセットをもう一度押すと進むかも。

出てきたIPアドレスに/jpgをつけてWebブラウザでアクセスすると、画像が出てくる。

月じゃないです、天井のライトです。

 

/jpg_streamにすると動画。まあ動きは遅いです。

デフォルトで画像サイズは800x600になってました。

/components/camera/ov2640.cに画像サイズの設定があるから、これをいじれば変えられるかな?

 

これならかなり使い物になりそう。

画像はそんなに大きくなくてもいいから、もうちょい調整してみることにする。

Sponsered Link

ESP-CAM(続き)

先日、Arduino IDEでESP-CAMに書き込みしたんだけど、今度はESP-IDFを使って書き込みした。

参考にしたのは同じ方のブログから。

 https://robotzero.one/esp32-camera-module/

別に顔認識のツールは不要だったんだけど、下手にいじると自分がわからなくなるので上記と同じようにして動作確認。

 

MSYS2の必要なツールは既にインストール&設定済みだったので、そのまま使用。

Visual Studio Codeも入れてあるけど、結局今回はそれも使わなかった。(よくわからなくて…)

mingw32.exeを起動し、上記のページ通りに設定して、今回は珍しく問題なかった。

特にmenuconfigはちゃんと設定しないといけない。

 

トラブルというほどではないけど、初回の「make flash」はやたら時間がかかって、ノートPCの電源の方が危なくなった。

(初回は色々ビルドするもんだから)

あとは「make monitor」でアクセスするIPアドレスを確認するんだけど、出てくるのにちょっと時間がかかってまた失敗かと一瞬ビビった。けど、問題なく表示された。

画面をちょっと小さめにしてるけど、先日Macで動作確認した時よりずっと早い。

これだったら、静止画だけだったら全然問題なく使えそう。

でも動画はやっぱり遅かった。というか、結局確認できなかった。

これだと顔認識の機能は使えないと思う。

 

動画でもうちょっと使いやすくできたらなあ、というのが課題かな。

10ドルぐらいのカメラでここまでできたら良い方なのかもしれないけど。

ESP-CAMのツールはまだありそうなので、他のも試して使えそうなのを探してみます。

Sponsered Link