/* Name : BTT Flight THINGY */ /* By : Ben Showman */ /* Modified : 2-11-2002 */ /* Version : 0.56 */ #include #include #include #include #include #include #include "driver.h" #include "GPSI.h" void main(void) { int gps(); int gps_process(); int c, ppp, ddd; int outdate[2]; int i; int opt_x, opt_y; outdate[0] = -1; outdate[1] = -1; x[2] = 0.0; y[2] = 0.0; z[2] = 0.0; dx_dt[1] = 0.0; dy_dt[1] = 0.0; dz_dt[1] = 0.0; /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ /*//////////////////////////////////////////////////////////////////////*/ #include "INTERI.h" /*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/ printf("\nBTT CONTROLLER INTERFACE v-0.58. Press ESC to quit.\n\n"); printf("G = GPS data.\n"); printf("T = toggle between receiver and controller.\n"); printf("L = toggle LED.\n"); printf("D = read A/D pins.\n"); printf("S = control servo positions.\n"); ddd = 0; servo[0] = 0; servo[1] = 0; servo[2] = 0; servo[3] = 0; driver[0] = 0; driver[1] = 1; driver[2] = 0; driver[3] = 0; driver[4] = 0; driver[5] = 0; driver[6] = 0; driver[7] = 0; PutDriverChannel( 3 ); PutDriver( driver[3] ); // Set capacitor drain to off PutDriverChannel( 0 ); PutDriver( driver[0] ); // Set receiver to off PutDriverChannel( 1 ); PutDriver( driver[1] ); // Set servo controller to on do { c = 0; if (kbhit()){c = getch(); } if ((c == 71) || (c == 103)) { if (gps()) { printf("\nGood GPS String. \n"); if ((gps_process() == 1) && (gps_zero == 1)) { printf("\nCurrent Altitude: \n"); printf("%f", z[2]); printf("\nOld Altitude: \n"); printf("%f", z[1]); printf("\nCurrent Time: \n"); printf("%f", t[2]); printf("\nOld Time: \n"); printf("%f", t[1]); printf("\nCurrent Y: \n"); printf("%f", y[2]); printf("\nOld Y: \n"); printf("%f", y[1]); printf("\nCurrent X: \n"); printf("%f", x[2]); printf("\nOld X: \n"); printf("%f", x[1]); if (t[2] != t[1]) { printf("\nY-speed: \n"); printf("%f", (y[2]-y[1])/(t[2]-t[1])); printf("\nX-speed: \n"); printf("%f", (x[2]-x[1])/(t[2]-t[1])); } printf("\ndy_dt-speed: \n"); printf("%f", dy_dt[1]); printf("\ndx_dt-speed: \n"); printf("%f", dx_dt[1]); printf("\ndz_dt-speed: \n"); printf("%f", dz_dt[1]); outdate[0] = outdate[1]; outdate[1] = t[2]; if (outdate[0] == outdate[1]) { printf("\nGPS data May be outdated.\n"); printf("Check GPS connection.\n"); } } } else { printf("\nNonexistent/Bad GPS String. \n"); } } if ((c == 115) || (c == 83)) { printf ("\nEnter servo number: "); scanf ("%d", &ppp); printf ("\nEnter position for servo %d: ", ppp); if ((ppp >= 0) && (ppp < 4)) { scanf ("%4d", &servo[ppp]); if ((servo[ppp] >= 0) && (servo[ppp] < 4096)) { set_servo( ppp, servo[ppp] ); // Set servo position } else { printf ("\nInvalid servo position.\n"); } } else { printf ("\nInvalid servo number.\n"); } } if ((c == 68) || (c == 100)) { do { PutA2DChannel( 2 ); opt_x = GetA2D(); PutA2DChannel( 3 ); opt_y = GetA2D(); printf ("\nopt_x = %d, opt_y = %d", opt_x, opt_y ); } while( !( kbhit() ) ); } if ((c == 84) || (c == 116)) { toggle_control(); // Switch between receiver and computer control } if ((c == 76) || (c == 108)) { toggle_light(); // Toggle power to LED } } while (c !=27); /*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/ #include "POSTINI.h" /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ /*//////////////////////////////////////////////////////////////////////*/ }