M5Camera00

M5Camera をレビューしてみた。分解したり、Arduino IDE でスマホに映したりする実験

記事公開日:2019年3月9日

こんばんは。

今回は M5Stack シリーズ製品の中の M5Camera を初めて使ってみました。
これがあまりにも簡単にスマホと連携して動作するので、殆ど市販のWi-Fi Webカメラのように使えて驚きでした。

そして、Arduino IDEでも、サンプルプログラムをほんのちょっと変更するだけで、Wi-Fi STAモードでも動作できました。
ESP32 WROVER とカメラモジュールの OV2640 だけの構成で、ここまでコンパクトに簡単にできてしまうということがスゴイです。

スポンサーリンク

ESP32 WROVER については、今回、私は初めて使用したので、正直良く分かっていませんが、Espressif Systems 社の ESP32-WROOM-32 の構成に 8MB の PSRAM というメモリがプラスされた感じのようです。
この PSRAM を利用して M5Camera が動いているように見受けられました。

M5Camera をクイックスタートで動作させると、プログラミング一切不要で動作しました。
これは、多分、ESP32 の Soft AP モード で動作しているのだと思います。
Soft AP モードは、M5Camera ( ESP32 WROVER )自体がルーターになるモードですから、映像のストリーミングは少々遅いです。

ですが、外部ルーターを介す Station モード ( STA モード ) の場合は、かなり高速でストリーミングできていると思いました。
まぁ、ルーターの通信能力によるところですが、高速ルーターを使えばもっと速くなると思います。
後で動画を紹介しているので、見てみてください。
Arduino IDE プログラミングで実現できます。
ここまで出来るなんて、スゲーと思いましたね。
今回は、サンプルスケッチをほんのちょっと変えるだけで動作するので、かなりおススメですよ。
そんなわけで、簡単なレビューを紹介したいと思います。
因みに、私は素人アマチュアですので、何か誤りがありましたらコメント投稿等でご連絡いただけると助かります。

ところで、今回は皆さまからの支援金で、M5Camera も購入させていただきました。
本当にありがとうございました。
この記事が書けたのも、みなさまのおかげです。
m(_ _ )m

ところで実は正直なところ、SPRESENSE カメラが欲しかったのですが、ちょっと手が出ない金額でした。
それに、今年は私自身の生活の為に本業の割合を多くしたため、電子工作やプログラミングのできる時間が極端に減ってしまいました。
ですから、たとえ支援金を頂いて購入できたとしても、SPRESENSE を一から勉強し直す余裕がありませんでした。
ですから、当分見送ることにしました。
リクエストがあった方々にはとても申し訳ない気分ですが、どうかご理解いただきたいと思います。

※Arduino core for the ESP32 のバージョン stable 1.0.1 と 1.0.2 で、サンプルスケッチの構成が異なります。
1.0.2 用のスケッチを新たに追加しました。
(2019/04/28)

 

    【目次】

  1. 使ったもの
  2. M5Camera 外観
  3. M5Camera をザッと分解してみる
  4. M5Camera をクイックスタートで使ってみる
  5. M5Camera を Arduino IDE サンプルスケッチで使ってみる
  6. 編集後記

使ったもの

M5Camera

Espressif Systems 社の ESP32 WROVER を搭載し、技適取得済みなので、日本で 2.4GHz帯 Wi-Fi および Bluetooth 通信が安心して使えます。
WROVER は ESP32-WROOM-32 に 8MB の PSRAM をプラスして搭載したようなものだと思えばとりあえずは良いと思います。
そして、M5Stack社によって、カメラモジュール OV2640、USB TypeC、GROVE コネクタを搭載して、コンパクトにまとめたモジュールにしています。
ESP-IDF や Arduino IDE で開発できます。
スイッチサイエンスさんのウェブショップで販売しています。

https://www.switch-science.com/catalog/5207/

その他、Wi-Fi ルーター環境、パソコン、USBケーブル等

M5Camera 外観

では、まず外観を見ていきます。
外箱はこんな感じです。

m5camera01.jpg


実物はかなりちっちゃいですね。
このケースは手軽で私は好きですね。

次に内容物は以下のような感じです。

m5camera02.jpg


上記のように、カメラの所に保護シールが貼ってあるのでそれを剥がして使用します。
ちなみに私はしばらく剥がすのを忘れて使っていて、かなり後になって気付きました。

次に、M5Camera の本体の外観はこんな感じです。
かなりちっちゃいですね!
もう殆ど ESP32 WROVER の大きさに収めている感じで、M5Stack 社の開発チームの努力が素晴らしいですね。

m5camera03.jpg


リセットボタンは下図のようなところにあります。

m5camera04.jpg


反対側の側面は下図の様に特に何もありません。

m5camera05.jpg


LEGO ブロック系のアームは下図のように自在に回転して、とっても便利です。
LEGO と組み合わせるという発想は Great! です。
この面に GROVE コネクタの I2C インターフェース GPIO ピン番号も記載してあって、便利です。
ここに技適マークがありますね。

m5camera06.jpg


そして、下側は、下図の様に USB Type C があり、GROVE コネクタもあります。

m5camera07.jpg


このようにアームがカメラスタンドの様に使えて、カメラ撮影もし易くて良いですね。

