【PR】Seeed WioTerminalを二か月使ってみた。
Seeed StudioよりWioTerminalをレビュー用に提供していただき、早二か月が経過しました。その間にImageAvatarLiteというアプリを作成してみました。その際に思ったことをレビューします。
もくじ(Index)WioTerminalとは?
中国の深圳にあるオープンソースハードウェア企業、Seeed社が製造・販売しているATSAMD51ベースのマイクロコントローラーとRealtek RTL8720DNでBluetoothとWiFiが利用可能なIoTデバイスです。
2.4インチLCD、IMU、マイク、ブザー、microSDカードスロット、照度センサ、赤外線発光器を搭載、外部との連携ではGroveコネクタ2個とラズパイ互換の40ピンのGPIOを使って拡張も可能です。
特徴
筆者はM5StackでIoTデバイスにデビューして1~2年です。WioTerminalは似たところも持っていますが、2ヵ月使ってみて主に感じた特徴は下記の通りです。
①汎用IoTデバイスとして優れている。
Grove端子2つとラズパイ互換の40ピンコネクタがあるので使用できるGPIO数が多く、より汎用的に使うことができます。
②デバッガが使えるので開発が楽
10ピンのFPCコネクタとデバッガの準備が必要ですが、デバッグ用のSWD端子が出ておりアプリを開発する用途で活躍できます。M5StackはESP32自体はJTAGのデバッグ端子はあるのですが、LCD等と競合しているため使用できません。
③WiFiが5GHz対応している唯一のIoTデバイス(2020/12現在)
Realtek RTL8720DNは5GHzのWiFiにも対応しています。技適マーク有のIoTデバイスで5GHz帯にも対応しているのは私の知る限りではWioTerminalだけです。
④物理ボタンが多く操作性が良い
端末の上面に独立した3つのボタンがあります。画面の右下にはデジタルのジョイスティック(4方向+押し込み)もあるのでちょっとしたゲームを単体で作成する用途にも適しています。
主な購入先
WioTerminalは、色々な場所で購入可能です。公式の方に確認したところAmazonで売っている下記リンクのものも正式ルートだそうです。
- Seeed Studio(オフィシャルショップ ※海外発送です。)
- スイッチサイエンス
- 秋月電子通商
- マルツオンライン
- 千石電商
- Seeed studio Wio Terminal 開発ボード Arduino/MicroPython/Raspberry Pi互換 ATSAMD51ベース Bluetooth 5.0 デュアルバンドWiFi 完全一体設計 技適マーク入り
2ヵ月使ってみた注意点
まだ、2ヵ月しか使っていないので十分に使い込んではいない状態ですが、WioTerminalを使う上で気になった点を書きます。
ライブラリが細かく分かれている。
筆者はM5Stackでマイコンの世界にデビューしたので、最初はSeeed社のライブラリの形態に戸惑いました。M5Stackは独自のライブラリ配下にLCD・センサー等のライブラリを直接取り込んでいるため、includeはM5Stack.hだけで済みます。しかし、Seeed社が提供しているライブラリは個別にGitHubがあるので自分が使用したいものを選んでincludeする必要があります。
M5Stackのライブラリは一度にincludeするので、ビルドに非常に長く時間がかかったりスケッチのサイズが大きくなる、また最新の子ライブラリの変更がすぐに反映されないというデメリットがありますが、プログラミングの知識がある程度無い人でも他の人のプログラムを参考にしてデビューしやすいというメリットがあります。
しかし、WioTerminalは逆で個別のライブラリとなっています。恐らくSeeed社はGroveで各種センサーや拡張モジュールを販売しているのでライブラリを追加する形式を取っているのではないかと思っています。このライブラリの使い方は最初は戸惑うかもしれませんが、CPUやRAM等の資源の少ないマイコンとしては有効な選択だと思います。Arduinoもセンサーは後付けなので自分でライブラリを足していく形式です。Arduinoでマイコンデビューした方は入りやすいのではないでしょうか。
この部分は、今後もう少し調べて分かりやすい記事を作ってみたいと考えています。
●必要なライブラリの例
- SDカードを利用する場合
- FreeRTOSを利用する場合
- ネットワークを利用する場合
ネットワーク廻りを理解しようとすると少し難しい
こちらはSipeed社のMaixDuino(K210+ESP32)を扱った時にも感じたのですが、通信部分が異なるとファームウェアを2つ管理しなくてはならず少し複雑になります。
シングルコア
シングルコアなのでマルチスレッドは厳しいかな?と思っています。簡単なマルチスレッドを使っているImageAvatarLiteは今のところ問題は無さそうです。今後ネットワークを使いながら、他の動作をするといったもう少し複雑な処理も実装してみたいと思います。
メモリが少ない(RAM 192 KB)
まあ、マイコンでそんなにRAMが必要か?ということもありますが、LCDで大きなSpriteを使ったりするときにメモリが少ないと動きません。PSRAMが使えたらいいな、、、ということが何度かありました。
液晶はTN
LCDはTN液晶が使われています。TN液晶でもM5Stackで使われていたものより見やすく、視野角も広いですが、IPS液晶を見慣れてしまうとちょっと物足りない気がします。
描画ライブラリはLovyanGFXを使いましょう!
LovyanGFXはらびやん氏(@lovyan03)が開発しているグラフィックライブラリです。使いやすくESP32にも対応しているのでプログラムの共通化が容易になります。ちなみに、筆者は公式のライブラリ使ったことありません。
https://github.com/lovyan03/LovyanGFX
WioTerminal2に期待したいこと
WioTerminalは2020/5に発売されました。その間にライバル(?)M5Stackも進化しており並べると一長一短がありますがWioTerminal2に期待したいことを勝手に書いてみます。(実現できるか/採用されるか不明なのでその点はご了承ください。)
- RAMがもうちょっと欲しい
PSRAMが使えるようになると良い? - 複数Core
RTL8720をサブコアとして利用するという手もあるようですが、これだけ拡張性があるので可能ならば2コア欲しいです。 - IPS液晶
現在使われているTN液晶も見やすい方なのですが、やはりIPSにしてほしいです。
おわりに
レビュー用の機器を提供していただきWioTerminalに触れることができました。率直に使ってみた感想を書きましたが、まだWioTerminalの10%も使いこなせていない気がするので随時更新していきたいと思います。
IoTの入門機としては公式ドキュメントやライブラリが散らばっており、またESP32と比べると日本語の情報もまだ少ないので最初が難しいと感じます。しかし、デバッガが利用でき、GPIOも豊富で拡張性が高いのでマイコンの知識が既にある方はプロトタイピングで有効活用できるデバイスだと思います。