Sistemas expertos
B
CÓDIGO DOCUMENTADO DE LOS PROCEDIMIENTOS Y FUNCIONES MÁS IMPORTANTES DEL SISTEMA
Programa de Control del Brazo Mecánico
Este programa permite operar el brazo mecánico, proporcionando la interfaz necesaria para programar una serie de movimientos que posteriormente pueden ser reproducidos por el robot, el programa fue codificado en lenguaje C, para DOS, su código se lista acontinuación.
/* Declaración de funciones */ int hizq(void); int hder(void); int cizq(void); int cder(void); int pabr(void); int pcerr(void); int ejecuta(int); int guarda(void); int inicial(void); int menu1(void); int port = 0x378; /* Dirección del puerto al cual esta conectado el robot */
105
102 Brazo Robótico dotado de un Sistema Básico de Visión Artificial
int main(void) { charcar,cap;
/* Función principal */ /* Declaración de variables */
int value = ’@’; int i; value=’@’; outport(port, value); /* Se escribe al puerto para detener e inicializar el robot */ menu1(); do{ /* Llamada a la función menú principal */ /* Bucle principal */
do{ cap=toupper(getch()); }while(cap!=’A’&&cap!=’B’&&cap!=’C’&&cap!=’D’&&cap!=’E’&&cap!=’F’&&cap!=’I’&&cap!=’Q’); gotoxy(18,12);printf("%c",cap); gotoxy(18,12); switch(cap) /* Estructura de control para elegir diferentes movimientos del brazo */
{ case ’A’: hizq(); break; case ’B’: hder(); break; case ’C’: cizq(); break; case ’D’: cder(); break; case ’E’: pabr(); break; case ’F’: pcerr(); break; case ’I’: inicial(); menu1(); break; case ’Q’: break; } value=’@’; outport(port, value); }while(cap!=’Q’); textcolor(7);window(1,1,80,25); textbackground(0); clrscr(); /* Ventana final de la salida del programa return 1; }
*/
Apéndice B. Código Documentado 103
int inicial() /* Función menú que permite elegir entre programar o ejecutar una secuencia */ /* de movimientos */ { int port = 0x378; char car,cap; int value = ’@’; do{ textcolor(0); window(1,1,80,25); textbackground(3); clrscr(); gotoxy(24,2); printf(" EjecutarSecuencia de Movimientos"); textcolor(7); window(61,15,77,21); textbackground(0); clrscr(); window(62,14,79,20); textbackground(1); clrscr(); gotoxy(1,1); printf("______________"); gotoxy(1,2); printf("| A).toma ficha 1 |"); gotoxy(1,3); printf("| B).toma ficha 2 |"); gotoxy(1,4); printf("| C).toma ficha 3 |"); gotoxy(1,5); printf("| D).toma ficha 4 |"); gotoxy(1,6); printf("| E).toma ficha 5|"); gotoxy(1,7); printf("|_____________|"); window(20,6,57,23); textbackground(0); clrscr() textcolor(15); window(22,5,59,22); textbackground(1); clrscr(); gotoxy(16,2); printf("M E N U "); gotoxy(4,4); printf("P).− Programar nueva secuencia"); gotoxy(4,5); printf("1).− Ejecutar sec. Casilla 1 "); gotoxy(4,6); printf("2).− Ejecutar sec. Casilla 2 "); gotoxy(4,7); printf("3).− Ejecutar sec. Casilla 3"); gotoxy(4,8); printf("4).− Ejecutar sec. Casilla 4 "); gotoxy(4,9); printf("5).− Ejecutar sec. Casilla 5 "); gotoxy(4,10); printf("6).− Ejecutar sec. Casilla 6 "); gotoxy(4,11); printf("7).− Ejecutar sec. Casilla 7 "); gotoxy(4,12); printf("8).− Ejecutar sec. Casilla 8 "); gotoxy(4,13); printf("9).− Ejecutar sec. Casilla 9 "); gotoxy(4,14); printf("0).− Ejecutar sec. Demo "); gotoxy(4,15);printf("S).− Salida "); gotoxy(19,17); do{ cap=toupper(getch()); }while(cap!=’1’&&cap!=’2’&&cap!=’3’&&cap!=’4’&&cap!=’5’&&cap!=’6’ &&cap!=’7’&&cap!=’8’&&cap!=’9’&&cap!=’S’&&cap!=’P’&&cap!=’0’ &&cap!=’A’&&cap!=’B’&&cap!=’C’&&cap!=’D’&&cap!=’E’);
104 Brazo Robótico dotado de un Sistema Básico de Visión Artificial gotoxy(19,17); printf("%c",cap); gotoxy(19,17); switch(cap) /*Permite seleccionar laejecución de alguna secuencia de movimientos */ { case ’1’: case ’2’: case ’3’: case ’4’: case ’5’: case ’6’: case ’7’: case ’8’: case ’9’: case ’0’: case ’A’: case ’B’: case ’C’: case ’D’: case ’E’: case ’P’: case ’S’: } ejecuta(1); ejecuta(2); ejecuta(3); ejecuta(4); ejecuta(5); ejecuta(6); ejecuta(7); ejecuta(8); ejecuta(9); ejecuta(0); ejecuta(10); ejecuta(11); ejecuta(12); ejecuta(13);...
Regístrate para leer el documento completo.