# M5Stackでの利用

`M5Stack` &#x20;

M5Stack特有の動作や利用方法について記載します。TWELITE STAGEボードが接続されていることを前提とします。

## 利用するGPIOについて

TWELITE STAGE APPでは、以下のGPIOを利用しています。

| 接続先       |                    |
| --------- | ------------------ |
| GPIO16,17 | TWELITE UART 接続    |
| GPIO02    | TWELITE PRGピン      |
| GPIO05    | TWELITE SETピン(DI1) |
| GPIO26    | TWELITE RSTピン      |
| GPIO35,36 | PS/2 キーボードコネクタ     |

※ TWELITE STAGEボードでは、回路保護を目的とした抵抗などが配線されています。詳しくは[回路図](https://mono-wireless.com/jp/products/stage-board)を参照ください。

{% hint style="danger" %}
上記、使用されているGPIOピンとの接続先については十分配慮してください。

以下は特に注意を払う必要があります。

* TWELITE 無線マイコンの当該ピンの設定を出力とする。
  * 例えばTWELITE STAGE ボードではGPIO05にDIO12(DI1)が接続されていますが、このピンをGNDに直接落したり、ファームウェアからDIO12を出力設定かつLOWに設定したりした場合、M5StackからGPIO05をHIGHレベル出力すると過大電流が流れます。
* これらのピンに（TWELITE STAGEボード以外の）別のデバイスを接続している。
  * 後述するfacesのキーパッドが該当します。TWELITE STAGE APPでは、起動時にキーパッドのI2Cデバイスを検出できた場合は、GPIO5の制御を省略するようにしています。
    {% endhint %}

## キーボード

TWELITE STAGE アプリでは、多くの操作をキーボード前提としております。以下のキーボードに対応しています。

### PS/2コネクタ

PS/2 コネクタ PS/2 キーボードを接続することが出来ます。USB共用タイプの一部など、場合によっては動作しないことも考えられます。

### CardKB

M5Stack 純正のカード型キーボード [CardKB](https://docs.m5stack.com/#/en/unit/cardkb) (Grove端子接続)です。

### M5Stack faces QWERTYタイプキーパッド

M5Stack faces の QWERTY タイプキーパッドが利用できます。

{% hint style="warning" %}
キーパッドの割り込みピンがTWELITE STAGE ボードで利用するSETピンと衝突するため、TWELITE STAGE起動時のI2Cバスチェックでキーパッドを検出した場合は、TWELITE STAGE APP ではSETピン制御を行わないようにしています。

同様に１０キーパッドなども同じピンを割り込み用に使用しています。

TWELITE PALなどスリープによる間欠動作するファームウェアでは、設定（インタラクティブモード）画面に入るためにSET=LOWとして電源投入（リセット）を行いますが、この操作を手動で行う（具体的にはTWELITE STAGEボードのDI1ボタンをリセットを行う瞬間だけ押しておく）必要があります。
{% endhint %}

キーパッドを利用する場合、以下の割り当てを行っています。

| キー         | 割り当て      |
| ---------- | --------- |
| `Alt+1..9` | 数字の`1..9` |
| `Alt+0`    | `ESC`     |

## アプリ書換

TWELITE 無線マイコン用のファームウェアを M5Stack から書き込むことが出来ます。

{% hint style="info" %}
Windows/Mac/Linuxにあるアクト(Act)のビルドなどは出来ません。
{% endhint %}

FAT32フォーマットしたSDカード上の最上位フォルダに BIN フォルダを作成し、BIN フォルダ中にファームウェアをコピーしておきます。

{% hint style="warning" %}
ファームウェアのファイル名により一部識別（RED/BLUE用）しているので、ファイル名はWin/Mac/Linux用のTWELITE STAGE でビルドしたファイル名は変更しないようにしてください。
{% endhint %}
