'Bambino-14 Sertxd("B14",CR) 'report program number @4800baud #PicAxe 20M2 #no_data 'Bambino-01 Test eyeLEDs, whiskerLEDs and speaker 'Bambino-02 Test PWM of eyeLEDs 'Bambino-03 Test InfraRed input 'Bambino-04 Test Eye light values 'Bambino-05 Test Whisker light values 'Bambino-06 Play the inbuilt tunes using keys 1 to 4 and beep on 5 'Bambino-07 Set servos to mid position 'Bambino-08 Calibrate servo mid positions and put in EEPROM. 'Bambino-08+ Adjust servo mid positions from Handset and put in EEPROM. 'Bambino-09 Introduce _iStand:- initialise with feet in mid position 'Bambino-10 Set rollby, rollbymax for Roll Right 'Bambino-11 Check rollby, rollbymax for Roll Left 'Bambino-12 Check rollby and rollbymax for rollL, rollR 'Bambino-13 Introduction of _Stand 'Bambino-14 Investigate effect of rollspeed; ' watch roll for all three speeds '----------------------------------------------------------------- Rationale: 'Investigate effect of rollspeed with rollspeed a variable '--------------------------------------------------------- 'watch roll for all three speeds ' You might have to take out the download cable to ' check what is right, because it pulls the robot. 'We want to check Bambino rolls smoothly and doesn't tip over 'Edit the program and see what happens when rollspeed is greater than 3 '================================================================= 'modified '-------- 'initialise: 'start: 'New '--- 'SYMBOL rollspeed =B10 '4 is too fast, 0 won't move '================================================================= SYMBOL servopacepin =c.0 'left connector SYMBOL servorollpin =c.4 'right connector SYMBOL VoiceLedpin_ =c.5 SYMBOL eyeLedLpin_ =c.2 'low =>LED on SYMBOL eyeLedRpin_ =b.1 'low =>LED on SYMBOL whiskerLedLpin_ =c.3 'low =>whisker LED on SYMBOL whiskerLedRpin_ =b.3 'low =>whisker LED on SYMBOL IRinpin =c.6 SYMBOL IRoutpin =b.2 SYMBOL temp0 =B0 'B1 SYMBOL Scentre =W1 SYMBOL rollC =B2 '100 is roll to the left, 200 to the right SYMBOL paceC =B3 '100 is left foot back, 200 left foot forward SYMBOL Sat =W2 'current servo positions SYMBOL rollat =B4 SYMBOL paceat =B5 SYMBOL Sto =W3 'desired servo positions SYMBOL rollto =B6 SYMBOL paceto =B7 SYMBOL i =B8 SYMBOL spulse =B9 SYMBOL rollspeed =B10 '4 is too fast, 0 won't move '=== Your Bambino ================ SYMBOL rollby =15 '15 good for walking, edit to value in program11 'rollspeed '4 is too fast, 0 won't move SYMBOL sframe =20 'time between servo pulses SYMBOL rollbymax =20 '@speed 3; 25@speed 1 'rollmax absolute max is 40, above that the tilt rods hit the body 'EEPROM DATA SYMBOL DrollC =254 'holds rollC, 100 is roll to the left, 150 is nominal centre SYMBOL DpaceC =255 'holds paceC, 100 is left foot back, 150 is nominal centre '================================= initialise: 'get values from EEPROM set by program #8 or #8+ READ DrollC,rollC READ DpaceC,paceC SERTXD("rollC=",#rollC," paceC=",#paceC,CR) LOW eyeLedRpin_ 'make output HIGH eyeLedLpin_ 'make output GOSUB _iStand initrollspeed: rollspeed =1 start: FOR i=1 TO 5 TOGGLE eyeLedRpin_ 'alter eyeR so we know program is running TOGGLE eyeLedLpin_ 'alter eyeR so we know program is running GOSUB _rollR TOGGLE eyeLedRpin_ 'alter eyeR so we know program is running TOGGLE eyeLedLpin_ 'alter eyeR so we know program is running GOSUB _rollL NEXT i rollspeed =rollspeed +1 IF rollspeed>3 THEN initrollspeed GOTO start Stand: 'stand with both feet flat IF rollat