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」を送信してあげれば良いわけです。
この音量アップキーをメインのボタンに割り当てているため、リモートシャッターとして使えます。