以上、外観でした。
よく練りに練って考えられていてスバラシイと思いました。

では、次では M5Camera を分解してみます。


スポンサーリンク


「M5Camera をレビューしてみた。分解したり、Arduino IDE でスマホに映したりする実験」への11件のフィードバック

  1. camera init failed with error 0x20001 となって、IPアドレスが出ません。何か対処法をお教え願いませんでしょうか?

    1. akai さん

      記事をご覧いただき、ありがとうございます。

      まず、お聞きしたいのは、どのような環境でコンパイルされましたでしょうか?
      この記事では、古いバージョンを紹介していますが、
      私は、最新バージョン
      Arduino IDE 1.8.9
      Arduino core for the ESP32 stable 1.0.2
      でも動作OKでした。

  2. バージョンは、Arduino1.8.9です、コンパイルは、できていて、シリアルモニターを見ながらカメラのリセットボタンを押したら、WiHiコネクトの前まではこの記事と同じなのですが、そのあとが、上記レポート文のようになりIPアドレスが出てきません。しかし2回ほどIPアドレスが出たことがありましたが、映像を見る前にWiHiが切れました。そのあとは、camera init failed with error 0x20001が出るだけです。電圧が不安定なのでしょうか?
    エラーの意味が分からずお便りさせていただきました。よろしくご教示願います。

  3. esp32 byEspressf system のことでしょうか? 102となっています。それと、シリアルモニターですが、一部ですが映してみました。
    entry 0x400806a8
    E camera.c:1249 camera probe(): detected camera not supported.
    E camera.c:1249 esp_camera_init(): camera probe failed with error 0x20004
    となっています。

    1. akaiさん

      ありがとうございます。
      それですね。
      esp32 by Espressf system は別名 Arduino core for the ESP32 です。
      そのバージョンが大切です。
      まともに動かないバージョンがあるので要注意です。
      1.0.2 ということですね。
      それと、そのエラーメッセージを送って頂きありがとうございます。
      その情報が無いと、私も原因は全く分かりませんので。

      さて、そのエラーメッセージから、M5camera のマイコン ESP32-WROVER とカメラモジュールOV2640との通信ができていないようです。

      実は、今、気付いたのですが、Arduino core for the ESP32 が stable 1.0.1 と 1.0.2 では、「スケッチ例」にあるサンプルスケッチの構成が変わっていました。
      ですから、1.0.2用にスケッチを描き替えねばなりません。

      まず、メインスケッチのタブの10行目をコメントアウトし、12行目のコメント記号を削除して、
      #define CAMERA_MODEL_M5STACK_PSRAM
      とします。
      そして、18-19行目のSSIDとパスワードをご自分のルーターに合わせて書き換えます。
      そして、そのスケッチのcamera_pins.hタブを開き、44行目を
      #define SIOD_GPIO_NUM 22
      とし、そして55行目を
      #define VSYNC_GPIO_NUM 25
      と変更してください。
      その後、コンパイル書き込み実行してみてください。

      あるいは、この記事に載せてあるコードをコピペして、メインスケッチのタブを書き換えて、SSIDとパスワードを書き換えても動作すると思います。

  4. まずもって、早速の対応ありがとうございます。stable 1.0.2版をご用意いただき大変感謝しております。しかしながらエラーが次のようになっています。
    E camera.c:1049 camera_probe():Detected camera not supported. E camera.c:1249 esp_camera_init(): camera probe failed with error 0x20004
    また、自分なりに最初の#defineをそれぞれ入れ替えて試しましたが、結果は同じでした。それと気になる事が2つあります。
    1つは、私の5Mは、アマゾンにある中華番であること。2つ目は、ケーブルをジョイントで変換して使っていることです。
    この2つがこれらのエラーに影響しているのではと危惧しております。せっかくの10連休に御手間を取らせてしまって恐縮している次第です。因みにコンパイルは、できています。

    1. akaiさん

      なるほど。
      まず、M5Camera が M5Stack社のものでなければ、私にもちゃんと動作するかどうか分かりません。
      そもそも GPIO のピンアサインが全く異なると思います。

      それと、USBケーブルはジョイントしてあっても良いのですが、短く良質なケーブルを使うことです。
      安物のケーブルはおそらくエラーが出ると思います。
      それと、M5Stack社純正のM5Camera付属のType-Cケーブルは、Type-Cのコネクタの挿す方向が上下で異なっており、挿す方向を上下入れ換えるとコンパイルが通るということがあります。
      以上、私が言えることはここまでです。
      とりあえず、M5Stack社純正のM5Cameraに替えてみることですかね。
      そもそも、M5Stack社自体が中国メーカーです。
      ただ、M5CameraはAmazon Japanにはまだ販売されていなかったと思います。
      スイッチサイエンスさんから購入できます。

      1. いろいろお手数おかけしました。とても安く売ってあったのでつい購入しました。初期設定では簡単に映像が出ましたが、反転画像で車のバックカメラとしては使えそうなのですが、監視用としては反転しているのでプログラムの変更を試みた次第です。
        一度スイッチサイエンスさんのM5を購入しようと思います。
        いろいろと勉強になりましたありごとうございました。 akai

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください