####まえがき
前回使用したATOM Matrixはバッテリーを内蔵しておらず,有線接続が必須であると判明した.無線化するにしてもボタン電池などを別途用意して接続する必要がある.ケースを3Dプリンターで作ったりしている人もいたようだが面倒なのでやめた😢
Bluetoothを用いてワイヤレス化させたい,バッテリー内蔵がよいということで急遽M5StickCを利用することにした
####本題
前回と同じくON/OFFスイッチを作製する
#####機器概要
- M5StickC
- キャップレスのハンコ入れ
- スイッチ
- 被膜付き銅線
- はんだごて,はんだ
####手順
#####1.スイッチを作製
今回はスイッチをはんだ付けした
#####2.IDEでプログラム作成
前回のATOM Matrixを参考にしてプログラムを作成する
IDEをインストールして設定する
スケッチ/ライブラリをインクルード/ライブラリを管理...
M5StickCと検索してインストールする
これでライブラリを使えるようになった
実装する機能は以下の通り
・ON/OFF機能実装
・Bluetoothで接続設定
・リセットボタンで再接続
#include <M5StickC.h>
#include <BluetoothSerial.h>
BluetoothSerial SerialBT;
uint64_t chipid;
char chipname[256];
const int buttonA = 26; //pinの番号
void set(){
chipid = ESP.getEfuseMac(); //idの読み取り
M5.Lcd.setCursor(0*0, 0*0);
sprintf( chipname, "M5StickC_%04X", (uint16_t)(chipid >> 32)); //chipnameに上書き
M5.begin();
M5.Lcd.setRotation(3);
M5.Lcd.fillScreen(BLACK);
M5.Lcd.printf("Bluetooth: %s\n", chipname);
M5.Lcd.printf("Ver: %s %s\n", __DATE__, __TIME__);
M5.Lcd.println();
M5.Lcd.printf("State:");
SerialBT.begin(chipname); //Bluetooth開始
pinMode(buttonA,INPUT_PULLUP); //指定のpinを入力に設定
}
void setup() {
set();
}
void loop() {
if( M5.Axp.GetBtnPress() == 2 ){ // 電源ボタンクリック
M5.Axp.DeepSleep(1000000); // 1秒スリープ(リセット)
set();
}
int val = digitalRead(buttonA); //pinの信号を01で受信
if(val == 0){ //ONの時
//Serial.println("ON "); //USBのポートに「ON」送信
SerialBT.println("ON"); //Bluetoothのポートに「ON」送信
M5.Lcd.setCursor(8*5, 8*3); //本体画面のカーソルを調整
M5.Lcd.printf("ON "); //本体画面に「ON」表示
}
else{
//Serial.println("OFF"); //USBのポートに「OFF」送信
SerialBT.println("OFF"); //Bluetoothのポートに「OFF」送信
M5.Lcd.setCursor(8*5, 8*3); //本体画面のカーソルを調整
M5.Lcd.printf("OFF"); //本体画面に「OFF」表示
}
delay(100); //0.1s時間を空ける
}
M5StickCをUSBで接続する
ツール/シリアルポートから書き込むポートを選択(今回はCOM6)
※右下,デバイスマネージャーから確認できる
シリアルポートに書き込む
pinを確認してスイッチと接続する
ペアリングをしてBluetoothで接続
ツール/シリアルポートからBluetoothのポートを選択
ここで動作確認をしておく
デバイスが接続できるようにシリアルモニタを開いておく
ON/OFFスイッチ2 pic.twitter.com/8QJGhEuKzx
— ゆーま (@sagirin262) August 6, 2020
#####3.デバイス作製
スイッチをハンコ入れの中へ
本体に穴をあけて銅線は通す
pinに再度接続
これでデバイスは完成
※電源ボタンを6s以上長押しすると電源が切れる
その後すぐには電源がつかないから注意
しばらくして再度電源ボタン or USB接続でついた
####実行例
デバイスいい感じ pic.twitter.com/P5YQBkYkdz
— ゆーま (@sagirin262) August 21, 2020
####あとがき
次はUnityのアプリケーションと連携して使えるようにする予定です
イメージ
####参考
HoloLens 2 の環境構築をして実機で動かす
M5stickCを動かしてみる
M5StickC非公式日本語リファレンス
M5StickCでBLEデバイスを検索する
M5StickCのButtonクラスを調べてみた
M5StickCでBluetooth接続のマウスを作成する
ルンバをESP32でBluetooth通信で動かす方法