LoginSignup
2
1

More than 1 year has passed since last update.

PlatformIOでTimer Camera Xを動かしてみる

Last updated at Posted at 2022-07-23

M5Stack社のTimer Camera XをPlatformIOで動かそうとしましたがうまくいかなかったので記録しておきます。
といっても要点は1点のみです。

Timer Camera Xについてはこちらを参照してください。

Arduino IDEでの開発についてはこちらにドキュメントがあります。

このドキュメントに従ってPlatformIOで作成していきます。
PlatformIOはセットアップ済みとして進めていきます。

プロジェクト作成

  • PlatfromIOのHOME画面からNew Projectを選択します。

スクリーンショット 2022-07-23 14.52.24.png

  • Nameにプロジェクト名を入れます。LEDを点滅させる例なのでTimerCamLEDとしています。
  • BoardでM5Stack Timer CAMを選択します。
  • 他はそのままにしてFinishボタンを押します。

スクリーンショット 2022-07-23 14.50.46.png

Timer-Cam Libraryインストール

LibraryでTimer-Camをインストールします。

  • PlatfromIOのHOME画面でLibrariesを選択しTimerCamで検索すると出てきます。

スクリーンショット 2022-07-23 15.01.48.png

  • Timer-Camを選択しAdd to Projectボタンを押します。

スクリーンショット 2022-07-23 15.02.06.png

  • Select a projectと表示されている項目で先ほど作ったプロジェクトを選択しAddボタンを押します。

スクリーンショット 2022-07-23 15.08.38.png

Build

ドキュメントにあるコードをmain.cppに貼り付けます。
定義が反映されないため生成されたコードから#include <Arduion.h>を残し他をドキュメントのコードで書き換えます。

#include <Arduino.h>
#include "battery.h"

void setup() {
  Serial.begin(115200);
  bat_init();
  pinMode(2, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(2, HIGH); 
  delay(1000);
  digitalWrite(2, LOW); 
  delay(1000);
}

ここでBuildしてみるとうまくいきました。
Buildは下のステータスバーの✔️マークで行います。

スクリーンショット 2022-07-23 15.18.07.png

Upload

Buildが成功したのでTimer Camera XにUploadしてみます。
Timer Camera Xとパソコンをケーブルで接続しUploadボタン(→アイコン)を押します。

スクリーンショット 2022-07-23 15.22.32.png

ここでUploadに失敗してしまいました。通信レートを460800で接続しようとしています。
Arduino IDEで試してみると1500000で接続している様なのでそれが原因でできないかと思われます。

Platform.iniファイルにupload_speed = 1500000を追加します。(0が5個です)

[env:m5stack-timer-cam]
platform = espressif32
board = m5stack-timer-cam
framework = arduino
lib_deps = m5stack/Timer-CAM@^0.0.2
upload_speed = 1500000

これでUploadしてみると、ようやくうまくいきました。

スクリーンショット 2022-07-23 15.44.45.png

一応動作した様子もこちらに上げておきます。

まとめ

upload_speedが合ってなくて失敗していただけでした。
Timer Camera Xは本来画像を撮るデバイスなので、そちらも後ほどトライしてみます。

追記

Timer Camera XはPower OFFのボタンがないため、バッテリー切れになるまで点滅を繰り返すため、5分後にdeep sleepに入る様にしました。

#include <Arduino.h>
#include "battery.h"

unsigned long launched_at;

#define SHOUTDOWN_TIME  (5 * 60 * 1000)

void setup() {
  launched_at = millis();
  Serial.begin(115200);
  bat_init();
  pinMode(2, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(2, HIGH); 
  delay(1000);
  digitalWrite(2, LOW); 
  delay(1000);

  if (millis() - launched_at > SHOUTDOWN_TIME) {
    while(true) {
      esp_deep_sleep(-1);
    }
  }
}

deep sleepに入ったらONスイッチを押すと動き出します。

2
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
2
1