- 追加された行はこの色です。
- 削除された行はこの色です。
[[NQC入門]]
#contents
* 課題1 [#e3f5bf10]
A4の紙にペンとロゴのロボットのキットだけで相方の似顔絵を書くロボットを作成せよ。
指定のパーツ以外は使ってはならない。
* 課題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()
{
#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) {L;cross++;} //両方黒になったら cross=cross+1 直進
if(SENSOR_1 > kyoukai && SENSOR_3 > kyoukai) {R;} //両方白になったら直進
}
Off(OUT_AC);
PlaySound(SOUND_UP);
go;
Wait(70);
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);
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);
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]
** コース [#n38f3527]
#ref(m21.jpg)
** 感想 [#n38f3527]
それぞれの得意分野を活かした役割分担で何とか間に合った。
パートナーの知恵と工夫に敬意を表したい。
途中で電池を換えたためにいろいろと変更する羽目になったが、何とかなってよかった。
** コメントするの? [#n38f3527]
#comment(below)
- カスケードテラスを猛スピードで走行するダッジを追跡中!容疑車両は危険な運転を繰り返している。 -- [[TEST]] &new{2012-05-18 (金) 17:04:32};