Web Serial API を Sipeed Maix Bit-Mic(Maixduino) で試してみました。
本家サイトは、Getting started with the Web Serial API です。
こちらも参考にしました。
Web Serial API+ESP32(Arduino)研究 その1 シリアルコンソール
おんちゃんは、 Arduino を、Sipeed Maix Bit-Mic(Maixduino) にして、Edge からの出力を、 Sipeed Maix Bit-Mic の
LCD に表示してみようと思います。
これが、結構、トラブりました。
1. 問題点
1) Maixduino の Serial の受信バッファが、少ない(64 byte?)。
2) LCD への書き出しは、結構遅い。
上記2つの問題が関係して、Getting started with the Web Serial API のサンプルプログラムで、 Connection を実行した時の、
最初のデータが、LCD にちゃんと出てこない。
Serial の受信バッファを、512 byte 位に増やせれば、問題解決だが、ソースを見てみると ringBuffer を使っていて、
それから先は判らないので止めました。
2. 開発環境
1) PC側
Windows10 + Edge
Apache: Windows版 with SSL
2) ボード側
board:Sipeed Maix Bit-Mic
board 開発:Visual Studio Code + Platformio IDE
platform = kendryte210
board = sipeed-maix-bit-mic
framework = arduino
3. Board 側、プログラムの作成。
前記のLCD の表示のデータ抜けの対策として、
結局、Maixduino(Arduino) で、 別コアタスクを起動して、 Serial からの受信を、ダブルバッファリングして、データの抜けを対策をしました。
Dual Task のプログラムは、Sipeed MAix Bit Arduino Dual Task program
プロジェクト: hello_k210_arduino
main.cpp
platformio.ini
4. PC 側の準備
1) Windows10 に おんちゃんは、httpd-2.4.48-win64-VC15 を入れました。
SSL が必要です。
Windows版 Apache の導入は、Windows10にApacheをインストールする方法 を参考にしました。
SSL の導入は、こちら を参考にしました。
2) Edge の設定。
edge://flags
#enable-experimental-web-platform-features 有効にします。
3) web_serial_code_lab.html、script.js 、style.css の作成。
Getting started with the Web Serial API を、 1 から 9 迄、順番に辿っていって、作成します。
注1) 記述に一部誤りがあるので、そこは下記にします。
上記、3 ファイルは、導入した、 Apache の htdocs ディレクトリー下に配置します。
Edge で、上記、 web_serial_code_lab.html にアクセスすれば、OK です。
必ず、 https:// でアクセスしてください。
例)
https://localhost/web_serial_code_lab.html
表示されたページの、 connect ボタンをクリックして、comxx を選べば、接続できます。
この時、Edge の開発者ツールで、 コンソールを出しておけば、 ログが表示されて、
Sipeed Maix Bit-Mic へ送ったメッセージが確認できます。
同じ内容が、 LCD で表示出来ればOKです。
Sipeed Maix Bit-Mic に 別途 USB-TTL を付ければ、そちらの Serial2 Terminal から、
受信データが確認できます。
Serial2 Terminal で、下記を送信すると、両側のボタンの色をそれぞれ、変えられるみたいぞね!!
※ Serial2 Terminal には、Arduino IDE のターミナルを使うと、送信が簡単ぞね!!
以上ぞね!!!