Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <popx2.h> // POP-X2 Board
- int speed = 55, del = 280;
- float var = 0.96;
- int s1, s2, s3;
- void setup() {
- glcdMode(1);
- setTextSize(3);
- servo(1,120);
- // while(!(sw_ok()))
- // {
- // var = knob(95,120);
- // var = var/100;
- // glcdClear();
- // glcd(1,0,"%f",var);
- // }
- // delay(1);
- // while(!(sw_ok()))
- // {
- // speed = knob(45,60);
- // glcdClear();
- // glcd(1,0,"%d",speed);
- // }
- OK();
- glcdClear();
- delay(1000);
- RR();
- RR();
- RR();
- LL();
- track();
- drop(); //green
- BL();
- RR();
- RR();
- track();
- drop(); //blue
- bk2(speed*var,speed);
- delay(300);
- fd2(speed*var,-speed);
- delay(del*2);
- LL();
- fd2(speed*var,speed);
- delay(1500);
- fd2(speed*var,-speed);
- delay(del);
- RR();
- track();
- drop(); //red
- fd2(speed*var,-speed);
- delay(del*2-30);
- track();
- drop(); //yellow
- fd2(-speed*var*1.05,-speed);
- delay(750);
- fd2(-speed*var,speed);
- delay(del+20);
- RR();
- LL();
- LL();
- RR();
- track();
- fd2(-speed*var,-speed);
- delay(1000);
- fd2(speed*var,-speed);
- delay(del);
- fd2(speed*var,speed);
- delay(800);
- fd2(-speed*var,speed);
- delay(del);
- track();
- fd2(speed*var,speed);
- delay(400);
- RR();
- RR();
- LL();
- LL();
- LL();
- track();
- ao();
- }
- void track()
- {
- while(true)
- {
- s1 = analogRead(0);
- s2 = analogRead(1);
- s3 = analogRead(2);
- if(s1 >= 512 && s2 >= 512)
- {
- fd2(65*0.99,65);
- }
- else if(s1 <= 512 && s2 >= 512)
- {
- fd2(speed*var,speed/3);
- }
- else if(s1 >= 512 && s2 <= 512)
- {
- fd2(speed*var/3,speed);
- }
- if(s3 < 440)
- {
- break;
- }
- }
- check();
- }
- void check()
- {
- while(true)
- {
- s1 = analogRead(0);
- s2 = analogRead(1);
- s3 = analogRead(2);
- if(s1 >= 512 && s2 >= 512)
- {
- fd2(speed*var/2,speed/2);
- }
- else if(s1 >= 512 && s2 <= 512)
- {
- fd2(speed*var*2.18/2,speed/2.5);
- }
- else if(s1 <= 512 && s2 >= 512)
- {
- fd2(speed*var/2.5,speed*2.18/2);
- }
- else
- {
- break;
- }
- }
- }
- void RR()
- {
- track();
- fd2(-speed*var,-speed);
- delay(150);
- fd2(speed*var,-speed);
- delay(del);
- ao();
- delay(200);
- }
- void BL()
- {
- fd2(-speed*var*1.05,-speed);
- delay(800);
- fd2(-speed*var,speed);
- delay(del);
- delay(20);
- track();
- fd2(speed*var,speed);
- delay(400);
- s1 = analogRead(0);
- s2 = analogRead(1);
- while(true)
- {
- s1 = analogRead(0);
- s2 = analogRead(1);
- if(s1 <= 512 && s2 <= 512)
- {
- fd2(speed*var,speed);
- }
- else if(s1 <= 512 && s2 >= 512)
- {
- fd2(speed*var,-speed);
- }
- else if(s1 >= 512 && s2 <= 512)
- {
- fd2(-speed*var,speed);
- }
- else
- {
- break;
- }
- }
- }
- void LL()
- {
- track();
- fd2(-speed*var,-speed);
- delay(150);
- fd2(-speed*var,speed);
- delay(del);
- ao();
- delay(200);
- }
- void drop()
- {
- fd2(-speed*var,-speed);
- delay(400);
- ao();
- servo(1,0);
- delay(600);
- servo(1,150);
- delay(800);
- servo(1,120);
- }
- void loop() {
- }
Advertisement
Add Comment
Please, Sign In to add comment