最終修正日:2021/2/17
エスプレッシフシステム社はESP32を使用したソリューションとしてカメラ接続のリファレンスモデルESP-EYEを提供しています。価格がカメラセットで2400円程度とびっくり価格です。
https://www.espressif.com/en/products/devkits/esp-eye/overview
ラズベリーパイにも専用のカメラコネクタが装備されており、特定のカメラモジュール(OV5647)を接続すれば簡単にカメラソリューションに変身できました。この場合追加するカメラモジュールの価格がUS$ 19.90(2000円強)で、如何にESP-EYEが安価なのかと云う事になります。
ESP-EYEのカメラモジュールはOV2640でやはりOmniVision製です。IOポートは限定されているのでほぼ専用化されていますが、プログラムコードは自由に書き込めます。オリジナルのカメラソリューションに仕立てることが出来ます。一方サードパティ製のカメラモジュールも多々提供されています。価格がほぼ半額で、SDカードが使えたり、使えるIOは端子を出すなどアドバンテージがあります。ただ、USB-TTLの回路が省かれていたりもします。
このカメラモジュールにはPSRAMと呼ばれるメモリが追加されています。PSRAM(Pseudo-SRAM)とはSRAMの特徴を取り入れたDRAMのことで疑似SRAMと呼ばれています。このメモリをカメラフレームメモリとして使う事で転送速度を補っています。また、顔認証(ESP-WHO)のような機能を追加することも可能にしています。
このモジュールはマイクまで付いているため無線LANタイプの監視カメラソリューションにバッチリです。
CameraWebServer.ino というサンプルスケッチもあり、ArduinoIDEで動作確認が出来ます。しかし、ESP-WHOは現状ArduinoIDEでは実現出来ないみたいです。ESP-EYEはMPUモジュールがESP32で有れば技適が通っているはずです。Taobaoでは扱っているのですが、DigiKeyでは検索の方法を検討しないといけません。
手元に入手していないのでここで止めておきます。尚、カメラを扱うにはPSRAMが追加されたボードで無いと難しそうです。安易にESP32開発ボードで何とかしようと思わない方がいいみたいです。
|
|
|
|
メーカ | OmniVision | OmniVision |
|
画素数 | 200万画素 1600×1200 CMOS | 500万画素、2592(V)×1944(V) CMOS 1/4″ |
808万画素 3280×2464 1/4inch |
電源電圧 | DC2.5〜3.0V | ||
IO電圧 | DC1.7〜3.3V | ||
消費電力 | 125mW(YUVモード)、140mW(圧縮モード) | 3.3Vで max: 110mA | |
スタンバイ時消費電流 | 900μA | ||
フレームレート | 15fps(1600×1200、1280×1024) | 1080p30, 720p60 | 1080p30, 720p60 |
30fps(800×600) | |||
60fps(352×288) | |||
インターフェース |
この手のカメラはラズベリーパイで使用出来るようにモジュールが用意されるようです。ESP32-CAMもRSPと同じインターフェースを搭載すれば接続可能であり、ライブラリは先人がコンバートして使える様にしてくれることを期待できます。
ただ、ESP32の場合、RSPよりも処理能力が足りないのでフレームレートが犠牲になります。使用されるPSRAMはデータ転送速度が些か遅いのでこの点もフレームレート低下要因の一つです。
PSRAMが搭載されているかプログラムを実行して確認出来るようです。
/* * 20200722 T.Wanibe * ESP32には疑似RAM(PSRAM)が搭載されているモデルがある。カメラ接続時のフレームバッファ等に使用可能です。 * このPSRAMは4MB/8MB/なし等の違いがあるため確認するプログラムコードが必要でした。先人が作成したコードを * レタッチしました。 * 一点、実行するに当たり、ツール>ボード内のPSRAMの設定をenableに変更して実行してください。搭載されていなければエラーになります。 * もしPSRAMを搭載していないモデルなら コンソールモニタに“NULL”を書き出して終わりです。 */ #include "Esp.h" #include "esp32-hal.h" int *p; //------------------ void setup() { Serial.begin(115200); p = (int*) ps_malloc(500000); if (p == NULL) { Serial.println(F("NULL")); }else { p[0] = 12345; p[499999] = 23456; Serial.print(F("p[0] = ")); Serial.println(p[0]); Serial.print(F("p[499999] = ")); Serial.println(p[499999]); Serial.print(F("psramsize = ")); multi_heap_info_t info; heap_caps_get_info(&info, MALLOC_CAP_SPIRAM); Serial.println(info.total_free_bytes + info.total_allocated_bytes); } } //------------------ void loop() { } |
ESP-CAMにはいろいろな亜種があります。SDカードを搭載したモデルもあります。実際ESP32-CAM にはSDカードが搭載されています。
中国・Ai-Thinker社の製品がオリジナルのようです。しかし、技適が通っていないESP32-Sが搭載されているようで、使えないです。
※先人はPINOUTが同じ事を理由に技適の通っているモジュールに付け替えています。技適の問題は後回しにして、カメラ画像をWIFIで転送した場合の問題としては転送速度、ESP内での圧縮処理負荷等々多々考えられます。
監視カメラソリューションを考えた場合、カメラ自体は単体で監視し、逐次LocalのSDカードに保存する方がリーズナブルかと思います。ちょうどドライブレコーダの感覚です。必要に応じて録画結果を確認すれば良いわけです。
とは云うものの現況を確認したいことも有るかと思います。
ESP32にFTPサーバ機能を追加することが可能であることを確認しました。屋内PCからESP-CAMのアクセスポイントに接続し、ftpでログイン、ログリストを確認して必要なファイルをダウンロードして手元で画像を確認することで十分ではないかと思います。
ESP-CAM側も時間軸圧縮は不要と考えてJPEGによるタイムラプス保存で十分のような気がします。1秒間隔で保存出来ていれば十分の様に思いますし、変化がないときは保存すらしなくてもいいのではないかとも思います。2021年2月17日
AliExpressのサイトにAi-Thinker社のモジュールで技適対応のモノが紹介されていました。ストア名はCN888 Storeです。まだ国内で扱っているお店は見つかっていませんが、AliExpressで構わないですね。出来ればUSB-UARTTTL基板と亀の子になっているESP32-CAM-MBが入手出来ればイメージが湧きやすい様に思っている次第です。
免責事項
本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。
商標・登録商標
Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。