LoginSignup
0
1

More than 1 year has passed since last update.

ESP32-CAMコントローラ(Android)のマニュアル

Last updated at Posted at 2023-02-20

概要

以下の記事で紹介したESP32-CAMを操作するためのコントローラのマニュアルになります。

Androidアプリになります。
以下のURLよりアプリのインストールが可能です。

スマホからダウンロードする場合は、以下のQRコードをご利用ください。
QR_ESP32-CAM_Controller.png

主な機能は以下の通りです。

  • Webビューによるカメラ映像の表示
  • UDPによるコマンドの送信
  • ボタンクリックによるコマンドの送信
  • 各種ボタンへの任意のコマンドの設定
  • 変数及び数式を用いたコマンド値の生成
  • ボタンクリックによる変数値の変更

UDP受信機能、およびHUD(ヘッドアップディスプレイ)はオミットしています。実装後にアップグレードします。
また、個人で趣味で作成したアプリのため、動作は保証しません。

画面構成

メイン画面

メイン画面.png
ESP32-CAMを操作するための画面になります。
左右にあるボタン及び画面右のスイッチSW1、SW2にてコマンドを送信します。
画面中央にWebビューがあります。
画面左には各変数の値が表示されます。
画面右のIgnitionスイッチをONにすることで、コマンド送信を開始します。
HUD(ヘッドアップディスプレイ)スイッチをONにすることで、予め設定した画像をWebビューに重ねて表示します。
画面下に押下したボタンと送信するコマンドが表示されます。

右上のメニューにある設定を押下すると、設定画面を開きます。

設定画面

設定画面.png
各種設定値の変更を行うための画面です。
ESP32-CAMがCAMERA_MODEL_AI_THINKERにて動作することを想定しています。
設定項目は以下の通り。

接続設定
項目名 説明
ドメイン or IPアドレス ESP32−CAMのIPアドレスを指定
カメラ ポート番号 Streamで出力されるカメラ映像のポート番号を指定
通常は81
カメラPath Stream出力のパスを指定
通常はstreamを指定
カメラ画角 表示されるWebビューを回転させる
UDP送信 ポート番号 ESP32のコマンド送信用の宛先ポート番号
UDP受信 ポート番号 ESP32のデータ受信用の宛先ポート番号
UDP通信間隔(ms) 入力したコマンドを送信する間隔
ミリ秒単位
コマンド設定
項目名 説明
DEFAULT 何もボタンを押していない場合に送信されるコマンド
L_PUSH 画面左側の↑ボタン押下時に送信されるコマンド
L_PULL 画面左側の↓ボタン押下時に送信されるコマンド
L_LEFT 画面左側の←ボタン押下時に送信されるコマンド
L_RIGHT 画面左側の→ボタン押下時に送信されるコマンド
R_PUSH 画面右側の↑ボタン押下時に送信されるコマンド
R_PULL 画面右側の↓ボタン押下時に送信されるコマンド
R_LEFT 画面右側の←ボタン押下時に送信されるコマンド
R_RIGHT 画面右側の→ボタン押下時に送信されるコマンド
Switch1_ON Switch1をオンにした際に送信されるコマンド
Switch1_OFF Switch1をオフにした際に送信されるコマンド
Switch2_ON Switch2をオンにした際に送信されるコマンド
Switch2_OFF Switch2をオフにした際に送信されるコマンド
変数設定
項目名 説明
s1 ~ s10 任意の値を保存できる変数

コマンド送信について

画面にある左右の十字キーと中央のスイッチを操作することで、ESP32−CAMにコマンドを送信します。
十字キーには、操作しなかった場合(ボタンを押していない場合)に送信するDEFAULTコマンドがあります。
スイッチは、ON/OFFそれぞれに変更した際に送信するコマンドが用意されています。

変数及び数式によるコマンド値の生成

各コマンドには、変数及び数式を用いることができます。
コマンド内で変数を呼び出したい場合は、呼び出したい変数を{}(波括弧)で囲みます。
また、四則演算や()を用いた数式を変数と合わせて定義することもできます。
数式を計算した結果がコマンドとして送信されます。
以下は、GPIO14に変数s3に50を足した値を、GPIO15に変数s4に50を引いた値を送信する例です。

コマンド値の生成例
[14:{s3}+50,15:{s4}-50]

ボタンクリックによる変数値の変更

コマンドを送信せず、変数値を変更するコマンドを作成することができます。
コマンドにset関数を設定することで定義します。
値を変更したい変数に対する代入式を記述します。カンマで区切ることで、複数の変数に対する設定を行うことができます。
変数に設定する値は、送信するコマンドと同様に変数及び数式にて設定できます。
以下は、変数s3にs3+5の値を、変数s4にs4-5の値を設定する例です。

set関数による変数値の変更
set(s3={s3}+5,s4={s4}-5)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1