'{$STAMP BS2} '{$PBASIC 2.5} '{$PORT COM1} Sw1 VAR Bit Sw2 VAR Bit Sw3 VAR Bit Sw4 VAR Bit Sw5 VAR Bit ServoValue1 VAR Byte ServoValue2 VAR Byte Counter1 VAR Word Counter2 VAR Word Blink1 VAR Byte Blink2 VAR Byte Blink1Temp VAR Byte Blink2Temp VAR Byte ServoDelay1 VAR Byte ServoDelay2 VAR Byte Servo1Center CON 500 Servo2Center CON 500 OUTPUT 0 OUTPUT 1 INPUT 2 OUTPUT 3 OUTPUT 4 HIGH 3 HIGH 4 ServoValue1=5 ServoValue2=15 Blink1=25 Blink2=35 GOSUB RANDOMServo1 GOSUB RANDOMServo2 MainLoop: IF Sw2=1 THEN GOSUB RANDOMServo1 IF Sw4=1 THEN GOSUB RANDOMServo2 IF IN2=1 THEN GOSUB CenterServos GOSUB MoveServo1 GOSUB BlinkEyes1 GOSUB MoveServo2 GOSUB BlinkEyes2 GOTO MainLoop MoveServo1: IF ServoDelay1<>0 THEN ServoDelay1=ServoDelay1-1 Sw5=0 ELSE Sw5=1 ENDIF IF Sw1=0 THEN Counter1=Counter1+Sw5 IF Counter1=ServoValue1 THEN Sw1=1 ServoDelay1=ServoValue1 ENDIF ELSE Counter1=Counter1-Sw5 IF Counter1=0 THEN Sw1=0 Sw2=1 ServoDelay1=ServoValue1 ENDIF ENDIF PULSOUT 0,Servo1Center+Counter1 PAUSE 15 RETURN MoveServo2: IF ServoDelay2<>0 THEN ServoDelay2=ServoDelay2-1 Sw5=0 ELSE Sw5=1 ENDIF IF Sw3=0 THEN Counter2=Counter2+Sw5 IF Counter2=ServoValue2 THEN Sw3=1 ServoDelay2=ServoValue2 ENDIF ELSE Counter2=Counter2-Sw5 IF Counter2=0 THEN Sw3=0 Sw4=1 ServoDelay2=ServoValue2 ENDIF ENDIF PULSOUT 1,Servo2Center+Counter2 PAUSE 15 RETURN BlinkEyes1: IF Blink1Temp<>Blink1 THEN Blink1Temp=Blink1Temp+1 ELSE RANDOM Blink1 Blink1Temp=0 TOGGLE 3 ENDIF RETURN BlinkEyes2: IF Blink2Temp<>Blink2 THEN Blink2Temp=Blink2Temp+1 ELSE RANDOM Blink2 Blink2Temp=0 TOGGLE 4 ENDIF RETURN CenterServos: PULSOUT 0,Servo1Center+127 PULSOUT 1,Servo2Center+127 PAUSE 20 IF IN2=1 THEN GOTO CenterServos RETURN RANDOMServo1: RANDOM ServoValue1 RANDOM Blink1 Sw2=0 RETURN RANDOMServo2: RANDOM ServoValue2 RANDOM Blink2 Sw4=0 RETURN