ダイソー Bluetooth リモコンシャッターのボタンは VolumeUp キー

 客先へ向かう途中で立ち寄ったダイソーに、なんかすごいのありました。


http://dl.ftrans.etr.jp/?8fbf51f3606b4c57b7cfa72d7969607e20d0ab2c.jpg http://dl.ftrans.etr.jp/?040b319d13414ef9bcc9209e70add2eaa7b0731a.jpg


 Bluetooth リモコンだとぉ?


http://dl.ftrans.etr.jp/?b32b4617794c48e4b99b46118e02557ac89a7c8a.jpg


 普通に凄いので、色違いで買ってきました。


 さっそく工作机の LIVA X2 ( Bluetooth を有効化した Windows Server 2016 ) とペアリングさせてみます。


http://dl.ftrans.etr.jp/?98bdc8fc59b440fc9d4513446a0b7f9eec33bec4.png http://dl.ftrans.etr.jp/?d80f1bec3b8a4faa811da9bd6c8e8947ce7aa1d9.png


 「AB Shutter 3」というデバイス名にて認識しました。
 プロファイルは HIDキーボード です。
 Bluetooth リモコンシャッターのボタンを押すと何らかのキーコードが返ってくるパターンな気がします。
 メモ帳とかだと良く分からないのでキーコードを取得するだけの簡単なプログラムを書きましょうか。

using System.Windows.Forms;

namespace CheckKeyCode
{
    public partial class Form1 : Form
    {
        private System.Windows.Forms.TextBox TextBox = new System.Windows.Forms.TextBox();

        public Form1()
        {
            InitializeComponent();

            this.KeyDown += Form1_KeyDown;
            this.KeyPreview = true;
            this.Controls.Add(TextBox);

            TextBox.Dock = DockStyle.Fill;
            TextBox.Multiline = true;
            TextBox.ReadOnly = true;
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            TextBox.Text += string.Join("/", new string[] { e.KeyCode.ToString(), e.KeyValue.ToString(), e.Shift.ToString(), e.Control.ToString(), e.Alt.ToString() }) + "\n";
        }
    }
}


 やってみると

上(iOS)ボタン VolumeUp/175/False/False/False
下(Android)ボタン Return/13/False/False/False
VolumeUp/175/False/False/False

と出ました。

  • VolumeUp キー を押したことと等価
  • Androidボタンのほうは、先に Returnキー(Enterキー)を押す(EnterしてVolumeUp)

 という風のようです。


http://dl.ftrans.etr.jp/?d04f234550a848d193fda2db9eaaebf33cf5e38a.jpg http://dl.ftrans.etr.jp/?f55cfb759a214e4fb1d1cb7775e66f6d05e2a48b.jpg


 中国・深圳 LENZE 社の ST17H26 という BLE4.0 マイコン1チップで全てやってるみたい。
 データシートは こちら で見れるようですが

  • 48MHz 32bit MCU
  • 16KBのプログラムメモリー(OTP)、6KBのSRAM
  • 9つのGPIO(プルダウン/プルアップ可)
  • I2C(スレーブのみ)
  • 10ビットADC 4チャンネル
  • PWM 4チャンネル
  • 3つの32ビットタイマー
  • Bluetooth 4.0 準拠、1Mbpsデータ転送モード

という、かなり強烈なマイコンチップのようです。
 OTP(ワンタイムプログラム)なので、弄れる余地はありませんが、Lenze SDK と呼ばれる開発キットも提供していて、この手の BLE アプリケーションがすぐに作れるというフレコミ。
 原価構成からみて数十セントで調達していると思われ・・・
 中国の圧倒的パワー、普通に凄すぎます!


追記(2017/10/30)
 パソコンに繋がるくらいなので、Bluetooth LE に対応している ESP32 にも繋がるはず・・・ということで、GATT の勉強を兼ねて ESP32 に繋いで Lチカ させてみました。
 まだペンディング(未解決の課題)が残ってますが、とりあえずボタンを押してチカチカさせるところまでは成功しました。
 詳しくは こちら をどうぞ。


(追記)
 少し弄ると Enter+VolumeUp → VolumeDown に改造できるようです。
 こちらの方の記事 をどうぞ