2026年2月27日
024-2.SPIKE-RT入門 第2回目 「ポートFでシリアル通信する」
この記事では「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」で動作する「SPIKE-RT」の使い方を紹介します。
ここではアフレルが販売している教材「レゴ エデュケーションSPIKEプライム C言語プログラミングブック」で配布しているSPIKE-RTの開発環境を使っています。同製品の紹介ページは次の通りです。
https://afrel.co.jp/product/spike/c-language/
(文/松原拓也)
◆ 通信ケーブルを用意する
◆ ポートFの送信・受信実験
ラージハブ側で1バイト(文字コード)を受信して、それをライトマトリクスに表示するというプログラムです。
シリアル通信を行うにはserial_opn_por関数とserial_wri_dat関数を使う、ということまでは理解していたのですが、それ以上の資料がなくて、しばらく手詰まりとなっていました。
そこで、気が付いたのは次の資料です。
https://dev.toppers.jp/svn_user/contrib/asp_ewarm/asp-1.7.0/doc/user.txt
SPIKE-RTはToppersプロジェクトから派生していますので、Toppersの資料なら互換性があるはずです。資料によると、serial_rea_dat関数を使うとシリアル通信で受信が可能とのことです。ただし、この関数は落とし穴があって、指定したバイト数の受信が完了しないと、処理を抜け出せずに止まってしまいます。
処理が止まらないようにするためには、serial_ref_por関数を使います。これで受信バッファを監視します。バッファに受信データが貯まっている時だけserial_rea_dat関数を呼び出すようにします。
ラージハブとパソコンを通信ケーブルで接続します。 接続するのはポートFです。パソコン側はターミナルソフト(TeraTermなど)を実行します。ボーレートは115200bpsに設定しておきましょう。
ビルド後、出来上がったファームウェアをラージハブに書き込みます。書き込みが完了すると、ラージハブがリセットされて、コピーライト表記のテキストがターミナルソフトに表示されます。
筆者が確認したところだと、これはファームウェアの書き込み時にだけ起こる現象です。ラージハブの電源をオフにして、それからオンにすると、文字化けして、コピーライト表記をうまく送信できません。送信のタイミングが早すぎて回路が正常に動作していないのではないでしょうか。
◆ エコーバック機能を禁止する
以上の技術を活用すると、マイコンとラージハブを接続して通信することも可能となると思います。
プログラムを実行中の様子
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。





