課題
この章の課題は、前の章で導入したシリアルインターフェイスを介して外部と通信する小さなアプリケーションを作成することです。シリアルポートから、磁力計を表すコマンド "mag" と加速度計を表すコマンド "acc" を受信することを想定します。その後、それに応じて対応するセンサーデータをシリアルポートへ送り返せるようにしてください。
今回は、必要なものはすべて UART とこの章ですでに提供されているため、テンプレートコードは用意されていません。ただし、いくつかヒントがあります。
-
バッファ内のバイト列を
&strに変換するためにcore::str::from_utf8が役に立つかもしれません。"mag"および"acc"と比較する必要があるためです。 -
磁力計 API とその機能に関するドキュメントを読む必要があります。
lsm303agrクレートは API インターフェイスを提供しますが、LSM303AGR datasheet には、このセンサーの磁場測定パラメータの詳細が記載されています。センサー特性については 13〜15 ページを、そして特に出力レジスタ形式については 66〜67 ページを参照してください。