Wio Terminalを触ってみた

初めて筐体の写真を見たときにちょっとほしいなと思ったので、Seeedから販売されている[Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html)を購入して触ってみました。

Wio Terminalの購入先

* [Seeed](https://jp.seeedstudio.com/Wio-Terminal-p-4509.html)
* [スイッチサイエンス](https://www.switch-science.com/catalog/6360/)
* [マルツのオンラインストア Wio Terminal](https://www.marutsu.co.jp/pc/i/1633550/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/b46878bf-a8db-900f-e8b2-5a1870a1dfcd.png)

# スペック

スペックは以下のようになってます。

* CPU：120MHz(Max 200MHz) ARM® Cortex®-M4F ATSAMD51P19
* RAM: 192KB
* FLASH: 4MB（外部FLASH）
* 通信: RTL8720DN　Wi-Fi（802.11 a/b/g/n 1x1, 2.4GHz & 5GHz）、Bluetooth 5.0　（技適マーク付き）
* ディスプレイ：2.4インチ 320x240ピクセル
* センサ：マイク、光センサ、3軸加速度センサ
* スイッチ：3ボタン + 5方向スイッチ + 電源、リセットスイッチ
* 出力：スピーカー、赤外線LED
* GPIO：40ピン（Raspberry Pi 配列） ＋ Groveコネクタ x 2
* microSDカードスロット
* サイズ：72 x 57 x 12 mm

上部に3つのボタンがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/19debf1c-c51a-1a14-c7cb-119c0a9b3b36.png)

青く丸いのが5方向のスイッチです。下部にはGroveコネクタ2つと電源&PCとの接続用のUSB Type-Cコネクタがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/d549ae78-2dd9-22df-cf81-82fd90addb08.png)

スピーカーとマイクは前面の穴の裏にあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/401f137f-507d-1b41-dbcd-0cceafad7668.png)

左サイドには電源、リセットスイッチとmicroSDカードスロットがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/0c9cef0f-445c-fc81-fa97-8ab6fc585274.png)

光センサと赤外線LEDは裏面の透明パネル面に取り付けられています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/168ce0c9-1e94-a7fc-43a1-51cac0da7dfa.png)

裏面の40ピンコネクタはRaspberry Piの40ピンと互換性があり、Raspberry Piに指すこともできます。ただし、そのままだとRaspberry PiのLANコネクタと干渉するため、[連結ピンヘッダ](http://akizukidenshi.com/catalog/g/gC-02485/)で延長する必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/ca5c2e9f-b2c6-3039-5642-d0fd8236b59a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/0290478a-df79-fbf8-2d63-674c14cf1c15.png)

内部に磁石があるようで、冷蔵庫などにくっつきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/cfebe7ac-b4a8-7476-a3b2-9769229ae1b7.png)

初期のファームウェアとしてゲームが入っています。ちょっと遊びましたが、結構難しいｗ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/36dd4267-dc16-4eb5-b45f-1bc644144259.png)


# プログラミング準備
Wio Terminalはさまざまな開発環境で開発することができますが、とりあえず簡単にいじるのにArduino IDEを使ってみます。
手順はオフィシャルのWio Terminalの[ページ](https://wiki.seeedstudio.com/Wio-Terminal-Getting-Started/)に掲載されていますが、以下にも私が行った手順を載せておきます。

通常のボードを追加するパターンと同じくWio Terminalを追加します。

ArduinoIDEを起動し、`ファイル`→`環境設定`を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/85a5888a-3aa2-93ee-e46a-98fc5f85ac91.png)

`環境設定`の`追加のボードマネージャのURL`に`https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json`を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/f1e099f5-5d8d-9516-f18e-9cc039aa9946.png)

次に`ツール`→`ボード`→`ボードマネージャ`を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/62a07cb2-6b89-336a-c368-baab712843f5.png)

`ボードマネージャ`で`wio terminal`を検索し、`Seeed SAMD Boards`をインストールします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/9c15a86c-30c8-ad5a-a7e6-489a26991287.png)

`ツール`→`ボード`→`Seeeduino Wio Terminal`を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/03427262-6ae6-582a-6a69-3d4cef042cee.png)

これで基本的な準備は完了です。

# プログラム書き込み
せっかくLCDがついているので、最初のプログラムはLCDを使ってみたいと思います。
LCDのライブラリはボードマネージャのプログラムに含まれているので、基本的な使い方であれば追加のライブラリは必要ありません。
LCDのライブラリの使い方はオフィシャルの[ページ](https://wiki.seeedstudio.com/Wio-Terminal-LCD-Overview/)のページに書いてあります。ここを参考にとりあえず、画面全体を赤⇒緑⇒青と1秒おきに切り替えるプログラムを書いてみました。

```cpp
#include"TFT_eSPI.h"
TFT_eSPI tft;

void setup() {
  tft.begin();
  tft.setRotation(3);
}

void loop() {
  tft.fillScreen(TFT_RED);
  delay(1000);
  tft.fillScreen(TFT_GREEN);
  delay(1000);
  tft.fillScreen(TFT_BLUE);
  delay(1000);
}
```

Wio TerminalをUSBでPCに繋ぐとドライバのインストールが自動的に行われ、COMポートとして認識されます。ArduinoIDEの`ツール`→`シリアルポート`で、認識されたCOMポートを選択すれば書き込む準備はOKです。書き込むボタンを押せば、書き込みが開始します。

特に困りごとなくプログラムの書き込み、動作が確認取れました。

# Wio Terminal情報

* [日本語ウィキ](https://wiki.seeedstudio.com/jp/Wio-Terminal-Getting-Started/)

# あとがき
価格からするともりもりでお得なマイコンボードだと思います。遊べる幅は広そうですね。
なによりもArm Cortex-Mなのが良いですね。個人的にはDAPLinkも内蔵してmbed対応ボードとなってほしかったですが。