Descargar

Uso de la programación basic para detección y control a través del puerto de juegos en computadoras antiguas (página 2)

Enviado por Jorge Moreno


Partes: 1, 2

Valor de n

Devuelve el valor de la coordenada

0

Coordenada X palanca A

1

Coordenada Y palanca A

2

Coordenada X palanca B

3

Coordenada Y palanca B

Ejemplo tomemos este siguiente programa para ver como funciona en qbasic bajo Windows con partición FAT o ms-dos. (Es probable que para Windows xp o vista,deberá usarse un emulador de ms-dos.)

CLEAR

CLS

INICIO:

t$ = UCASE$(INKEY$)

IF t$ = CHR$(27) THEN GOTO fin

CLS

x = STICK(0)

y= STICK(1)

LOCATE 1,1

PRINT x,y

GOTO INICIO

fin :

End

Con el joystick conectado,podemos observar que la pantalla marcará valores enteros comprendidos entre 0 y 255 los cuales podemos tomar como referencia de un valor alto o bajo.Para salir del ciclo infinito,pulsamos la tecla ESCAPE.

Ahora queremos observar gráficamente que está pasando con la señal que está entrando a la computadora;necesitamos agregar un CONTADOR al código anterior este puede ser muy pequeño o muy grande, dependiendo de lo que se quiera hacer aquí.observemos que donde conectemos el cable y su correspondiente patilla dependerá que instrucción (stick (0) ,stick (1) ,stick(2),stick(3) ) dependerá la presentación en la pantalla.

CLEAR

CLS

SCREEN 12

Contador =0

INICIO:

t$ = UCASE$(INKEY$)

IF t$ = CHR$(27) THEN GOTO Fin

CLS

Rem puede ser STICK(1) o STICK(2) o STICK (3)

Rem observar el numero de los pines

x = STICK(0)

rem inicializa gráfica cuando se alance la cordenada x=640

if contador =640 then

contador=0

cls

end if

contador =contador+1

LOCATE 1,1

PRINT contador,x

LINE -(contador,x),12

GOTO INICIO

Fin:

End

Ahora vamos a mostrar un código más elaborado en qbasic donde solamente se representen en coordenadas rectangulares en una resolución de 640×480.también es posible hacer el cambio a coordenadas polares ,representación circular, gráfico espectral .todas estas representaciones se encuentran detalladas en los libros de estadística y matemáticas de nivel superior para su respectiva consulta.

Con respecto a la parte de programación gráfica es que la información que llegue del dispositivo se puede grabar a un archivo secuencial en forma de par de coordenadas X e Y y luego procesarse en EXCEL .Todo dependerá de la habilidad, lógica e imaginación del programador.

Se conectaron de los cables de la siguiente manera:

1º) patilla nº 3 (Posición X del Joystick A) cuya entrada es de voltaje positivo (+)

2º) cable negativo a la patilla nº 4 (GND) Tierra.

Siempre se debe tener en cuenta el voltaje de salida del circuito a la computadora para no causar daños a esta.

LISTADO DEL PROGRAMA:

REM programa experimental de deteccion

REM de usando el puerto del

REM Joystick.

CLS

LOCATE 1, 10: PRINT ******************************************"

LOCATE 2, 10: PRINT "* PROGRAMA DETECTOR -1.01 *"

LOCATE 3, 10: PRINT *******************************************

LOCATE 4, 10: PRINT "* Este programa es para conectar cualquier salida de un **

LOCATE 5, 10: PRINT "* circuito electronico o electrico a traves del puerto de *"

LOCATE 6, 10: PRINT "* joystick. *"

LOCATE 7, 10: PRINT "* Su uso es para fines didacticos.corre desde un 386 en *"

LOCATE 8, 10: PRINT "* adelante,aunque es preferible un pentium,ya que es mas *"

LOCATE 9, 10: PRINT "* sensible. *"

LOCATE 10, 10: PRINT "***********************************************************"

LOCATE 11, 10: PRINT "* Realizado por el profesor Jorge Moreno.Caracas,agosto 2009 *"

LOCATE 12, 10: PRINT "* 2009.E-MAIL: JORGE2006JULIO[arroba]CANTV.NET *"

LOCATE 13, 10: PRINT ******************************************"

FOR i = 1 TO 40000: NEXT i

e3:

CLS

CLEAR

SCREEN 12

REM Rutina principal que usa puerto de juegos para que sirva

REM para distintos experimentos.

c1 = 0

c4 = 0

e2:

LOCATE 1, 1: PRINT "****SELECCION DEL TAMAÑO DE LA VENTANA***********

LOCATE 3, 1: PRINT " 1- Grafica Lineal en ventana Normal (640 x 480)"

LOCATE 4, 1: PRINT " 2- Grafica lineal en otra ventana ( X x Y ) "

LOCATE 5, 1: PRINT " 3- Grafica circular "

LOCATE 6, 1: PRINT " 4- Grafica Espectral "

LOCATE 7, 1: PRINT " 5- Grafica Espectral – II "

LOCATE 8, 1: PRINT " 6- Grafica Espectral – III "

LOCATE 9, 1: PRINT " 7- Grafico en cordenadas polares. "

LOCATE 10, 1: PRINT " – Finalizar el programa"

