ESP32-CAMをテスト

Aliexpressで見つけた格安カメラモジュールのESP32-CAMを入手したので試してみました。OV2640カメラモジュール付きで$7.5という激安っぷりです。

1.ESP-IDFのインストール

まずはファームウェアをビルドするために ESP-IDF をインストールします。
インストールは https://github.com/espressif/esp-idf に沿って行えば難しくありません。(初期のESP8266の頃に比べると随分簡単になったような気がします)

環境変数を設定するため、~/.profile に以下を書き足します。

書き足したら、一旦ログアウトしてログインし直して、作業環境に反映させます。

2.ハードウェアの準備

ハードウェアの情報については、githubに上がっている仕様書を参考にしました。(※ダウンロードできなくなると手も足も出なくなるので同じものを113990580 ESP32-CAM Product Specificationに上げておきます。)

今回は、USBシリアル変換にFT234X使用のこちらを使いました。Linuxだといろいろトラブルが起きるのですが、セルフパワーで動かす分には大丈夫そうなので使ってみます。

ブレッドボード上にこんな感じで組んでみました。
シリアルの接続と、電源の供給(電源は仕様書の記載ではVccではなく5V端子に供給するようです)、それからブートローダモードにするためのIO0端子をGNDに落とす線の5本です。

3.サンプルのビルド

サンプルをビルドしてみます。

で環境設定をします。環境設定が完了したら、IO0端子をGNDに落とした状態でリセットボタンを押してブートローダモードに入ります。
※ウラ面なので、ブレッドボードに設置した状態だと大変です。リセットを押した瞬間に白色LEDが一瞬つくので、リセットを押せたかどうかは確認できます。

このとき、

としてシリアルをモニタしておくと、以下の表示が出ますのでダウンロード待機状態であることが確認できます。

screen コマンドを終了してから、

でビルドと書き込みを行います。完了したら、IO0のプルダウンを外してリセットするとシリアルに115200bps N81で以下のように繰り返し出力されます。

ということで、Hello world!を出力後、再起動を繰り返します。

4.カメラにブラウザでアクセス

以下のサイトを参考にして行いました。(参考というか、Windows環境かLinux環境かの違い程度で概ねそのまんまですが)
https://robotzero.one/esp32-camera-module/

顔認識のサンプルをgitから引っ張ってきます。

この中のCamera Web Server Exampleを動かしてみます

以下の項目を設定して保存します。

保存したら、ビルド&書き込みです。

しかし、ここで

というエラーが発生してしまいました。
ぐぐると、esp-idfが古そうな感じです。しかし、

としても更新してもダメでした。でも、よくみるとesp-whoディレクトリの下に、esp-idfが丸ごと含まれているっぽいです。ですので、こちらを IDF_PATH に設定して試してみます。

ということで、python絡みで何か文句を言っています。結局は pip がないために依存関係が満たせていないようです。

としてpipと必要なものをインストールした後、

で無事にビルド&書き込みができました。

しかし、書き込んでIO0のプルダウンを外してリセットしてもSSIDが見えません。

で見てみると、

ということで、Wi-Fiの初期化のところでBrownout Detectでリブートを繰り返しています。

PCから長いUSBケーブルで給電とシリアルコンソール確認を兼ねているので、電源のインピーダンスが高いことは確かです。そこで、1000uFのコンデンサをVcc-GND間に追加したところ、Webサーバの起動まで進むようになりましたが、スマートフォンを帰属させるとやはりリブートしてしまいます。そこで、短いケーブルでACアダプタから直接給電したところ、192.168.4.1にブラウザでアクセスすると設定画面が表示され、Get stillでカメラ画像も取得できるところまで行きました。
しかし、それでも動作が不安定です。FT234Xのシリアル変換モジュールには100mAのポリスイッチが入っているので、こいつが悪さをしているのか、あるいはまだ電源のインピーダンスが高いのかわかりませんが、今日はここまでとします。今後、レスポンスがどのくらいなのか、確認はしてみたいと思います。

#どのくらいのパフォーマンスか見たいだけなので、もう少し試してみたら、積みボードになりそう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)