前回PlatformIOでTimer Camera Xのプログラムをビルドしてみました。
今度は本来の動画を扱ってみたいのでサンプルを動かしてみます。
サンプルはこちらのweb_camになります。
前回を参考に新しくプロジェクトを作成します。
main.cppにサンプルコードをそのままコピペします。
WiFi接続のところだけ自分の環境に合わせて変更します。
const char *ssid = "******";
const char *password = "******";
このままビルドするとエラーが出てしまいます。
どうやらプログラムサイズがオーバーしているという事らしいです。
Checking size .pio/build/m5stack-timer-cam/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [== ] 17.1% (used 56144 bytes from 327680 bytes)
Flash: [==========] 198.5% (used 2601194 bytes from 1310720 bytes)
Error: The program size (2601194 bytes) is greater than maximum allowed (1310720 bytes)
*** [checkprogsize] Explicit exit, status 1
================================================================= [FAILED] Took 35.09 seconds =================================================================
メモリサイズ設定が、Timer Camera Xの実際のサイズより小さくなっているための様で、platformio.iniに以下の行を追加します。
board_build.partitions = huge_app.csv
ついでに以下の行を追加し、シリアルのボーレートも指定します。
monitor_speed = 115200
これでビルドしてみます。
今度はうまく行きました。
Building .pio/build/m5stack-timer-cam/firmware.bin
esptool.py v3.1
Merged 1 ELF section
================================================== [SUCCESS] Took 34.77 seconds ==================================================
このままプログラムを書き込んで実行します。
.....
WiFi connected
Starting web server on port: '80'
Starting stream server on port: '81'
Camera Ready! Use 'http://192.168.86.23' to connect
シリアル出力に情報が表示され、WiFiに繋がるとWebカメラをホストしているアドレスが表示されます。
シリアルモニターの起動が遅くて見逃した場合はTimer Cameraをリセットするともう一度見れます。
リセットはLED表示下の小さな丸穴にクリップなどの細長い棒を入れてリセットボタンを押します。
ブラウザーで表示されたアドレスに接続し画面下部にあるGet Still、Start Streamボタンを押すと静止画や動画が表示されます。
サイドバーで画像の解像度など選べるので色々試してみるといいです。
WiFiの混み具合で動画が途切れ途切れになったり最悪全く更新されない事がありましたので、ルーターを追加してパソコンとTimer Camera Xだけ繋がる様にしたら改善されました。
サンプルではAPモードのコードも入ってましたので、コメントを外してAPモードで試す方が1:1の接続になりWiFiの混み具合に影響されないかもしれないです。
// If you want to use AP mode, you can use the following code
// WiFi.softAP(ssid, password);
// IPAddress IP = WiFi.softAPIP();
// Serial.print("AP IP address: ");
// Serial.println(IP);
ピント合わせ
カメラのレンズがねじ込み式になっていて、回してピントを合わせる様になっています。
最初ボケ気味で不良かと思いました。
ちっちゃいので回せる事に暫く気づきませんでした。
謝辞
Lang-shipさんの記事が大変参考になりました。ありがとうございます。
RTCの設定例もありそのまま動かす事ができました。