En el banco de ensayos de PLATO, el obturador SC10 decidía cuándo llegaba la luz a la cámara, así que su estado tenía que ser fiable. Esto es lo que hay que saber para integrarlo.
La conexión
Por su puerto serie (o el USB, que aparece como puerto serie), a 9600 baudios, con los comandos terminados en retorno de carro (\r), no en salto de línea.
El eco: cada respuesta llega dos veces
El SC10 primero devuelve el comando que ha recibido, con su indicador delante, y después la respuesta. Si el programa lee una sola vez, se queda con el eco y cree que esa es la respuesta; en la siguiente consulta lee la respuesta anterior, y a partir de ahí todo va desfasado. Hay que leer dos veces:
import serial
sc10 = serial.Serial("/dev/ttyUSB0", 9600, timeout=1)
def consulta(comando):
sc10.reset_input_buffer()
sc10.write((comando + "\r").encode("ascii"))
sc10.read_until(b"\r") # el eco del comando
return sc10.read_until(b"\r").decode("ascii").strip()
print(consulta("id?")) # modelo y version
Abrir no es un comando
En modo manual, el obturador se abre y se cierra con ens, que cambia el estado: si estaba cerrado lo abre y si estaba abierto lo cierra. No hay un «abre» ni un «cierra». Mandar ens dos veces por error deja el obturador al revés de lo que el ensayo cree.
Por eso el estado se consulta siempre antes de cambiarlo, con ens?, que devuelve 1 si está activado:
def abierto():
return consulta("ens?") == "1"
def poner(abrir):
if abierto() != abrir:
sc10.write(b"ens\r")
sc10.read_until(b"\r") # el eco
if abierto() != abrir:
raise RuntimeError("el obturador no ha cambiado de estado")
Modos y tiempo de apertura
Además del modo manual, el SC10 puede abrir solo durante un tiempo fijo o repetir ciclos. El modo se elige con mode=N (1 manual, 2 automático, 3 disparo único, 4 repetición, 5 puerta externa) y el tiempo abierto, en milisegundos, con open=N. Para exposiciones repetibles es mejor dejar que el SC10 cuente el tiempo que hacerlo desde el ordenador.
Del script al banco de ensayo
En un banco óptico, el obturador se coordina con la fuente de luz, las ruedas de filtros y el medidor de potencia, y cada apertura tiene que quedar registrada junto a las imágenes. Integrar todo eso en un software que se pueda dejar solo es lo que hacemos a medida.