ロボットの三要素(SCA)「S(Sensor) センサ:感じて知らせる!」(その2)
C-Style上ではセンサ値を使った演算もできる。
あるセンサ値から別のセンサ値を引き算した結果が0より大きいか小さいかで、どちらのセンサが強く反応しているかの判断もできる。
ここで、引き算の注意点。
変数Dのようにセンサ値どおしを直接引き算すると意図しない結果が出る。これは、C言語のデータ型の問題であるが、一旦センサ値を変数(A,B)に入れてから演算(C)することで回避できる。
- センサ値:符号なし整数型
- 変数:符号あり整数型
また、前回ループ時の値を変数に保存しておき、今回の値から前回の値を引き算した結果から近づいたか、遠ざかったかなどの判断もできる。
(1行目のE=0はE=CN3とすべきかも)
これらを踏まえると、2つのセンサの値の差の前回ループの値を保存しておき、今回の2つのセンサ値の差との差を求めて、..などと様々な分析方法が考えられる。
数少ないセンサでも処理の仕方で様々な分析ができ、腕の見せ所と思う。
(つづく)