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

ESP32-CAM

だいぶ前なんだけど、ESP32-CAMという、ESP32ボードにカメラが付いたものを購入。

(M5Stackのモジュールに同じ名前のものがあるけど、それではない)

AliExpress.com Product - 1pcs ESP32-CAM WiFi WiFi Module ESP32 serial to WiFi ESP32 CAM Development Board 5V Bluetooth with OV2640 Camera Module

しかし自分に届いたものは、品質はダメダメだった。
いざ使おうと思ったらピンの一部が曲がってた上に、半田が付いてないピンもあった。
正確には半田とランドがなじんでなかった。ランドがはがれてるよりはいいけど、これはちょっと…。
AliExpressの評価を星一つにしておけばよかった。
まあ壊れてるわけでもなく10ドルもしなかったので今回は目をつぶっておく。(というかもう評価できないんで)

 

これを使いたいがためにさっきVisual Studio CodeにESP-IDFのインストールをしたんだけど、その直後にArduino IDEで使う方法を見つけてしまった。

 https://robotzero.one/esp32-cam-arduino-ide/

こっちの方が楽だったじゃん…。

悔しいのでESP-IDFを使う方法はまた別途行うとして、動作確認としてお手軽だったのでArduino IDEを使用した。

 

自分の環境にはESP32関連の環境は入ってたけど、いったん最新のものに入れ直した。

あとは上記の通り、サンプルスケッチをちょっと書き換える。

自分が購入したものはAi-Thinker ESP32-CAMだったので、例と同じ。

それとwifiを使用するので、SSIDとパスワードを記載。

 

本体との接続はCP2102のTTLシリアルコンバーターを使用。

最初、書き込みできずに悩んでたけど、単にIO0とGNDを接続して書き込みモードにしてなかっただけだった。

接続して書き込みし、IO0から配線を抜いてリセットボタンを押す。

(このリセットボタンが裏側にあったので、押すのに苦労した)

その後、シリアルモニタを開いて出てくるURLの数字をWebブラウザで開くとカメラの画像に接続できる、はず。

しかしシリアルモニタ を開いても、URLらしきものが出てこない。

しかも文字化けしてた。

リセットボタンを再び押したり、書き込みし直したりしたけどダメだった。

でも書き込み時にエラーが出てるわけじゃないので、対応しようがない。

 

しかしもしかして…と思い、MacのLanScanといういつものアプリで現在LANに接続されているデバイスを確認。

Vendor名が「Espressif Inc.」となっているものがあったので、そのIPアドレスをWebブラウザで開く。

これがビンゴ。

映ってるのは天井。ボードが上を向いてたもんで。

 

困ったことに、表示がむちゃくちゃ遅い。

小さい静止画を撮るだけで数十秒かかる。ムービーなんてとても無理。

一応動くことは確認できたので、改善できるかどうか他の方法で試してみる。

Sponsered Link

Visual Studio CodeでESP-IDF

またうっかり変なことに手を出して、ESP-IDFが必要になった。
M5StackみたいにArduino IDEでも使えるかなと思ったらESP-IDFでないとダメなようで、せっかくなのでWindows10の環境にインストール。
先日入れたVisual Studio Codeはこれのため。
(また開発環境がごちゃごちゃしてきたぞ)

別にVisual Studio Codeでなくてもコマンドプロンプトでも動く(というかそれがデフォルト)けど、他にも使いたいものがあるので試しに入れてみた。

 

ESP-IDFのインストールに必要なものは以下。
 https://github.com/espressif/esp-idf
「Official development framework for ESP32」とある。
しかしドキュメントを見ると、書き込みまでに長い道のりがあって気が遠くなった。
 https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html

上記は参考程度に留めておいて、とにかく日本語のマニュアルを探す。
意外とたくさんあって、逆に迷う。


自分はVisual Studio Codeを使う以下の記事を参照させていただきました。

 https://fanoutsendai-yagiyama.blogspot.com/2017/07/esp32-idfmakelinuxemacszsh-grep.html

上記を参照すれば全然問題ないんだけど、自分の環境でちょっとだけ気になった点をメモ。

 

公式からダウンロードするものは、githubからでなくドキュメント内のリンクから。

 https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip

…なんだけど、ダウンロードに結構時間がかかった。

これを解凍して、Cドライブ直下に置くのも時間がかかった。ファイルが多いんだな。

ESP-IDFをcloneするのも時間がかかった…けど、最初のダウンロードほどではなかったかな。

単純に、マシンが非力なんで。

 

ざっと通してつまづくところはなかったんだけど、Visual Studio Codeのバージョンが違うためかタスクのところでちょっと引っかかった。

Visual Studio Codeを起動して、2度目のCtrl+Shift+Pを押してtasksで検索するところ。

「タスク:タスクランナーの構成」という項目はなかったので、「タスク:タスクの構成」を使用。

 

それとメニューに「タスク」がない。「ターミナル」の中に「タスクの実行」がある。

あとはtasks.jsoの中の「"version": "0.1.0"」が引っかかる。

非推奨なので、2.0.0を使えということらしい。まあバグではなさそうなので、このままでも使えるかな?

というか、以上の設定でmenuconfigの起動は確認できた。

しかしまだそれ以外のメニューを確認していない。

改めてESP32のモジュールを接続して確認してみたいと思います。

Sponsered Link

TTGOシリーズ(その1)

というわけで、TTGO-TS-V1.2というボードの正体を一応確認したので、続き。
使ってみようとLilyGOのgithubを確認。
 https://github.com/LilyGO
TTGOシリーズのドキュメント類がそろってる。

 

TTGO-TS-V1.2の中で、テスト用のスケッチを覗いてみた。
とりあえずボタンを使って何かやってみるかと思い、見てみると…
 https://github.com/LilyGO/TTGO-TS-V1.2/blob/master/TEST_button/Buttons/Buttons.ino
いきなりM5Stackのライブラリ使ってます。
でもLCDは違うから、画面表示は無理だと思う。
ちなみに確認してみると、使ってるLCDはST7735らしい。

 

で、書き込みはM5Stack coreではエラーになる。ESP32を選択。
試しに上記のスケッチを書き込んだけど、画面は白いままでボタンも反応しない。
やっぱり通常のLCD付きESP32として扱うしかないか。

結局、最初に入ってたスケッチに戻した。
 https://github.com/LilyGO/TTGO-TS-V1.2/blob/master/ESP32_1.44/ESP32_1.44.ino
というかこれどっかで見たことあるスケッチだと思ったら、
 https://macsbug.wordpress.com/2017/02/10/esp32-adapter-board/
これか。
いつも参照させてもらってるところだけに、見覚えがあるはずだ。

 

もしかしてと思ったら、ボタンのスケッチも別のところにあった。
 https://github.com/m5stack/M5Stack-IDF/blob/master/components/M5Stack/examples/Basics/Buttons/Buttons.ino
そうか、ESP-IDFを使うやつだったのかとここでわかった。
ただ、ESP-IDFの設定って結構面倒で、
 https://www.mgo-tec.com/esp32-idf-howto-01
を参照させてもらってやりかけたんだけど、挫折したことがある。
M5Stackでも使用できるし、オフィシャルだし、そろそろ避けては通れない気がしてきた。

 

しかしこのボード、独自のスケッチが置いてないというのもなんだかなー、という気がする。
使い方はユーザーにお任せなんだろうな。
なので過去のマイコンボードたちと同様に、もうちょっと使い道を模索する。

Sponsered Link