Transforme su ATARI en un OSCILOSCOPIO

Para comentar los proyectos de hardware presentados en la web.
Avatar de Usuario
Chalo_mhz
expert
expert
Mensajes: 1107
Registrado: Dom Feb 18, 2007 6:42 pm
Reputación: 0
Ubicación: Maipu, Santiago
Contactar:

Transforme su ATARI en un OSCILOSCOPIO

Mensaje por Chalo_mhz »

Para la mayoria de las personas que conocen un osciloscopio y han estudiado electronica y/o electricidad, el osciloscopio es una herramienta fundamental para un taller electronico, porque sirve para observar a simple vista el comportamiento y la oscilacion de un flujo electrico con respecto al tiempo.

Al asumir que un osciloscopio de segunda mano ya comienza a costar alrededor de unos $150.000 (ni hablar del costo de uno nuevo), y en vista a que el Atari de 8-bit es un computador tan versatil, se me ocurrio utilizar el atari como una herramienta util para experimentos de electronica digital, les presento mi proyecto para transformar el tipico computador atari en un osciloscopio de uso experimental.

Antes de empezar, cabe mencionar que este proyecto, por razones tecnicas evidentes no reemplaza a un autentico osciloscopio, el osciloscopio menos potente que he visto personalmente era de 10 MHz, en cambio el atari posee el procesador 6502, que corre a 1.79 MHz, eso sin contar con la ejecucion de instrucciones y graficos para dibujar ondas en pantalla, si desean utilizar este proyecto para analizar ondas de audio o revisar ondas cuadradas de circuitos TTL, les va a venir "como anillo al dedo", empecemos entonces:

Materiales:
-Cualquier computador atari de 8-bit
-Un televisor o monitor, obviamente
-Un conector DB-9 hembra o un cable de extension con el conector DB-9 (este ultimo para que resulten mas comodas las conexiones)
-Un par de paddles (opcional, serviran para manejar el trazado de la onda y comprobar su correcto funcionamiento)
-Una casetera, disketera u otro medio de almacenamiento para guardar este programa.

Procedimiento:

1.- Tipeamos el programa, tal como sigue:

10 GRAPHICS 7: COLOR 2
20 Y=PADDLE(0): IF Y>79 THEN Y=79
30 PLOT X,Y
40 Y=PADDLE(0): IF Y>79 THEN Y=79
50 DRAWTO X,Y
60 X=X+1: IF X>159 THEN X=0: GOTO 10
70 GOTO 40
RUN

2.- Conectamos los paddles para ver como se dibujan las ondas de acuerdo al movimiento de la perilla del paddle 0 (primer paddle)
Imagen

3.- Otras imagenes sacadas del mismo proyecto, analizando una onda de audio, y una onda cuadrada:
Imagen
(levemente se alcanza a apreciar como la salida de audio le da la forma a la onda, dada la baja intensidad del audio)

Imagen
(Onda cuadrada que se puede obtener utilizando un oscilador LM555, o un repetitivo activar y desactivar de un simple switch, este ultimo deberia mostrar una onda cuadrada irregular con distintas longitudes de onda)

Cabe mencionar la caracteristica mas importante de este proyecto, que es la de ser multicanal, como la gran mayoria de los osciloscopios de un taller electronico, una muy buena ventaja es que modificando el programa podemos agregar mas ondas y darles distintos colores para distinguirlas, En un Atari XL o XE que tienen 2 puertos de joystick, pueden trabajar hasta con 4 canales!!, y si trabajan con un atari 400 o un 800, que tienen 4 puertos de joystick, pueden sacarle provecho con 8 canales!!!, cosa que supera a cualquier osciloscopio convencional. :-D

Espero que les guste y que le saquen buen provecho, sobre todo a los que estan empezando con la electronica.
Última edición por Chalo_mhz el Dom Ene 03, 2010 2:31 am, editado 2 veces en total.
Avatar de Usuario
Chalo_mhz
expert
expert
Mensajes: 1107
Registrado: Dom Feb 18, 2007 6:42 pm
Reputación: 0
Ubicación: Maipu, Santiago
Contactar:

Re: Desarrolle su propio OSCILOSCOPIO con su ATARI

Mensaje por Chalo_mhz »

Pueden mejorar muchos detalles de este proyecto, de hecho ya he pensado en aumentar la resolucion de los graficos, agregarle mas canales, borrar el cuadro de texto, centrar el eje X de la onda etc.

El que quiera los detalles tecnicos de cada uno de los elementos, o los valores numericos que arrojan los paddles, los pinouts de los puertos de joystick,y un largo etc., peguen el grito no ma XD

