Saltar al contenido principal
Artículos técnicos

El obturador Thorlabs SC10 por puerto serie: el eco que nadie avisa


El SC10 tiene pocos comandos y parecen evidentes. Dos detalles hacen que el primer programa casi nunca funcione a la primera: el eco de cada comando y que «abrir» es en realidad «cambiar de estado».

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.

Cuéntanos tus ensayos


Qué equipos tenéis, qué ensayos hacéis y qué os gustaría que hiciera el software. Con eso te decimos cómo lo plantearíamos.

Contactar

Lake Shore, Thorlabs, Keithley, Energetiq, Standa, EKSMA Optics, Symétrie, Pfeiffer Vacuum y el resto de marcas citadas pertenecen a sus respectivos titulares. BLASAI Software no tiene relación comercial con ellos; se nombran solo para indicar con qué equipos hemos trabajado.