ここから本文です

TJ3でコンパスモジュールを使ったサッカーのプログラムを教えて下さい お願いしま...

tide_numberさん

2011/12/2612:08:55

TJ3でコンパスモジュールを使ったサッカーのプログラムを教えて下さい
お願いします。

この質問は、robo_mittiさんに回答をリクエストしました。

閲覧数:
795
回答数:
1

違反報告

ベストアンサーに選ばれた回答

robo_mittiさん

リクエストマッチ

2011/12/2621:16:38

コンパスは8方位ものと解釈して答えます。
また、CN1は今回便宜上こうしていますが、
自分のコンパスの繋いだところに合わせてください。
コンパスを北(N)に合わせるプログラムを文にするとこうなります

while(無条件){
if(CN1 < 46%){
if(CN1 < 30%){右回転}
else{左回転}
}
elseif(CN1 > 48%){
if(CN1 < 30%){右回転}
else{左回転}
}
else{モーターストップ}
}

てとこです。
まず、一番最初のifとelseif文ですが、
CN1 < 46%or > 48%
となっているのは、コンパスの向きが正しいかどうかです。
もしコンパスの値が46%以下または、48%以上の場合、
コンパスがずれています。
そしてどちらにも当てはまらければ、コンパスが合っているということなので、
モーターを停止させます。
そして、もしコンパスがずれていた場合、
if(CN1 < 30%)
という判定をします。
これは、センサーモニターを見てもらったらわかると思いますが、
30以下というのは、東側を指します、つまり右に回転すると前に向こうとします。
elseはお分かりの通り、西側を指すので左に回転すると前を向きます。
(右回転と左回転逆かも...)
そんな感じで前を向くと思います。
違ったら追記してください。
また、応用する方法としてはbreak文を使ってループから抜けてみたりすると、出来るかなと思います。
また不可解な動きをしたら、どんなプログラムかを書いていただいて、どんな動きをするのかを追記で教えていただければいいなと思います。
では。

質問した人からのコメント

2011/12/27 08:32:56

降参 本当に助かりますまた、質問するのでよろしくお願いします。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。