macsbug

Just another WordPress.com site

Try ArduCam in ESP8266

leave a comment »

ArduCAM Mini を D1 mini で動かしてみました。                                          2016.03.31

ArduCAM Mini は 200万画素 CMOS image sensor OV2640 の SPIカメラです。

D1 mini と ArduCam に8本の配線をするだけでネットワークカメラが出来ます。
今回の方法は、転送速度は遅い為 過度な期待はせずネットカメラを楽しみます。
画像は 320 x 240 の大きさで 室内を撮りました。
ケースのサイズ: 41 x 41 x 22 mm 。重量:25g。


準備:D1 mini と ArduCam OV2640 の2つ。
1. D1 mini with ESP-WROOM-02 With TELEC:D1 mini 技適対応版
2. ArduCam OV2640:ebay:2MP OV2640 Sensor Arducam Mini Camera Shield。
_ 8PINのもので幾つか種類があるので確認する事。2935円。

3. 切れる基板、低メスコネクター、配線材:秋月。
4. ケース:3Dプリンターで製作。41 x 41 x 22 mm。25g。

5. ArduCAM:ArduCam の説明を読む:ここに殆ど網羅されている。
6. サンプル及びライブラリー:ArduCAM / Arduino:ArduCAM/examples/ESP8266/
_ キャプチャー:ArduCAM_Mini_OV2640_Capture.ino:
_ キャプチャー:ArduCAM_Mini_OV2640_websocket_server
_ ビューワー:index.html:ArduCAM_Mini_OV2640_Capture/html/index.html
_ ビューワー:camera_demo.html:ArduCAM_Mini_OV2640_websocket_server/html/


配線:合計8本のみです。電源とGNDは太めの線を使用しました。
左:上のコネクターにArduCam。下の2個のコネクターにD1 miniを装着します。

rear_board_200_s


サンプル:4つありますが 直ぐ出来る物とできない物があります。
_  TFT Display + SD Card を使用する方法は準備ができていませんので試していません。
_  SD Card の使用方法は 前回のブログに記載しましたので参考にしてください。
_  ESP8266ではTFT Displayの記事は1件位で情報が少ない為 保留中です。

1. ブラウザーで画像をキャプチャーする方法。
_  Arduino-master>ArduCAM>examples>ESP8266>ArduCAM_Mini_OV2640_Capture
_  ESP8266 + OV2640 + ブラウザーで1画面を撮る。直ぐ動きます。
2. TFT Display + SD Card を使用する方法。今回はパスします。
_  ArduCAM_Mini_OV2640_Video_Streaming
3. ブラウザーで画像をキャプチャーする方法。
_  ArduCAM_Mini_OV2640_websocket_server
_  ESP8266 + OV2640 + ブラウザーで1画面を撮る事はできますが
_  ストリーミングは出来ない為、HTMLを書き換えてボタン操作を自動で押し
_  ストリーミング風にします。プログラム脳力が無い為この程度にしておきます。
_  速度は遅いので物足りないかも知れませんがこれくらいにしておきます。
4. TFT Display + SD Card を使用する方法。今回はパスします。
_  ArduCAM_REVC_Plus_OV2640_Camera_Playback:



面倒ですが、まだ、準備があります。
1. SSID と Password の設定:スケッチの冒頭に各自の値を設定します。
2. スケッチの確認と修正: 答え=OV2640 の Chip ID は「42」です。
_ スケッチでは ArduCamのOV2640のタイプを読み込んでチェックしています。
_ この値が合わないと「Can’t find OV2640 module!」というメッセージが
_ シリアルモニターに表示されます。
_ そのタイプの値は、Serial.println(pid,HEX); で記載すると解ります。
_ 修正方法:ArduCAM_Mini_OV2640_websocket_server で説明します。
_ 78行目あたりで 「pid 0x41 」をチェックしていますが 購入した物は「42 」
_ ですので「41 」を 「42」 に変更します。

[CODE]
//Check if the camera module type is OV2640
myCAM.wrSensorReg8_8(0xff, 0x01);
myCAM.rdSensorReg8_8(OV2640_CHIPID_HIGH, &vid);
myCAM.rdSensorReg8_8(OV2640_CHIPID_LOW, &pid)
if ((vid != 0x26) || (pid != 0x41)){
[/CODE]

3. ブラウザーで見る「camera_demo.html」は 使用する  IPアドレス
_  192.168.1.1 を自分の設定に変更すると便利です。例:192.168.100.41

<input type="text" maxlength="100" id="wsURL" name="URL" value="ws://192.168.1.1" />

ストリーミング風にする方法:camera_demo.html を修正します。
HTML、JavaScriptの不勉強にて納得のいかない恥ずかしい記述ですが とりあえず追加修正。
3箇所:// *** の所。caputure のボタン操作を自動的に押す様にします。

//var wsRecvMsg;
var HTTPrequest = new XMLHttpRequest();
document.getElementById("wsMessage").click();    // ***
function encode (input) {
document.getElementById("wsMessage").click();    // ***
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

Websocket Message:
<input id="wsMessage" onclick="SendMessage()" type="button" value="capture" /> // ***
</td>


参考:
ArduCAM:ArduCAM now Supports ESP8266 Arduino Board with WIFI Websocket Camera Demo
LabVIEW ESP8266 & ArduCAM for WiFi Camera Application
興味本位の Trial 安堵 Error:ESP-WROOM-02とArduCam(web camera)
VanceAnce TechnikBlog Linux,Arduino and more:Arducam高速でストリーミングできている
OmniVision:OV2640 Advanced Informattion Preliminary Datasheet


メモ:バッファー問題
sendClientData の 4096 は 1024 か 2048 にする。4096 が問題らしいが不明になっている。
これは ESP8266WiFi Library の WiFiClient.h  や lwipopts.h 内のバッファー設定値の問題かもしれない。
ClientContext.h も関係しているようだ。難しいのでこのままにしている。


追記:2016.05.20:動作状況。
1. サンプルの ArduCAM_ESP8266_OV2640_Capture は、320 x 240 以上でもキャプチャーできます。
2. static const size_t bufferSize = 4096; の 4096 は、2048 へ変更する事。2箇所あり。


感想:
OV2640は 3000円程する高いものですが ESP8266で動きそうなので ebayへ注文しました。
OV2640は アマゾン日本では、9073円します。
OV7660 は1000円以下で安いのですが情報少なく保留しました。
どこにでも高解像度のデジカメやスマホ、本格的なものでネットワークカメラがある中で
それらと比較すると精度や機能は到底及びません。製品を買った方が安いと思います。
そういう中でも SD や TFT Display等 機能を追加して 自作デジカメとか出来る訳です。
手の平に乗り 25g の軽さでどこへでも置ける簡単さが楽しい感じ。
ArduCamの使用に関しては 基本や応用が不十分で課題が残っています。


Written by macsbug

3月 31, 2016 @ 7:04 am

カテゴリー: ESP8266

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。