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モーターで出力する
}}