現象
https://www.mgo-tec.com/blog-entry-m5camera-arduino.html
こちらを参考に設定も同じでやってみましたが,esp_camera_fb_get()関数でエラーも出ずに応答ない状態です


Serial.printで「fb_get_start」だけが返ってきています
ブラウザでの画面も表示されないです
captureでもstreamでも同じような状態です
https://qiita.com/n0bisuke/items/354dce451d26cb5e196a
こちらの記事はサンプルが表示されない現象ですが,同じことを行いましたが解決できませんでした
環境
- m5camera(モデルB) https://docs.m5stack.com/#/ja/unit/m5camera
- mac os10.14.6
- Arduino IDE 1.8.9
- esp ボードライブラリ1.0.2 (1.0.1でも試した)
試したこと
- arduino-esp32のボードライブラリの最新化(1.0.2)
- arduino-esp32のボードライブラリを1.0.1に(もちもんサンプルも変更)
- Arduino/libraries/ESP32を削除してからもう一回インストール
- chrome以外のブラウザで試す
- 違うMacBookを借りて最初から設定
これらを行っても「CameraWebServer」のサンプルは動かなかったでした
サンプルコードを変更
ここまでやってやっとこさコードをもっとシンプル化しようとしました
https://www.mgo-tec.com/blog-entry-m5camera-serial-monitor.html
こちらの記事を参考にwebではなくシリアルで簡単な情報をわたすものです
同じesp_camera_fb_get()関数を利用しているのですが,ちゃんと動きました

原因は?
動いたサンプルコードと動かないサンプルコードを見比べて,怪しいところを見ていくと...
cameraのconfigの設定でpixel_formatをPIXFORMAT_JPGとPIXFORMAT_RBG888で違いがありました
試しに動かないコードの方でフォーマットをRGB888にしたところesp_camera_fb_get()がうまくとおりました
むむむ...
他のフォーマットも試してみます!
他のフォーマットは?
https://github.com/m5stack/m5stack-cam-psram/tree/master
この公式ページのExampleのところでコメントアウトで書いてありました
.pixel_format = PIXFORMAT_JPEG,//YUV422,GRAYSCALE,RGB565,JPEG
書き方は自分も間違いましたが,
.pixel_format = PIXFORMAT_GRAYSCALE,//YUV422,GRAYSCALE,RGB565,JPEG
にします
PIXFORMAT_も接頭辞を忘れずに...
コード保管で
今回他のフォーマットを探すのがウェブを検索しなければいけなくて,他のIDEとかであればコード保管できるのになぁ
っと思ってVSCodeのArduinoプラグインを導入してみました!
参考URL
https://qiita.com/varlal/items/052d08d0e34c570a6f3b
そしたら,

候補がありません?
ですが.ボードを選択してさらっとコード補完ができました

ん?
公式Exampleにコメントアウトしてある以外のフォーマットもありますね...
試してみるぞ!
では,ボードに書き込もうとしたら

まだ対応していないとのこと
待ちましょう...
ということで今回はVSCodebのコード補完で確認した定数をArduinoIDEに書き込んでいくようにします
もしくはArduinoの環境設定から「外部エディタの利用」があるのでそちらでもいいと思います
参考記事
https://qiita.com/7of9/items/b9612b2073a978bdfbe9
自分のm5cameraで動いたフォーマット動かないフォーマット
- GRAYSCALE 動く
- JPG esp_camera_fb_get()が返ってこない
- RAW esp_camera_fb_get()でもらってきた値がない if(!fb)の条件に入ってしまう
- RGB888 動いた(その他444とかも動くでしょう...)
- YUV422 動いた
- t ビルド時にエラー,ここに設定すべきでないものかな
という状態でした
根本的な解決はできてはいないですが,最悪動かないことはないっぽいので他のフォーマットでやっていきます
次にbase64変換したいなぁ〜