2012a/A2/Dragnov/M2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[NQC入門]]
#contents
* 課題2 [#e3f5bf10]
光センサーを駆使して、ラインをトレースするロボットを製作せよ。1週半が目標である。
** ページ作成者 [#n38f3527]
Dragnov
** ロボットの紹介 [#n38f3527]
#ref(m22.jpg)
ロボット自体はそこまで珍しい出来ではない
** プログラム [#n38f3527]
#define kyoukai 45
#define go OnFwd(OUT_AC); //前進
#define L OnFwd(OUT_C);Off(OUT_A); //左
#define R OnFwd(OUT_A);Off(OUT_C); //右
task main()
{
SetPower(OUT_A,0);
SetPower(OUT_C,0);
go;
Wait(40);
R;
Wait(90);
Off(OUT_AC);
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_3, SENSOR_LIGHT);
int cross = 0; //両方黒になった回数をカウントする変数
while(cross!=33) //黒黒が20回来たら止める
{
if(SENSOR_1 < kyoukai) {L;} //左側のセンサーが黒になったら左に曲がる
if(SENSOR_3 < kyoukai) {R;} //右側のセンサーが黒になったら右に曲がる
if(SENSOR_1 < kyoukai && SENSOR_3 < kyoukai) {L;cross++;} //両方黒になったら cross=cross+1 直進
if(SENSOR_1 > kyoukai && SENSOR_3 > kyoukai) {R;} //両方白になったら直進
}
Off(OUT_AC);
PlaySound(SOUND_UP);
go;
Wait(70);
while(cross!=46) //黒黒が20回来たら止める
{
if(SENSOR_1 < kyoukai) {L;} //左側のセンサーが黒になったら左に曲がる
if(SENSOR_3 < kyoukai) {R;} //右側のセンサーが黒になったら右に曲がる
if(SENSOR_1 < kyoukai && SENSOR_3 < kyoukai) {L;cross++;} //両方黒になったらcross=cross+1 直進
if(SENSOR_1 > kyoukai && SENSOR_3 > kyoukai) {R;} //両方白になったら直進
}
Off(OUT_AC);
PlaySound(SOUND_UP);
go;
Wait(50);
while(cross!=60) //黒黒が20回来たら止める
{
if(SENSOR_1 < kyoukai) {L;} //左側のセンサーが黒になったら左に曲がる
if(SENSOR_3 < kyoukai) {R;} //右側のセンサーが黒になったら右に曲がる
if(SENSOR_1 < kyoukai && SENSOR_3 < kyoukai) {L;cross++;} //両方黒になったらcross=cross+1 直進
if(SENSOR_1 > kyoukai && SENSOR_3 > kyoukai) {R;} //両方白になったら直進
}
Off(OUT_AC);
PlaySound(SOUND_UP);
SetPower(OUT_A,3);
SetPower(OUT_C,3);
while(cross!=59) //黒黒が20回来たら止める
{
if(SENSOR_1 < kyoukai) {L;} //左側のセンサーが黒になったら左に曲がる
if(SENSOR_3 < kyoukai) {R;} //右側のセンサーが黒になったら右に曲がる
if(SENSOR_1 < kyoukai && SENSOR_3 < kyoukai) {go;cross++;} //両方黒になったらcross=cross+1 直進
if(SENSOR_1 > kyoukai && SENSOR_3 > kyoukai) {go;} //両方白になったら直進
}
}
** コース [#n38f3527]
#ref(m21.jpg)
** 感想 [#n38f3527]
途中で電池を換えたためにいろいろと変更する羽目になったが、何とかなってよかった。
** コメントするの? [#n38f3527]
#comment(below)
終了行:
[[NQC入門]]
#contents
* 課題2 [#e3f5bf10]
光センサーを駆使して、ラインをトレースするロボットを製作せよ。1週半が目標である。
** ページ作成者 [#n38f3527]
Dragnov
** ロボットの紹介 [#n38f3527]
#ref(m22.jpg)
ロボット自体はそこまで珍しい出来ではない
** プログラム [#n38f3527]
#define kyoukai 45
#define go OnFwd(OUT_AC); //前進
#define L OnFwd(OUT_C);Off(OUT_A); //左
#define R OnFwd(OUT_A);Off(OUT_C); //右
task main()
{
SetPower(OUT_A,0);
SetPower(OUT_C,0);
go;
Wait(40);
R;
Wait(90);
Off(OUT_AC);
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_3, SENSOR_LIGHT);
int cross = 0; //両方黒になった回数をカウントする変数
while(cross!=33) //黒黒が20回来たら止める
{
if(SENSOR_1 < kyoukai) {L;} //左側のセンサーが黒になったら左に曲がる
if(SENSOR_3 < kyoukai) {R;} //右側のセンサーが黒になったら右に曲がる
if(SENSOR_1 < kyoukai && SENSOR_3 < kyoukai) {L;cross++;} //両方黒になったら cross=cross+1 直進
if(SENSOR_1 > kyoukai && SENSOR_3 > kyoukai) {R;} //両方白になったら直進
}
Off(OUT_AC);
PlaySound(SOUND_UP);
go;
Wait(70);
while(cross!=46) //黒黒が20回来たら止める
{
if(SENSOR_1 < kyoukai) {L;} //左側のセンサーが黒になったら左に曲がる
if(SENSOR_3 < kyoukai) {R;} //右側のセンサーが黒になったら右に曲がる
if(SENSOR_1 < kyoukai && SENSOR_3 < kyoukai) {L;cross++;} //両方黒になったらcross=cross+1 直進
if(SENSOR_1 > kyoukai && SENSOR_3 > kyoukai) {R;} //両方白になったら直進
}
Off(OUT_AC);
PlaySound(SOUND_UP);
go;
Wait(50);
while(cross!=60) //黒黒が20回来たら止める
{
if(SENSOR_1 < kyoukai) {L;} //左側のセンサーが黒になったら左に曲がる
if(SENSOR_3 < kyoukai) {R;} //右側のセンサーが黒になったら右に曲がる
if(SENSOR_1 < kyoukai && SENSOR_3 < kyoukai) {L;cross++;} //両方黒になったらcross=cross+1 直進
if(SENSOR_1 > kyoukai && SENSOR_3 > kyoukai) {R;} //両方白になったら直進
}
Off(OUT_AC);
PlaySound(SOUND_UP);
SetPower(OUT_A,3);
SetPower(OUT_C,3);
while(cross!=59) //黒黒が20回来たら止める
{
if(SENSOR_1 < kyoukai) {L;} //左側のセンサーが黒になったら左に曲がる
if(SENSOR_3 < kyoukai) {R;} //右側のセンサーが黒になったら右に曲がる
if(SENSOR_1 < kyoukai && SENSOR_3 < kyoukai) {go;cross++;} //両方黒になったらcross=cross+1 直進
if(SENSOR_1 > kyoukai && SENSOR_3 > kyoukai) {go;} //両方白になったら直進
}
}
** コース [#n38f3527]
#ref(m21.jpg)
** 感想 [#n38f3527]
途中で電池を換えたためにいろいろと変更する羽目になったが、何とかなってよかった。
** コメントするの? [#n38f3527]
#comment(below)
ページ名: