- 追加された行はこの色です。
- 削除された行はこの色です。
[[2004/C7/メンバー紹介]]
み〜た〜なぁ
#define GREEN_LINE 42 //緑の線は42以下
#define BLACK_LINE 37 //黒の線は37以下
#define WHITE 44 //白の紙は44以上
int back_time; //下がる時間の関数定義
sub turn1()
{
OnFwd(OUT_A); OnRev(OUT_C); Wait(125);
Off(OUT_A+OUT_C);
} //Uターンの定義
sub turn_left()
{
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(65);
Off(OUT_A+OUT_C);
} //左回り
sub turn_right()
{
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(65);
Off(OUT_A+OUT_C);
} //右回り
task main()
{
SetSensor(SENSOR_3,SENSOR_TOUCH);
SetSensor(SENSOR_2,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_LIGHT);
back_time=500;
OnFwd(OUT_A+OUT_C);
Wait(40); //前から落下
turn_left(); //すかさず左
OnFwd(OUT_A+OUT_C);
until(SENSOR_1<GREEN_LINE); //緑線まで前進
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(10);
while(SENSOR_1>BLACK_LINE){
if(BLACK_LINE<SENSOR_1<GREEN_LINE){
OnFwd(OUT_A);
OnRev(OUT_C);
}
if(SENSOR_1>WHITE){
OnFwd(OUT_C);
OnRev(OUT_A);
}
}
Off(OUT_A+OUT_C);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(10);
while((SENSOR_1<BLACK_LINE)||(SENSOR_1>WHITE)){
if(SENSOR_1<BLACK_LINE){
OnFwd(OUT_A);
OnRev(OUT_C);
}
if(SENSOR_1>WHITE){
OnFwd(OUT_C);
OnRev(OUT_A);
}
}
repeat(2){
while(SENSOR_1<BLACK_LINE){
if(BLACK_LINE<SENSOR_1<GREEN_LINE){
OnFwd(OUT_C);
OnRev(OUT_A);
}
if(SENSOR_1>WHITE){
OnFwd(OUT_A);
OnRev(OUT_C);
}
}
OnFwd(OUT_A+OUT_C);
Wait(50);
}
OnFwd(OUT_A+OUT_C);
until(SENSOR_2<BLACK_LINE);
Off(OUT_A+OUT_C);
OnRev(OUT_A+OUT_C);
Wait(back_time);//通信しながらバックさせる予定
turn_right();
OnFwd(OUT_A+OUT_C);
Wait(300); //右旋回して前進
turn1(); //方向転換
OnFwd(OUT_A+OUT_C);
Wait(250);
新型#include "spy.nqh"
#define l_Mi 330
#define l_Fa 349
#define l_Sol 392
#define l_Sol_ 415
#define l_La 440
#define l_Si 494
#define Do 523
#define Do_ 554
#define Re 587
#define Re_ 662
#define Mi 659
#define Fa 698
#define Fa_ 740
#define Sol 784
#define Sol_ 831
#define La 880
#define Si 988
#define h_Do 1047
#define A 50
#define A_ 48
#define B 25
#define B_ 23
#define C 17
#define C_ 15
#define D 12
#define D_ 10
#define E 150
#define E_ 148
/*猪木のテーマを流すプログラム*/ task music_inoki() { while(true) { PlayTone(Sol,E_); Wait(E); PlayTone(l_Sol,A_); Wait(A); PlayTone(l_Sol_,E_); Wait(E);
PlayTone(Sol,A_); Wait(A); PlayTone(Fa_,E_); Wait(E); PlayTone(l_La,A_); Wait(A); PlayTone(l_Si,E_); Wait(E); Wait(A);
PlayTone(Mi,E_); Wait(E); PlayTone(l_Mi,A_); Wait(A); PlayTone(l_Fa,E_); Wait(E);
PlayTone(Re,A_); Wait(A); PlayTone(Do_,E_); Wait(E); PlayTone(l_Mi,A_); Wait(A); PlayTone(l_Fa,E_); Wait(E); Wait(A);
} }
/*『バックします』の音楽を流すプログラム*/ task music_back() { while(true) { PlayTone(Sol,15);Wait(30); PlayTone(Re,15);Wait(20); PlayTone(Re,15);Wait(20); PlayTone(Re,15);Wait(20); Wait(80); PlayTone(Si,70); Wait(90); PlayTone(Si,70); Wait(90); PlayTone(Si,70); Wait(90); PlayTone(Si,70); Wait(90); Wait(100); } }
task main() {
while(1) {
start music_inoki;
OnRev(OUT_A);
OnRev(OUT_B);
until (SENSOR_1 == 1) ;
stop music_inoki;
start music_back;
Off(OUT_A+OUT_B);
Wait(200);
OnFwd(OUT_A);
OnFwd(OUT_B);
until (SENSOR_2 < 20) ;
Float(OUT_A+OUT_B);
stop music_back;
Wait(100);
OnFwd(OUT_A);
OnRev(OUT_B); // C 出力に接続されたモータを正回転させる
Wait(100); // プログラムの実行を3秒待つ (単位は1/100秒)
// この間 A と C のモータは回転したまま (現状維持)
Off(OUT_A+OUT_B); // A と C 出力のモータを止める
Wait(100);
}
}
のぐ失敗プロ
#include "spy.nqh"
int touch;
int A;
sub turn_left(){
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(100);
}
sub turn_right(){
OnFwd(OUT_A);
OnRev(OUT_B);
Wait(100);
}
sub go(){
OnRev(OUT_A);
OnRev(OUT_B);
}
sub go_back(){
OnFwd(OUT_A);
OnFwd(OUT_B);
}
task main()
{
touch == 0 ;
go();
until(SENSOR_1 == 1) ;
touch ++ ;
while(touch < 4){
go_back();
Wait(50);
turn_right();
go();
until(SENSOR_1 == 1) ;
touch ++ ;
}
A == 0 ;
while(A <= 3){
go_back();
until (SENSOR_2 < 10);
A ++ ;
if(A < 3){
go();
Wait(200);
turn_left();
}
}
while(true){
Off(OUT_A+OUT_B);
Wait(100);
touch == 0 ;
while(touch < 4){
go();
until(SENSOR_1 == 1) ;
touch ++ ;
if(touch < 3){
go_back();
Wait(50);
turn_right();
}
}
A == 0 ;
while(A < 4){
go_back();
until (SENSOR_2 < 10) ;
A ++ ;
if(A < 3){
go();
Wait(200);
turn_left();
}
}
}
}