# 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://stage.twelite.info/1.0-1/usage/use_with_m5stack.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