Cualquier sugerencia o idea para este proyecto, muy bienvenidas sean, esas ideas me servirian a mi tambien, muchisimo :-D
Avatar de Usuario
133MHz
expert
expert
Mensajes: 1950
Registrado: Sab Abr 05, 2008 2:06 pm
Reputación: 0
Ubicación: Santiago, Chile
Contactar:

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por 133MHz »

Excelente! Recuerdo hace varios años haber usado el Atari como polígrafo (detector de mentiras) de la misma forma, usando la entrada de paddle para medir la conductancia entre los dedos del sospechoso igual que en las películas y graficando el resultado en la pantalla del TV (analizando la curva se cachaba al mentiroso xD), pero jamás se me vino a la mente la extensión lógica de esta idea (osciloscopio). Kudos! :-D

Imagino que con una manito de gato al programa se puede dibujar una cuadrícula en la pantalla del TV y con un juego de resistencias calibradas te haces la perilla de volts por división, para poder relacionar voltaje con amplitud. Pero qué hay de la base de tiempo? Qué tan rápido puede "samplear" el Atari la señal de entrada? El ADC es de 8 bits verdad?

Para el centrado del trazo yo aplicaría divisor de tensión y op-amp a la entrada (con la famosa tierra virtual que flota a ½Vcc) y así puedes convertir una señal puramente alterna (con componente negativa) en una puramente positiva que el Atari pueda entender, sin tener que recortar los semiciclos negativos. Como corolario regular la ganancia del op-amp te permitiría graficar tensiones muy pequeñas.
Avatar de Usuario
Chalo_mhz
expert
expert
Mensajes: 1107
Registrado: Dom Feb 18, 2007 6:42 pm
Reputación: 0
Ubicación: Maipu, Santiago
Contactar:

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por Chalo_mhz »

133MHz escribió:Excelente! Recuerdo hace varios años haber usado el Atari como polígrafo (detector de mentiras) de la misma forma, usando la entrada de paddle para medir la conductancia entre los dedos del sospechoso igual que en las películas y graficando el resultado en la pantalla del TV (analizando la curva se cachaba al mentiroso xD), pero jamás se me vino a la mente la extensión lógica de esta idea (osciloscopio). Kudos! :-D

Imagino que con una manito de gato al programa se puede dibujar una cuadrícula en la pantalla del TV y con un juego de resistencias calibradas te haces la perilla de volts por división, para poder relacionar voltaje con amplitud. Pero qué hay de la base de tiempo? Qué tan rápido puede "samplear" el Atari la señal de entrada? El ADC es de 8 bits verdad?

