NXC カラー・ライトセンサー倒立振子 クララ計画2

なんとかカラーによって前進、後退をするプログラムを製作した。
光量初期値をまずRUN直後にとり、その後の値の大きさで前後に動く。
グレーが初期値であるならばより明るい色で前進、暗い色で後退となるはずである。

課題1
これにどのようにカラー/垂直センサーの役割を持たせるかが問題。
90度に立っているときグレー、80度のとき白、100度のとき黒とかの紙をセンサー前において
常に鉛直がわかればよいのだが出来るか不明。

課題2
PID制御がいまいちわからない。
また、PID制御の値がわからない。
モーターの出力は回転角度なのだがそもそもそれでいいのかがわからない。
PID制御する場合普通は何を返すようにすればよいのだろう。

など調整関連の問題点多すぎる。

task main()

{SetSensorColorRed(IN_2);

int standerd;

int tilt;

int degree;

standerd=Sensor(IN_2);//変数standerdに初期の光量を入力するこれは以後の出力の基準点となる

while(true){

NumOut(80,LCD_LINE6,SENSOR_2);//ディスプレイにセンサー2の数値を表示

tilt=Sensor(IN_2);//現在の光量を計測するこれが傾きを表す

degree=standerd-tilt;//回転角を基準値と現在の光量値とする。

RotateMotor(OUT_AC,100,degree);//変数degreeをAとCモーターで出力する

}}