'Bambino-19 '>Robot R-Bambino SERTXD("B19",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 'Bambino-15 Investigate effect of rollspeed; ' watch Roll and Stand for all three speeds 'Bambino-16 Check paceFL paceFR; Investigate effect of pacespeed ' Introduction of pulseservos: 'Bambino-17 Check Fd 'Bambino-18 Test Rt, Lt 'Bambino-19 Test Bk '----------------------------------------------------------------- Rationale: 'Test Bk '-------- '================================================================= 'modified '-------- 'start: 'New '--- 'Bk '_BkR '_BkL '================================================================= SYMBOL servopacepin =c.0 'left connector SYMBOL servorollpin =c.4 'right connector SYMBOL VoiceLedpin =c.5 'low =>LED on 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 Sspeed =W4 SYMBOL rollspeed =B9 '4 is too fast, 0 won't move SYMBOL pacespeed =B10 '6 is about max for servos to keep up SYMBOL i =B11 SYMBOL spulse =B12 '=== Your Bambino ================ SYMBOL rollby =15 '15 good for walking, edit to value in program11 SYMBOL paceby =25 '+ve Left foot forward 20@speed 3; 25@speed 1 '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 'stand and initialise rollat, paceat initspeed: rollspeed =1 pacespeed =4 start: TOGGLE eyeLedRpin_ 'alter eyeR so we know program is running TOGGLE eyeLedLpin_ 'alter eyeR so we know program is running GOSUB Fd GOSUB Fd GOSUB Fd GOSUB Fd TOGGLE eyeLedRpin_ 'alter eyeR so we know program is running TOGGLE eyeLedLpin_ 'alter eyeR so we know program is running GOSUB Bk GOSUB Bk GOSUB Bk GOSUB Bk TOGGLE eyeLedRpin_ 'alter eyeR so we know program is running TOGGLE eyeLedLpin_ 'alter eyeR so we know program is running GOTO start Fd: SERTXD (" Fd") IF paceatpaceC THEN GOSUB Fd 'need right foot forward GOSUB _LF RETURN _RF: paceto =paceC -paceby FOR spulse=paceat TO paceto STEP -pacespeed paceat =spulse gosub pulseservos NEXT spulse RETURN _LF: paceto =paceC +paceby FOR spulse=paceat TO paceto STEP pacespeed paceat =spulse gosub pulseservos NEXT spulse RETURN Stand: 'stand with both feet flat IF rollat