Para el centrado del trazo yo aplicaría divisor de tensión y op-amp a la entrada (con la famosa tierra virtual que flota a ½Vcc) y así puedes convertir una señal puramente alterna (con componente negativa) en una puramente positiva que el Atari pueda entender, sin tener que recortar los semiciclos negativos. Como corolario regular la ganancia del op-amp te permitiría graficar tensiones muy pequeñas.
De hecho el punto que mas me perturba es el de la base de tiempo, en el programa que deje publicado no puse lineas para modificar la velocidad del sampleo, pero no es por eso mi problema, el punto es que el sampleo en el atari es demasiado lento, y pierde mas velocidad todavia cuando el programa hace los ciclos repetitivos para obtener el valor logico del estado del paddle, si hubiera alguna forma de aumentar la velocidad del trazado horizontal seria la raja!, tomando en cuenta que un osciloscopio normal hace tan rapido el trazado horizontal, que se llega a perder de vista el punto de ploteo y pareciera verse una linea estatica
(en este programa se demora como 3 o 4 segundos en hacer el trazado horizontal completo :( , La otra alternativa que se me ocurre es quitar el basic y programar en assembler para ganar velocidad, pero mis conocimientos no me acompañan mucho para programar en assembler XD )
¿Existe alguna forma de depurar el codigo del basic y transcribirlo a un archivo ensamblado para cargarlo a un atari sin basic? (o sea, de que existe, tiene que existir, pero no se hacerlo XD )

En cuanto a los divisores de tension, he hecho muchos experimentos fallidos en un protoboard, intentando conectar resistencias en serie o en paralelo, y el multitester me marca que los voltajes a pesar de pasar por las resistencias, no alteran sus valores, (todo lo que estudie de la ley de ohm en 2º medio se fue a la chata XD) a lo mejor deben variar los amperes creo yo, te agradeceria si me pudieras hechar una manito con los divisores de tension, y explicarme con detalles lo del amplificador operacional, porque a mi no se me ocurre ninguna forma de obtener los semiciclos negativos, y mucho menos con un Amp.Op. Gracias y saludos.

PD: Para borrar el cuadro de texto, en teoria, basta solamente con sumarle 16 al valor del graphics en la primera linea, a mi no me resulto porque estuve trabajando con un atari 800 con el cartridge del basic, creo que el basic en cart debe ser distinto a los que traen integrados los modelos XL/XE.
Avatar de Usuario
Manuelink64
expert
expert
Mensajes: 3585
Registrado: Sab Feb 28, 2009 11:10 pm
Reputación: 0
Ubicación: La Serena...por ahora

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por Manuelink64 »

simplemente sorprendente 8-|

mas ganas me dan de tener un Atari, y lograr ampliar sus posibilidades de
aplicaciones electrónicas XD

acá el manual de programación de la serie 6500
http://www.6502.org/documents/books/mcs ... manual.pdf

y una aplicación de assembler para Basic de 6502
http://archive.6502.org/appnotes/6502_a ... _basic.pdf

Saludos y excelente proyecto!!

PD: nadie tiene un atari funcional de regalo! (-o
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por WillySoft »

Chalo,

En estricto rigor, si bien la cpu del Atari opera a 1.79 Mhz, el controlador de paddle opera por cada barrido de pantalla, es decir, tiene una velocidad de sampleo de 60Hz para NTSC y 50 Hz para PAL. Ojo con eso. Eso es así porque el paddle es determinado a través de los contadores del chip POKEY.

Una mejor alternativa, que puede utilizarse con los puertos de joystick, es utilizar un convertidor análogo-digital a un sampleo de 8 bits, para después enviarla a los puertos del joystick. Con ello, estaría utilizando una resolución de 256 posiciones (en vez de 228 del paddle), a una velocidad mayor.

Saludos.
Avatar de Usuario
133MHz
expert
expert
Mensajes: 1950
Registrado: Sab Abr 05, 2008 2:06 pm
Reputación: 0
Ubicación: Santiago, Chile
Contactar:

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por 133MHz »

Aunque si entramos con ADC externo mejor conectarlo directo a un PC no? ;,(
Willy, qué tan rápido se podría leer de un ADC externo en un Atari?
Avatar de Usuario
ZZT
Site Admin
Site Admin
Mensajes: 10895
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 8
Ubicación: La Florida-Santiago-Chile
Contactar:

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por ZZT »

El basic es demasiado lento pero se puede ganar algo de velocidad apagando la pantalla.
POKE 559,0
Para encenderla temporalmente, durante la ejecución, se puede hacer una rutina que lea alguna tecla de la consola START (por ejemplo) IF PEEK(53279)= 6 THEN POKE 559,34- para ver que esta sucediendo. Esto me funciona en GR.0, no lo he probado en otro modo grafico.
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por WillySoft »

133MHz escribió:Aunque si entramos con ADC externo mejor conectarlo directo a un PC no? ;,(
Willy, qué tan rápido se podría leer de un ADC externo en un Atari?
En teoría, tan rápido como te dé el procesador, ahí dependerá del algoritmo utilizado para leer el ADC. Habría que probar en real la capacidad de lectura de los puertos de joystick.
Avatar de Usuario
Chalo_mhz
expert
expert
Mensajes: 1107
Registrado: Dom Feb 18, 2007 6:42 pm
Reputación: 0
Ubicación: Maipu, Santiago
Contactar:

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por Chalo_mhz »

WillySoft escribió:
133MHz escribió:Aunque si entramos con ADC externo mejor conectarlo directo a un PC no? ;,(
Willy, qué tan rápido se podría leer de un ADC externo en un Atari?
En teoría, tan rápido como te dé el procesador, ahí dependerá del algoritmo utilizado para leer el ADC. Habría que probar en real la capacidad de lectura de los puertos de joystick.
Exacto amigo willy!, con el objetivo de ganar velocidad es que quiero trasladar el software a ensamblador, ya veo que el basic es un caso perdido para optimizar la velocidad del trazado horizontal.

En cuanto al Conversor A/D, no creo que sea necesario ponerle un conversor A/D externo, porque en teoria, las lecturas entre el ADC interno y el procesador serian las que limitan la velocidad, ¿que saco con tener una alta frecuencia de sampleo por fuera, si la estructura interna del equipo trabaja a una frecuencia mas baja?, ni modo que me reconozca una frecuencia mas alta por fuera XD
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por WillySoft »

Chalo_mhz escribió:
WillySoft escribió:
133MHz escribió:Aunque si entramos con ADC externo mejor conectarlo directo a un PC no? ;,(
Willy, qué tan rápido se podría leer de un ADC externo en un Atari?
En teoría, tan rápido como te dé el procesador, ahí dependerá del algoritmo utilizado para leer el ADC. Habría que probar en real la capacidad de lectura de los puertos de joystick.
Exacto amigo willy!, con el objetivo de ganar velocidad es que quiero trasladar el software a ensamblador, ya veo que el basic es un caso perdido para optimizar la velocidad del trazado horizontal.

En cuanto al Conversor A/D, no creo que sea necesario ponerle un conversor A/D externo, porque en teoria, las lecturas entre el ADC interno y el procesador serian las que limitan la velocidad, ¿que saco con tener una alta frecuencia de sampleo por fuera, si la estructura interna del equipo trabaja a una frecuencia mas baja?, ni modo que me reconozca una frecuencia mas alta por fuera XD
Porque 1.79 Mhz es más rápido que los 60 Hz del barrido de pantalla. Por lo tanto, tu cuello de botella está en el uso de paddles, no en la cpu.

Saludos.
Avatar de Usuario
vitoco
expert
expert
Mensajes: 869
Registrado: Mié Nov 08, 2006 7:25 pm
Reputación: 5
Contactar:

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por vitoco »

ZZT escribió:El basic es demasiado lento pero se puede ganar algo de velocidad apagando la pantalla.
Pero si la apagas, ¡no puedes ver el gráfico! 8-|

Coincido con Willy en lo de usar los pines del joystick y assembler para ganar velocidad de lectura. Ojo que la real velocidad de lectura es distinta entre un XL y un XE (en mi experiencia, era más rápido un XE).

Para graficar, se puede usar P/M, sobre todo si no importa que la onda sea vertical (de arriba hacia abajo en lugar de izquierda a derecha).

++V
Avatar de Usuario
ZZT
Site Admin
Site Admin
Mensajes: 10895
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 8
Ubicación: La Florida-Santiago-Chile
Contactar:

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por ZZT »

vitoco escribió:
ZZT escribió:El basic es demasiado lento pero se puede ganar algo de velocidad apagando la pantalla.
Pero si la apagas, ¡no puedes ver el gráfico! 8-|
Por eso dije que se intercale una opción de prenderla. La idea es que el procesador haga el trabajo rápido sin perder tiempo en mostrarlo, ("presione START" para ver como va). Esto lo he utilizado en muchos programas. Lo que no se es que si la máquina hara el dibujo en otro mono gráfico mientras la pantalla esta apagada. Solo lo he probado en programas modo GR.0.
Avatar de Usuario
vitoco
expert
expert
Mensajes: 869
Registrado: Mié Nov 08, 2006 7:25 pm
Reputación: 5
Contactar:

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por vitoco »

Ja, ja, ja... lo dije en el sentido que la idea del osciloscopio es ver en tiempo real lo que se haya conectado (joystick o paddles)...

Ahora me quedó la duda de si al apagar la pantalla (POKE 559,0) también se apagan los P/M (players/missiles). Si no se apagan, más rápido anda todo si se usa la onda vertical.

++Vitoco
Avatar de Usuario
Chalo_mhz
expert
expert
Mensajes: 1107
Registrado: Dom Feb 18, 2007 6:42 pm
Reputación: 0
Ubicación: Maipu, Santiago
Contactar:

Re: Transforme su ATARI en un OSCILOSCOPIO

Mensaje por Chalo_mhz »

WillySoft escribió:
Chalo_mhz escribió:
WillySoft escribió:
133MHz escribió:Aunque si entramos con ADC externo mejor conectarlo directo a un PC no? ;,(
Willy, qué tan rápido se podría leer de un ADC externo en un Atari?
En teoría, tan rápido como te dé el procesador, ahí dependerá del algoritmo utilizado para leer el ADC. Habría que probar en real la capacidad de lectura de los puertos de joystick.
Exacto amigo willy!, con el objetivo de ganar velocidad es que quiero trasladar el software a ensamblador, ya veo que el basic es un caso perdido para optimizar la velocidad del trazado horizontal.

En cuanto al Conversor A/D, no creo que sea necesario ponerle un conversor A/D externo, porque en teoria, las lecturas entre el ADC interno y el procesador serian las que limitan la velocidad, ¿que saco con tener una alta frecuencia de sampleo por fuera, si la estructura interna del equipo trabaja a una frecuencia mas baja?, ni modo que me reconozca una frecuencia mas alta por fuera XD
Porque 1.79 Mhz es más rápido que los 60 Hz del barrido de pantalla. Por lo tanto, tu cuello de botella está en el uso de paddles, no en la cpu.

Saludos.
Entonces si tu me dices que el cuello de botella esta fuera del puerto de joystick, ¿el basic me reconocera la frecuencia de sampleo del ADC externo, o tiene que ser un programa ensamblado si o si?
(ahora pienso que el cuello de botella esta en el basic, corrigeme si me equivoco porfis)
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje