リアルタイム制御ではバックグラウンド処理とフォアグランド処理に分けることが必要になります。バックグラウンドですべき処理を検討します。
◀ この記事の前に: 複数のMCUをつなぐ
▶ この記事の次に:
バックグラウンドですべき処理
バックグランドですべき処理の特徴は以下のとおりです。
- リアルタイム性が高い
- 自律的な動作( 制御 )が求められる
- 処理に同期が必要
ハードウエアはその仕様によっては、時間に関して精度の高い処理を求められる場合があります。
Qumcum Lab. ではサーボモータの制御が、時間に関して精度の高い処理が必要です。サーボモータの角度は制御用の信号線の ON時間で決まります。この時間に変動や遅延があるとそのまま軸の角度が変動したり、時間通りに必要とする角度にすることができなくなります。
常に処理が必要な場合は、サイクリックな処理の実行が求められます。
サーボモータは制御用の信号線に 50 Hzの矩形波を送ります。 矩形はの ON / OFFを 20 msごとに行うことが必要になります。サンプルプログラムはこの ON / OFFをコードで実現しています。サーボモータは軸の角度が変化しない場合でも 50 Hzの信号をサーボモータに送り続けることが必要です。そのため、サーボモータを使用している場合は、常に処理を行っています。
複数の処理が連携する場合、時間的な関係( 順序 )があるときがあります。この場合、同じ時間軸( クロック )で連携することが必要になります。Qumcum Lab. で二足歩行を行うとき、各サーボモータを動かす順番や動かすタイミングは決まっています。このときの各部位のサーボモータの連携には同期が必要になります。
Technical Considerations 同期と非同期
Design Considerations 切り換えの制御線は頭部ボードへの電力供給の制御用信号を兼ねますので、論理(High/Low)には注意が必要です。(各ICの入力論理と一致している必要があります。)
半球睡眠(英語:Unihemispheric slow-wave sleep、略:USWS)とは、脳の半分が眠り、残りの半分が覚醒している睡眠である。常に周囲の安全を確認する必要のある動物や長距離を移動する渡り鳥などの動物にみられる[1]。英語の別称:asymmetric slow-wave sleep。
引用:wikipedia
参考情報
参考になる情報は以下のとおりです。
このホームページ内
- 複数のMCUをつなぐ: このロボットには複数の MCUが搭載されています。その MCU間の接続の概要です。
他のWebサイト
- SN74LVC1G3157 SPDT アナログスイッチ Datasheet