1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

スタンプ型デバイス(1) ~M5StickCでデバイスを試作する~

Last updated at Posted at 2020-08-08

####まえがき
前回使用したATOM Matrixはバッテリーを内蔵しておらず,有線接続が必須であると判明した.無線化するにしてもボタン電池などを別途用意して接続する必要がある.ケースを3Dプリンターで作ったりしている人もいたようだが面倒なのでやめた😢

Bluetoothを用いてワイヤレス化させたい,バッテリー内蔵がよいということで急遽M5StickCを利用することにした

####本題
前回と同じくON/OFFスイッチを作製する

#####機器概要

  • M5StickC
  • キャップレスのハンコ入れ
  • スイッチ
  • 被膜付き銅線
  • はんだごて,はんだ

####手順
#####1.スイッチを作製
今回はスイッチをはんだ付けした
IMG_20200806_103633.jpg

#####2.IDEでプログラム作成
前回のATOM Matrixを参考にしてプログラムを作成する
IDEをインストールして設定する
スケッチ/ライブラリをインクルード/ライブラリを管理...
image.png
M5StickCと検索してインストールする
image.png
これでライブラリを使えるようになった
実装する機能は以下の通り
・ON/OFF機能実装
・Bluetoothで接続設定
・リセットボタンで再接続

StampDevice.ino
#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)
※右下,デバイスマネージャーから確認できる
image.png
image.png
image.png
シリアルポートに書き込む

pinを確認してスイッチと接続する
ペアリングをしてBluetoothで接続
ツール/シリアルポートからBluetoothのポートを選択
ここで動作確認をしておく
デバイスが接続できるようにシリアルモニタを開いておく

#####3.デバイス作製
スイッチをハンコ入れの中へ
本体に穴をあけて銅線は通す
pinに再度接続
これでデバイスは完成
IMG_20200806_111021.jpg
IMG_20200806_114345.jpg

※電源ボタンを6s以上長押しすると電源が切れる
 その後すぐには電源がつかないから注意
 しばらくして再度電源ボタン or USB接続でついた

####実行例

####あとがき
次はUnityのアプリケーションと連携して使えるようにする予定です
IMG_20200806_171646.jpg
イメージline_254673779585972.jpg

####参考
HoloLens 2 の環境構築をして実機で動かす
M5stickCを動かしてみる
M5StickC非公式日本語リファレンス
M5StickCでBLEデバイスを検索する
M5StickCのButtonクラスを調べてみた
M5StickCでBluetooth接続のマウスを作成する
ルンバをESP32でBluetooth通信で動かす方法

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?