M5Stick-Cを使って、遠くにあるスマホのシャッターを切るボタンを作ったのでプログラムを紹介します。
参考にしたサイト
動作の様子
接続時
非接続時
プログラム(コピペで動く)
#include <M5StickC.h>
#include <BleKeyboard.h>
BleKeyboard bleKeyboard("wak-BLEshutter");
// バッテリー更新用
unsigned long nextVbatCheck = 0;
// 接続確認用
bool Connected = false;
// バッテリー残量取得
int getVlevel() {
float vbat = M5.Axp.GetBatVoltage();
int vlevel = ( vbat - 3.2 ) / 0.8 * 100;
if ( vlevel < 0 ) {
vlevel = 0;
}
if ( 100 < vlevel ) {
vlevel = 100;
}
return vlevel;
}
void setup() {
M5.begin();
M5.Axp.ScreenBreath(9);
setCpuFrequencyMhz(80);
M5.Lcd.setRotation(3);
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setTextSize(2);
M5.Lcd.setCursor(0, 20);
M5.Lcd.println("BLE Shutter");
M5.Lcd.setCursor(0, 40);
M5.Lcd.println("BtnA :Shutter");
M5.Lcd.println(" wak-tech");
// 起動時にしかバッテリー残量は設定できない
bleKeyboard.setBatteryLevel(getVlevel());
bleKeyboard.begin();
}
void loop() {
// ボタン状態更新
M5.update();
M5.Lcd.setCursor(0, 0);
// キー操作
if (bleKeyboard.isConnected()) {
if (Connected==false){
M5.Lcd.fillScreen(GREEN);
M5.Lcd.printf("Connected");
Connected = true;
}
if ( M5.BtnA.wasPressed() ) {
// 音量アップキーを送信
bleKeyboard.write(KEY_MEDIA_VOLUME_UP);
}
} else {
if (Connected){
Connected = false;
M5.Lcd.fillScreen(RED);
M5.Lcd.printf("Disconnect");
}
}
// バッテリー残量更新(1分毎)
if (nextVbatCheck < millis()) {
M5.Lcd.setCursor(112, 0);
M5.Lcd.printf("%3d%%", getVlevel());
nextVbatCheck = millis() + 60000;
}
// Wait
delay(100);
}
使い方
- M5stick-Cを起動する
- スマホでBluetoothをオンにして「wak-BLEshutter」に接続
- 画面が緑色になったら接続完了
- カメラを起動して、M5Stick-Cの真ん中のボタンを押す
- シャッターが切れる!
これで遠くにスマホを置いて、自分の姿を撮影できますね!便利。
若干解説
今回使用した技術はBLE keyboardです。M5Stick-Cに入っているESP32はBluetoothの機能を有しており、Bluetoothキーボードにすることもできます。
最近のカメラは音量ボタンを押すことでシャッターが切れるようになっていますので、逆にそれを利用します。Bluetoothキーボードから音量アップキー、つまり「KEY_MEDIA_VOLUME_UP」を送信してあげれば良いわけです。
この音量アップキーをメインのボタンに割り当てているため、リモートシャッターとして使えます。
M5Stick-Cを使って、遠くにあるスマホのシャッターを切るボタンを作ったのでプログラムを紹介します。
目次
参考にしたサイト
今回はLang-shipさんのプログラムを殆ど参考にさせてもらいました。送信するキーの内容のみ変更した形です。
動作の様子
接続時
非接続時
プログラム(コピペで動く)
使い方
これで遠くにスマホを置いて、自分の姿を撮影できますね!便利。
若干解説
今回使用した技術はBLE keyboardです。M5Stick-Cに入っているESP32はBluetoothの機能を有しており、Bluetoothキーボードにすることもできます。
最近のカメラは音量ボタンを押すことでシャッターが切れるようになっていますので、逆にそれを利用します。Bluetoothキーボードから音量アップキー、つまり「KEY_MEDIA_VOLUME_UP」を送信してあげれば良いわけです。
この音量アップキーをメインのボタンに割り当てているため、リモートシャッターとして使えます。