SeeedStudio XIAOのSAMD21マイコン版は、Arduino IDEで開発することができる。Arduino IDEの開発環境で、XIAOの開発ボードを使うと、開発着手までの期間は短くなる
USB接続したマイコンにUSBホスト側からコマンド送り、コマンドの指示で様々な動作をさせる。試作として、ホスト側のArduino IDEのシリアルモニター機能を使う。機能確認の方法として、一番簡単な方法だ
プログラム:開発者用LEDの明滅時間をコマンドで変更する
起動時はLEDが一秒ごとに明滅する
"BLINK"をホスト側から送ると125msecごとに忙しく明滅する
"BLINK"をホスト側から送ると125msecごとに忙しく明滅する
"SPAN=N"をホスト側から送ると指定したNmsecごとに明滅する
1.ChatGPTでLED明滅コードを生成
起動したらLED明滅が始まるだけの、簡単なプログラムをChatGPTを使ってプロトタイプした。ChatGPTの惜しいバグを修正して、期待の動作ができるようになった
2.ChatGPTでシリアルからのコマンドを受けるコードを追加
1.ChatGPTでLED明滅コードを生成
起動したらLED明滅が始まるだけの、簡単なプログラムをChatGPTを使ってプロトタイプした。ChatGPTの惜しいバグを修正して、期待の動作ができるようになった
2.ChatGPTでシリアルからのコマンドを受けるコードを追加
"BLINK"コマンドをホスト側から送ると、明滅間隔を125msecにする
ChatGPTを使って、シリアルからのコマンドを受け付けるコードを追加。loop(){}中で、ループのたびにserialポートへのデータ=コマンドの到着の有無を確認。到着していれば、到着したコマンドをシリアル出力し、ホスト側にエコーバック。"BLINK"であれば明滅間隔を125msecに変更する
ChatGPTのコードの変数の宣言位置を調整して、バグとなりにくいコードに変更して完成
3.ChatGPTで"SPAN=N"指定機能をコードに追加
指定する明滅間隔をコマンド行から取得して、明滅間隔としてセットする
受け取ったSPANコマンドが指定した明滅間隔をシリアル出力とし、エコーバック。
先のコードの素直な機能拡張なので、難なく動作
USB接続したArduino/XIAOにコマンドを送るコードは初めて書いたが、これで、コマンドを送るコードが具体化した。ChatGPTが必要なメッソドとコードを教えてくれるので、全体の実装は簡単だった
完成したコードは次回掲載し、解説する
ChatGPTを使って、シリアルからのコマンドを受け付けるコードを追加。loop(){}中で、ループのたびにserialポートへのデータ=コマンドの到着の有無を確認。到着していれば、到着したコマンドをシリアル出力し、ホスト側にエコーバック。"BLINK"であれば明滅間隔を125msecに変更する
ChatGPTのコードの変数の宣言位置を調整して、バグとなりにくいコードに変更して完成
3.ChatGPTで"SPAN=N"指定機能をコードに追加
指定する明滅間隔をコマンド行から取得して、明滅間隔としてセットする
受け取ったSPANコマンドが指定した明滅間隔をシリアル出力とし、エコーバック。
先のコードの素直な機能拡張なので、難なく動作
USB接続したArduino/XIAOにコマンドを送るコードは初めて書いたが、これで、コマンドを送るコードが具体化した。ChatGPTが必要なメッソドとコードを教えてくれるので、全体の実装は簡単だった
完成したコードは次回掲載し、解説する
いつもアクセスありがとうございます。ChatGPTを使ったマイコンプログラムの様子を共有します。