Arduino IDEでTOPPERS/ASP、そしてWio TerminalのWi-Fi/BLE使用
このQiitaの記事で紹介されているように、Arduino IDEでTOPPERSのRTOSの一つTOPPERS/ASPが使えるようになっています。
ターゲットデバイスはWio Terminalです。
しかし、Wio TerminalにはWi-Fi/BLEが搭載されているのですが、FreeRTOSライブラリに依存していて、TOPPERS/ASPとは共存できません。
そこで、FreeRTOSのAPIをTOPPERS/ASPで実装して、Wi-Fi/BLEを使えるようにするArduinoライブラリを作ってみました。
この記事では、その使い方について説明したいと思います。
ファームウェアの更新
Wio TerminalのWi-Fi/BLEを使うには、Wi-Fi/BLE用CPU(RTL8720)のファームウェアの書き換えが必要です。
詳しくは、SeeedさんのWikiを参考にしてください。
ここでは、Windowsでの書き換え方法を簡単に説明します。
また、ここから書き換えツールをダウンロードし、どこかに展開しておいてください。
「PowerShell」や「コマンドプロンプト」を起動して、書き換えツールを展開したフォルダに移動します。
cd ambd_flash_tool
Wio TerminalをUSBでPCに接続し、下記のコマンドを実行して、一度ファームウェアを消します。
ambd_flash_tool.exe erase
次に、ファームウェアを書き込みます。
ambd_flash_tool.exe flash
これで、最新のファームウェアに書き換わりました。
ライブラリのインストール
TOPPERS/ASP Arduino ライブラリをArduino IDEにインストールします。
2021/5/2の段階では、リリース版ではなく、最新のコードをZipファイルでダウンロードして使用します。
Arduino IDEのメニューから「スケッチ」→「ライブラリをインクルード」→「.ZIP形式のライブラリをインストール」を選択して、ダウンロードした.ZIPファイルを指定してください。
同様にここからも、最新のコードをZipファイルでダウンロードして、Arduino IDEにライブラリの追加をします。
Arduino IDEのメニューから「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を選択して、下記のライブラリをインストールしてください。
「Seeed_Arduino_SFUD」「Seeed_Arduino_FS」「Seeed_Arduino_mbedtls」「Seeed_Arduino_rpcBLE」「Seeed_Arduino_rpcUnified」「Seeed_Arduino_rpcWiFi」
使い方
Wi-Fiを使う例を説明します。
「rpcWiFi」の「WiFiScan」で簡単な動作確認をしてみます。
Arduino IDEのメニューから「ファイル」→「スケッチ例」→「Seeed Arduino rpcWiFi」→「WiFiScan」を選択します。
コードの初めいある#include "rpcWiFi.h"
の前に#include <ToppersASP.h>
と#include <ToppersASP_FreeRTOS_API.h>
を追加します。
#include <ToppersASP.h>
#include <ToppersASP_FreeRTOS_API.h>
#include "rpcWiFi.h"
初めにインクルードファイル追加することで、標準のFreeRTOSを使わずに、TOPPERSで実装したFreeRTOSの方が使われるようになります。
確認するため、コンパイル結果を確認してみます。
Arduino IDEのメニューから「ファイル」→「環境設定」を選択し表示された画面で、「より詳細な情報を表示する」の「コンパイル」にチェックを入れます。
左上のチェックボタン(検証ボタン)を押してコンパイルします。
下のログを見ると下記のようにTOPPERSのライブラリが使われていれば、置き換わっています。
次のフォルダのライブラリArduino_TOPPERS_ASP-masterバージョン1.0.0を使用中:C:\Users\...
次のフォルダのライブラリArduino_TOPPERS_ASP_FreeRTOS_API-mainバージョン1.0.0を使用中:C:\Users\...
また、Wio Terminalの裏の40PinのUARTポートに、下記の出力が出ているかを見ることでも確認できます。
あとがき
FreeRTOSで動いている物をTOPPERS/ASPに変えて何かいいことがあるのかと疑問に思われるかもしれません。
TOPPERSプロジェクトでは、夏の終わりを締め切りとしたTOPPERS活用アイデア・アプリケーション開発コンテストが行われています。
Wio Terminalを使ったアプリケーションを、上記の手順でTOPPERSの成果物を使った作品に変更でき、応募資格を満たすことが出来ます!
ということで、Wio TerminalのWi-Fi/BLEでもTOPPERS/ASPを使ってみてください。