/* | ----------------------------------------------------------------------------- | Filename: andy-h.c | | Author: Thomas Braunl (braunl@ee.uwa.edu.au) | | Description: | ------- | HDT for Andy Droid, EyeBot MK4, UWA Aug. 2001 | ----------------------------------------------------------------------------- */ #define VERSION 1.1 /* User specific version nr. for information */ #define NAME "Andy" /* controller name max. 7 chars, inform. only */ #define ID 3 /* Unique platform id (int), just for inform. */ #include "hdt.h" #include "hdt_sem.h" /* The HDT structure */ /*-------------------*/ int magic = 123456789; extern HDT_entry_type HDT[]; HDT_entry_type *hdtbase = &HDT[0]; #include "types.h" #include "const.h" #include "rs232.h" #include "cam.h" #include "librobi/librobi.h" #include "startup.h" /* include startup sound and image */ /* SERVOs */ /* type, TPU-channel, Timer2, 20ms period, 0.7ms min, 1.7ms max */ /* here: servo 1 has TPU channel 2, and so on */ servo_type _LHipSide = {2, 9, TIMER2, 20000, 1392, 1152}; servo_type _LHipBend = {2, 10, TIMER2, 20000, 760, 2344}; servo_type _LKnee = {2, 11, TIMER2, 20000, 2272, 560}; servo_type _LAnkleBend = {2, 12, TIMER2, 20000, 2164, 580}; servo_type _LAnkleSide = {2, 13, TIMER2, 20000, 1444, 1004}; servo_type _LArm = {2, 8, TIMER2, 20000, 500, 1884}; servo_type _RHipSide = {2, 3, TIMER2, 20000, 1380, 1140}; servo_type _RHipBend = {2, 4, TIMER2, 20000, 2468, 884}; servo_type _RKnee = {2, 5, TIMER2, 20000, 684, 2412}; servo_type _RAnkleBend = {2, 6, TIMER2, 20000, 768, 2352}; servo_type _RAnkleSide = {2, 7, TIMER2, 20000, 1428, 1188}; servo_type _RArm = {2, 2, TIMER2, 20000, 2240, 840}; servo_type _Head = {2, 14, TIMER2, 20000, 1000, 1384}; /* EyeBot SUMMARY */ info_type roboinfo = {0,MK4,SER115200,RTSCTS,SERIAL1,0,0,AUTOBRIGHTNESS,BATTERY_ON,33,VERSION,NAME,ID}; /* waitstates = 0..13, Fast Termination = 14, External = 15 */ /* Version, ROM, RAM, LCD, IO, Parallel+Serial2/3 */ /* 16MHz - 20Mhz */ /* waitstate_type waitstates = {0,3,0,1,0,2}; */ /* 21MHz - 41Mhz */ waitstate_type waitstates = {0,3,1,2,1,2}; HDT_entry_type HDT[] = { {SERVO,L_HipSide, "LHipS1",(void *)&_LHipSide}, {SERVO,L_HipBend, "LHipB2",(void *)&_LHipBend}, {SERVO,L_Knee, "LKnee3",(void *)&_LKnee}, {SERVO,L_AnkleBend, "LAnkB4",(void *)&_LAnkleBend}, {SERVO,L_AnkleSide, "LAnkS5",(void *)&_LAnkleSide}, {SERVO,L_Arm, "LArm06",(void *)&_LArm}, {SERVO,R_HipSide, "RHipS7",(void *)&_RHipSide}, {SERVO,R_HipBend, "RHipB8",(void *)&_RHipBend}, {SERVO,R_Knee, "RKnee9",(void *)&_RKnee}, {SERVO,R_AnkleBend, "RAnkBA",(void *)&_RAnkleBend}, {SERVO,R_AnkleSide, "RAnkSB",(void *)&_RAnkleSide}, {SERVO,R_Arm, "RArm0C",(void *)&_RArm}, /* {SERVO,Head, "Head0D",(void *)&_Head}, */ {WAIT,WAIT,"WAIT",(void *)&waitstates}, {INFO,INFO,"INFO",(void *)&roboinfo}, {STARTMELODY,STARTMELODY,"Melody",(void *)startmelody}, {STARTIMAGE,STARTIMAGE,"Image",(void *)&startimage}, {END_OF_HDT,UNKNOWN_SEMANTICS,"END",(void *)0} };