El pasado fin de semana los vecinos nos dieron una multifunción vieja. Una Lexmark X1270. Hay que reconocer que es buena, pero como todas las de tinta, los cartuchos valen una pasta y duran un suspiro. En fin que como impresora no me serviría de mucho. Pero mi ética me prohíbe desguazar cosas que aún funcionan (excepto los matamoscas de 3€, hola Salva), antes la dejo junto a un contenedor.

Sin embargo me llamó la atención que el escáner es compatible con Linux, no del todo pero sí más que el que tenía. Mi escáner era un Canon para puerto paralelo que apenas funciona con Linux, y tenía casi diez años. Me propuse aprovechar el escáner de la X1270.

Estas multifunción no son más que una impresora a la que se le ha pegado por encima un escáner. De hecho una vez separados son totalmente independientes, sólo comparten la placa principal (el cerebro) donde está la alimentación y la clavija USB.

Me ha gustado el detalle de la fuente de alimentación. Modular, y de hecho extraíble. La placa principal es de pequeño tamaño. He separado el escáner, y me he quedado con lo necesario para hacerlo funcionar para montarlo sobre el tablero del mueble donde tenía el antiguo. El resto, que corresponde a la base y a la impresora lo tiramos.

Para darle solidez al invento he extraído el conector USB y lo he sustituido por un cable. Lo mismo he hecho con los conectores de alimentación.

En esta imagen veis la fuente (el módulo negro) y la placa principal.

Aquí un detalle de cómo se conecta el escáner a la placa principal. Lleva tres conectores. El primero, de 4 cables es solamente la alimentación. De los dos buses planos, el fino va a la botonera: encender/apagar, copia, copia color, etc. El grueso es quien envía y recibe la información del escáner.

Bajo la carcasa hay espacio suficiente para alojar la fuente de alimentación y la placa mirad cómo queda ya montado.

El escáner funciona perfectamente. El problema que hay es que al no tener la parte de la impresora, no se tiene información sobre el estado del carro ni de los cartuchos, por lo que no se termina la rutina de apagado, y no se apaga con el botón principal. Podéis incorporar un interruptor externo en el cable de la alimentación o bien desenchufarlo.

Difracción

Como una entrada sólo con fotos del montaje me parece sosa vamos a darle un poco más de contenido. Las impresoras de tinta tienen un carro móvil donde están los cartuchos de impresión. Ese carro tiene un sensor óptico para saber dónde se encuentra. Se trata de una tira de plástico transparente con miles de lineas verticales muy finitas. La cinta está fija en la impresora y en el carro hay una luz y un fotodetector. Según el carro avanza va contando cuantas lineas opacas van y así sabe su posición horizontal.

Las lineas son muy finas para verlas a simple vista, pero vamos a averiguar la separación utilizando un láser. Es un experimento de difracción por rendijas múltiples (como el experimento de Young) similar a una red de difracción.

El caso es que si apuntamos con un puntero láser a la rejilla y situamos una pantalla detrás lo que vemos es esto:

Los puntos (máximos de interferencia) están separados una distancia x, aproximadamente 8,91mm. No es fácil medirlo, así que para obtener mayor precisión lo que se hace es medir la distancia entre dos puntos, entre tres, entre cuatro, etc. y después se calcula una regresión lineal. La pendiente de la recta es la distancia entre puntos. Así minimizamos el error.

Como no tenía mucho tiempo para dedicarle, aquí lo he hecho midiendo esas distancias, dividiendo entre el número de intervalos y calculando la media. No es tan exacto como lo anterior pero servirá.

La separación de los puntos depende de:

  • La longitud de onda de la luz, que llamaremos λ. La conocemos, para un láser rojo es de 650nm.
  • La distancia hasta la pantalla, que llamaremos L. En nuestro experimento será 2,30m.
  • La separación entre las rendijas. Esto, que lo vamos a llamar d, es precisamente lo que queremos saber.

La ecuación para las redes de difracción es

\[d \sin(\theta_m) = m\lambda\]

con m el número de máximo (1, 2, …) ¿demasiado complicado? Vamos a simplificarlo.

Cuando la pantalla esta lejos y los máximos están poco alejados entre sí nos vale con una aproximación (dicho con propiedad, cuando la densidad de la red es baja, los máximos están cerca unos de otros; si la distancia entre máximos es muy pequeña comparada con la distancia a la pantalla, θ es pequeño, y en esas condiciones es válido aproximar el seno por la tangente que es x/L). La distancia entre las líneas será:

\[d = {\lambda L \over x} = {650 \cdot 10^{-9} \times 2,30 \over 8.91 \cdot 10^{-3}}\]

lo que nos da una separación de 0.167mm. Que vienen a ser 6 líneas por milímetro. Los cálculos están en esta hoja, en negrita están los datos que tenemos.

Vamos a mirar la cinta a través de un microscopio tipo cuentahilos para comprobar que eso es verdad.

La graduación mayor son milímetros. Contamos efectivamente 6 líneas por milímetro.

Si tenemos en cuenta que lo que el encoder detecta es el cambio entre blanco y negro, hay 12 cambios por milímetro, que son 300 intervalos en una sola pulgada. Así pues con el motor sólo se puede obtener una resolución horizontal de 300 dpi. Para obtener más resolución aún necesitamos que el cabezal esté dividido en dos salidas de tinta en cada intervalo. Pensad si hay dos salidas de tinta en el mismo intervalo, cómo serán de finas y por qué se atascan y se ensucian con esa facilidad.