LOCATE 11, 1: PRINT "************************************************

LOCATE 12, 1: PRINT "Seleccione opcion :"

t$ = INKEY$

IF t$ = "1" THEN

u = 640: v = 480

CLS

Rem se manda directo a graficar sin subrutina

Goto e4

 

END IF

IF t$ = "2" THEN

Gosub graficaventanaxy

END IF

IF t$ = "3" THEN

Gosub graficacircular

END IF

IF t$ = "4" THEN

Gosub graficaespectral

END IF

IF t$ = "5" THEN

Gosub graficaespectral2

END IF

IF t$ = "6" THEN

Gosub graficaespectral3

END IF

IF t$ = "7" THEN

Gosub graficapolar

END IF

IF t$ = CHR$(27) THEN

GOTO fin

END IF

GOTO e2

e4:

Rem contador c=0

c = 0

WINDOW (0, 0)-(u, v)

e1:

LOCATE 1, 1: PRINT "**DETECCION EN PROGRESO ***********************";

LOCATE 2, 1: PRINT "R: Reinicializa pantalla grafica"

LOCATE 3, 1: PRINT "M: Si se quiere volver al menu inicial"

LOCATE 4, 1: PRINT ": Abortar en cualquier momento."

t$ = UCASE$(INKEY$)

IF t$ = CHR$(27) THEN GOTO fin

IF t$ = "R" THEN

CLS

c = 0

END IF

x = STICK(0)

rem contador incrementado en 0,01 en este caso.puede variarse

rem según lo que se quiera hacer con el circuito y su funcion

c = c + .01

rem inicializa la pantalla nuevamente al llegar a 640

IF c >= u THEN

CLS

c = 0

END IF

Rem trazado del grafico generado

Rem c,x

LINE -(c, x), 12

LOCATE 10, 1: PRINT "Posici¢n :"; x

LOCATE 11, 1: PRINT "Tiempo:";

LOCATE 11, 10: PRINT USING "###.##"; c

IF t$ = "M" THEN

GOTO e3

END IF

GOTO e1

Rem subrutinas para los otros graficos

Rem no incluidad en este listado

Graficoventanaxy:

Return

Graficocircular:

Return

Graficoespectral2:

Return

Graficoespectral3:

Return

Graficapolar:

Return

fin:

CLS

LOCATE 10, 22: PRINT "FFFFFFFFFF IIIIII NNNNN NNN"

LOCATE 11, 22: PRINT "FFFF NNNNN NNN"

LOCATE 12, 22: PRINT "FFFF IIIIII NNNNNN NNN"

LOCATE 13, 22: PRINT "FFFFFFF IIIIII NNNNNNNNNNNN"

LOCATE 14, 22: PRINT "FFFF IIIIII NNNNN NNNNN"

LOCATE 15, 22: PRINT "FFFF IIIIII NNNNN NNN"

LOCATE 16, 22: PRINT "FFFF IIIIII NNNNN NNN"

LOCATE 23, 1:PRINT "Realizado por Profesor Jorge Moreno.Caracas,agosto 2009"

LOCATE 24, 1: PRINT "E-mail: jorge2006julio[arroba]hotmail.com"

FOR i = 1 TO 30000: NEXT i

END

Circuito electrónico de prueba

Vamos ahora a mostrar un circuito electrónico sencillo; en este caso un detector de luz sacado de una revista de electrónica cualquiera.

edu.red

edu.red

Materiales para conector del circuito al pc:

1-Conector db-15 macho + carcasa del conector.

2-Cable bicolor delgado (rojo-negro)

3-pulg. mono o pinzas caimán.

edu.red

edu.red

Circuito conectado.

Vamos a conectar al pc ahora que ya está realizado el programa en qbasic.En este caso se trata de un 386 de 4 mb de memoria ram y un disco duro de 100 mb y el sistema operativo ms-dos 6.22 aunque debe funcionar para versiones más antiguas de este sistema operativo y en Windows debe realizar pruebas correspondientes.En linux hay que encontrar el nombre del puerto de juegos y las instrucciones que lo activan en la carpeta /dev y entrar como administrador del sistema para realizar esta gestión.

Pantallas del programa

edu.red

Menú principal.

edu.red

Grafica línea a línea agrandada.

edu.red

Coordenadas polares.

edu.red

Gráfica circular.

edu.red

Gráfica espectral

Conclusiones

Es evidente que el reciclado de computadoras antiguas con el eficiente uso del lenguaje basic u otro lenguaje permite un nivel de experimentación y aplicación útiles en el área de electrónica u otras con pocos recursos y gastos mínimos.

Bibliografía

SOFTWARE:

1-Microsoft QBASIC.Manual en línea.

3-Microsoft Windows xp.Panel de control.

2-CableGui! Versión 1.04. NESTORY SYYNIMAA. (2000).

(Este es un excelente software en lo que a ubicación de nemónicos y conexiones se refiere.viene desde la época de windows 3.11 y evolucionó mucho,pero su autor no lo ha seguido actualizando.Si saben escribir y hablar finlandés ,correo electrónico es

Nestori[arroba]kauhava.fi)

 

 

 

 

Autor:

Jorge Moreno

Agosto 2009

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente