今回はiPhone/iPadを使用して簡易的なシリアル通信(UART)を使用する方法について紹介します。残念ながらTypeCを介したUSBシリアルアダプタはMacOSのみでiOSには対応していません。今回はSiliconLabs製BLE5モジュールBGX13PとiOSアプリBGXCommanderを用いてBLEを介して簡易的なシリアル通信(UART)を行います。
文字列以外のバイナリデータの送受信やボタンといったUIを実装することはできませんが、文字列の送受信といった一般的なデバッグ用途の使用であれば容易に実現可能です。SiliconLabs製BLE5モジュールBGX13Pを実装したBLE5モジュール変換基板を使用しました。なお、BLE5モジュール変換基板の他、BLE5モジュール変換基板V2も同様にBGXCommanderを用いて使用できます。
BLE5モジュールBGX13PのUARTをマイコン等に接続し、3.3V電源を供給します。TX、RXはマイコン側とBLE5モジュールBGX13P側でクロスさせて接続します。BLE5モジュールBGX13Pのシリアル通信(UART)のボーレートはデフォルトで115,200bpsとなっています。必要に応じて下記のコマンドをiOSアプリBGXCommander か、UARTを介してTeraterm等のPCから事前に設定を変更します。
ボーレートを変更する場合はコマンドモードで
>set ua b 9600
>uartu
という感じでコマンドを入力することでボーレートを変更できます。uartuコマンドで実際に設定が有効化されます。saveコマンドでROMに設定を保存するとフラッシュに設定が書き込まれるため、電源再投入でも再度、設定を変更する必要はありません。
なお、ボーレートを取得する場合は
>get ua b
コマンドで取得できます。
iOSアプリBGXCommanderをSTREAMモードにするとマイコンから出力されたシリアルデータの文字列をiOSデバイスからマイコンのシリアル通信のデータを確認することができます。
iPhoneからだと上記のような感じです。
iPadからでも同様に確認することができます。
文字列を入力する欄から文字を入力すると受信だけでなく、送信もすることができます。今回はマイコンとして先日販売を開始したエアクオリティセンサ基板の専用変換基板と接続しました。デバッグ用ポートJ4の出力をBLE5モジュールBGX13Pと接続してiOSで受信させました。UARTをRS232Cに変換するアダプタを使用すれば、RS232C接続の機器でも接続できます。ちょっとした遠隔でのデバッグ等で大活躍できそうです。
参考
iOSからBLE通信する方法として上記のアプリの他により簡単な下記のようなAPIを使用する方法があります。