Sistemas expertos

Solo disponible en BuenasTareas
  • Páginas : 13 (3080 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de febrero de 2011
Leer documento completo
Vista previa del texto
APÉNDICE

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);...
tracking img