NXT加速度センサーMS1040 起動。
NXT加速度センサーが安かったので購入。
1時間格闘で数値の取得に成功しますた。
なぜかセットセンサーLOWSPEEDを事前に書いて置かなければ起動しない??
これに気がつくのに時間がかかった。実はHT社のサイトに行けばよかったという・・。
NXCガイドにbVal=ReadSensorHTAccel(S1, x, y, z);とか書くのヤメレ。
bvalでコンパイルエラー出るじゃないか。この部分いらないじゃん。
あとセンサーS1はIN_1とどう違うのか不明。
一体全体どの部分の記述が不要なのか不明。
ディファイン文もいらないのではないか?
あと加速度の数値見て驚愕。どのように使えばいいかどの部分をPID制御すればクララは立てるのかもはや不明。
XYZ値だが振ったりすると正常1Gで200ポイントのはずが、あっさり8000とか出てそのまま戻ってこない。40Gとかベジータも真っ青。このプログラムが悪いのかセンサーの故障なのか不明。ただ、起動直後の数値はかなり性格。while文で回転し続けると数値が累積してなにかバグっているのか?こんなの今までなかったのに・・・。
#define TIME 500
#define S1 0
int status = 0;
int kekka = 0;
int x = 0;
int y = 0;
int z = 0;
task kount(){
while(true){
ReadSensorHTAccel(S1, x, y, z);
NumOut(60,LCD_LINE3,status);
NumOut(60,LCD_LINE4,x);
NumOut(60,LCD_LINE5,y);
NumOut(60,LCD_LINE6,z);
Wait(100);
}
}
task forward(){
while(true){
kekka = status % 2 ;
if(kekka==0){
Wait(100);
}
else{
Wait(100);
}
}
}
task main()
{SetSensorColorRed(IN_2);
SetSensorTouch(IN_4);
SetSensorLowspeed(S1);
Wait(50);
Precedes(kount,forward);
}