Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

課題

話を簡単にするため、ボードを水平に保ったまま、加速度は X 軸方向だけを測定します。そうすれば、先ほど観測した 見かけの 1g を差し引く必要がありません。ボードの向きによって、その 1g は X、Y、Z の成分を持ちうるため、差し引くのは難しいからです。

punch-o-meter が満たすべき要件は次のとおりです。

  • デフォルトでは、アプリはボードの加速度を「観測」していません。
  • 大きな X 軸加速度が検出されたとき(つまり、加速度があるしきい値を超えたとき)、アプリは新しい測定を開始する必要があります。
  • その測定区間のあいだ、アプリは観測された最大加速度を追跡し続ける必要があります
  • 測定区間が終了したら、アプリは観測された最大加速度を報告しなければなりません。この値は rprintln! マクロを使って報告できます。

試してみて、どれくらい強くパンチできるか教えてください ;-)

この課題で役立つ、まだ説明していない API が 2 つあります。 1 つ目は、高い g 値を測定するのに必要な set_accel_scale です。 2 つ目は、embedded_halCountdown トレイトです。これを使って測定区間を管理する場合は、 これまでの章で見てきた block! マクロを使う代わりに、nb::Result 型に対してパターンマッチを行う必要があります。