[電子工作]ESP32-CAMの使い方

ーーーー目次ーーーー

1.ESP32-CAMとは?

2.Arduino IDEのESP32環境の使い方

3.ESP32-CAMをスチルカメラにしよう

ーーーーーーーーーー

1.ESP32-CAMとは?

  中国のAi-Thinker社が開発した、ESP32とカメラモジュールを搭載したボードです。特徴は次の通り。

 

   ・外付けアンテナに対応したESP32-WROOM32互換チップを搭載。

   ・4MBのPSRAMを搭載。

   ・OV2640(1600x1200)又はOV7670(640x480)のカメラモジュール搭載。

   ・MicroSDカードスロット搭載。(SD_MMC仕様)

   ・USBコネクタや、USB-シリアル変換チップが搭載されていません。別途、USB-シリアル変換ボード

    又は、ESP32-DevKitのようなボードと、接続ケーブルが必要です。

   ・8ピン×2列 の端子を持ち、電源、フラッシュ書き換え用のシリアル、8個のGPIOが割り振られて

    いますが、実はGPIOは全て使用済みで、自由に使えるGPIOはありません。(ああ、残念。

    唯一、シリアルモニタを使わない場合、U0TをI/Oに使えます。)

 

 但し、訳あって余り詳しいことは書けません。

  ESP32と同じく、Arduino IDEで開発可能です。その場合、 ツール−ボード で、「AI Thinker ESP32-CAM」

 を選んで下さい。

 

  なお、これによく似た製品に、TTGO社のT-Camera ESP32-WROVER-B OV2640 Camera Module 0.96 OLED

 という製品があります。USBコネクタとUSB-シリアル変換チップを搭載し、OV2640カメラモジュール、OLEDパネル、

 マイク(搭載しないものもあるようです)、人感センサ、温度/湿度/気圧センサ(搭載しないものもあるようです)

 も搭載していますが、SDカードスロットや拡張用ピンがありません。技適も取れているので、Webカメラにしか

 使用しない場合は、こちらをお勧めします。

 

2.Arduino IDEのESP32環境の使い方

 (1)Arduino IDEのインストール(ESP32の開発環境と同じです。)

   まず、Arduino IDEをインストールしてください。

   その後、Arduino IDEのESP32開発環境Installation instructions using Arduino IDE Boards Manager

   を参考にして下さい。分からない方は、ネットを探せば日本語のページが見つかりますので、それを参考に

   してください。

 

 (2)フラッシュのプログラム方法:USB-シリアル変換ボードを使用する場合

   次のように接続すれば、Arduino IDEからプログラム可能です。シリアルモニタも使用可。

USB-シリアル変換ボード

ESP32-CAM

説明

+5V

+5V

+5V電源(ESP32-CAMに+3.3Vレギュレータ搭載)

GND

GND

グランド

TXD

RX

PC→ESP32-CAM

RXD

TX

ESP32-CAM→PC

GND(ESP32-CAMのGNDの方が簡単)

IO0

プログラム時はIO0はGNDとショート。起動時はオープン。

 (3)フラッシュのプログラム方法:ESP32-DevKitを使用する場合

   次のように接続すれば、Arduino IDEからプログラム可能です。但し、シリアルモニタは使えません。

ESP32-DevKit

ESP32-CAM

説明

+5V

+5V

+5V電源(ESP32-CAMに+3.3Vレギュレータ搭載)

GND

GND

グランド

RX

RX

PC→ESP32-CAM

GND(ESP32-CAMのGNDの方が簡単)

IO0

プログラム時はIO0はGNDとショート。起動時はオープン。

 (4)サンプルの実行

   ・LEDを点滅するサンプルを実行

     IO0をGNDとショートしてから、ボードとPCをUSBケーブルで接続します。(PCのコネクタに直接接続することを推奨)

     ツール−ボード で接続しているボードを選びます。そして、ツール−シリアルポート で

     ボードのCOMポート番号を選びます。

     ファイル−スケッチ例−01.Basic−Blink を選びます。

     プログラムの先頭に、次のコマンドを追加します。

       #define LED_BUILTIN 33

     →(スケッチ−マイコンボードに書き込む)を選ぶと、プログラムがコンパイルされ、ボードに転送されます。

     その後、一度、USBケーブルを抜き、IO0をオープンにしてから、ケーブルを挿すと、ボード裏の赤いLEDが

     点滅します。

     なお、

       #define LED_BUILTIN 4

     に変更すると、表の白いLEDが点滅しますが、眩しいので注意して下さい。

 

3.ESP32-CAMをスチルカメラにしよう

  ここのHPにあるプログラムを書き込み、フォーマット済みのMicroSDカードをセットし、RSTボタンを押すと、

  フラッシュが光り、撮影した画像がMicroSDカードに保存されます。しかし、毎回、リセットされるので、

  ホワイトバランスが合わず、色がおかしいです。

  そこで、私はU0Tにシャッターボタンを付け、リチウムバッテリーを搭載したものを作成しました。

  回路図とプログラムは次の通り。

    回路図   ソフト

 

  ファイル名は、「picture??.jpg」です。但し、??は1〜256までの数字のようですので、256枚までしか、

  保存できません。必要なら、プログラムを書き換え、より多くのファイルを保存できるようにしたり、

  一定時間毎に保存するとか、拡張すると良いでしょう。

   

  注意.ファイルの日付は、「1980/01/01 00:00」になります。

  注意.ボードに、PSRAMを持たないボードを選ぶと、解像度がSVGA(800x600)になります。

      ESP32 Wrover ModuleやAI Thinker ESP32-CAM等を選べば、解像度はUXGA(1600x1200)になります。

  注意.プログラムを見ると分かりますが、MicroSDカードスロットはHSPIに接続されています。よって、SD_MMC

      ライブラリを使用下さい。

 

  これ以外の使い方は、ネットを検索して、自己責任で実行下さい。

 

Arduinoの紹介はこちら。 

 

Arduino IDEで液晶パネル、タッチパネル、SDカードを使う方法は、こちら。

 

「STM32の性能を発揮するには?」はこちら

 

「ESP32の使い方」はこちら