visualización y modificación de superficies con un stm

97
Visualizaci ´ on y Modificaci ´ on de Superficies con un STM Tesis presentada por Mario Alberto Trivi˜ no Mun´ evar para obtener el grado de Ingeniero Electr´ onico Directora: Alba Graciela ´ Avila Bernal Departamento de Ingenier´ ıa El´ ectrica y Electr´ onica Facultad de Ingenier´ ıa 2010

Upload: others

Post on 03-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Visualización y Modificación de Superficies con un STM

Visualizacion y Modificacion de

Superficies con un STMTesis presentada por Mario Alberto Trivino Munevar

para obtener el grado de Ingeniero Electronico

Directora:

Alba Graciela Avila Bernal

Departamento de Ingenierıa Electrica y Electronica

Facultad de Ingenierıa

2010

Page 2: Visualización y Modificación de Superficies con un STM

Agradecimientos

Deseo expresar mis mas sinceros agradecimientos...

A todos mis profesores, por sus ensenanzas, estımulos y correciones. Gracias por

mostrarme la manera de aprender y darme una perspectiva distinta del mundo que

me rodea.

A mis amigos, especialmente a Andres, Camilo, Diego y Laura por sus comenta-

rios, revisiones y ayuda, sin los cuales no habrıa sido posible culminar este trabajo.

Al laboratorio de Ingenierıa Electrica y Electronica de la Universidad de Los

Andes por el prestamo de los equipos y por proporcionarme un espacio de trabajo

ideal.

A la senora Dery Corredor del MEB de la Universidad de los Andes por su ayuda

con las fotos y analisis de composicion de puntas y sustratos.

No puedo terminar sin agradecer a mis padres y mi hermana, su apoyo, amor

y estımulo constante han sido fundamentales no solo en este proyecto sino durante

toda mi vida. Es a ellos a quien dedico este trabajo.

ii

Page 3: Visualización y Modificación de Superficies con un STM

Prefacio

Este documento son las memorias de mi trabajo de tesis para el grado de ingeniero

electronico. En estas paginas explico las pruebas llevadas a cabo para cumplir con

el objetivo de realizar modificaciones nanometricas en la superficie de un material

utilizando un microscopio de tunelamiento electronico y los resultados que obtuve.

Sin embargo, mas alla de esto, mi intencion es que este trabajo sirva como un manual

del microscopio de tunelamiento con el que cuenta la Universidad de Los Andes.

He procurado que en sus paginas se encuentre una referencia suficiente que per-

mita al usuario del equipo comenzar a experimentar con el y a hacer uso de todas

sus capacidades una vez termine de leerlo. A pesar de esto, debo advertir por ex-

periencia propia que a medida que se aprende mas sobre el sistema, surgen mas y

mas preguntas y es probable que tales inquietudes sean diferentes a las que tuvieron

quienes hicieron aportes anteriormente, por lo tal no puedo hacer mas que garantizar

un buen punto de partida para su propia investigacion.

iii

Page 4: Visualización y Modificación de Superficies con un STM

Indice general

Agradecimientos II

Prefacio III

Introduccion 3

1. Teorıa de un microscopio de tunelamiento 5

1.1. El Efecto Tunel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2. Funcionamiento de un STM . . . . . . . . . . . . . . . . . . . . . . . 8

1.2.1. Principio de funcionamiento . . . . . . . . . . . . . . . . . . . 8

1.3. Modos de operacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3.1. Corriente constante . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3.2. Altura constante . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.4. Bloques funcionales de

un microscopio de tunelamiento . . . . . . . . . . . . . . . . . . . . . 10

1.4.1. Control y monitoreo de corriente . . . . . . . . . . . . . . . . 10

1.4.2. Sistema antivibraciones . . . . . . . . . . . . . . . . . . . . . . 11

1.4.3. Control de escaneo . . . . . . . . . . . . . . . . . . . . . . . . 11

1.4.4. Adquisicion de datos . . . . . . . . . . . . . . . . . . . . . . . 11

1.4.5. Sistema de visualizacion . . . . . . . . . . . . . . . . . . . . . 12

2. El STM de Uniandes 13

2.1. Caja de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2. Preamplificador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3. Sistema de adquisicion de datos . . . . . . . . . . . . . . . . . . . . . 16

iv

Page 5: Visualización y Modificación de Superficies con un STM

Indice general v

2.4. Placas de aproximacion . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5. Trıpode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.6. Sistema antivibraciones . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.6.1. Baja frecuencia . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.6.2. Alta frecuencia . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.6.3. Recomendaciones para evitar vibraciones . . . . . . . . . . . . 19

2.7. Software para el control del microscopio . . . . . . . . . . . . . . . . 19

2.7.1. Ajustes posibles dentro del programa . . . . . . . . . . . . . . 20

2.7.2. Modo de visualizacion . . . . . . . . . . . . . . . . . . . . . . 21

2.7.3. Modo de fabricacion . . . . . . . . . . . . . . . . . . . . . . . 22

2.8. Cambios realizados al sistema durante este trabajo . . . . . . . . . . 22

3. Visualizacion de muestras con el STM de Uniandes 25

3.1. Preparacion de puntas . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.1.1. Puntas de W . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.1.2. Puntas de Pt-Ir . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1.3. Consejos para la fabricacion y almacenamiento de las puntas . 28

3.2. Equipo requerido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3. Ajustes previos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.4. Procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.5. Resultados y Analisis . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.6. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.6.1. Calibracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.6.2. Repeticion de experimentos . . . . . . . . . . . . . . . . . . . 37

3.6.3. Procesamiento de imagenes . . . . . . . . . . . . . . . . . . . 38

4. Litografıa con STM 41

4.1. Tecnica sugerida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.2. Procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3. Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.4. Analisis y conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5. Trabajo futuro 49

Page 6: Visualización y Modificación de Superficies con un STM

Indice general vi

A. Codigo fuente programa 51

A.1. Main.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

A.2. Scan.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

A.3. Settings.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Bibliografıa 89

Page 7: Visualización y Modificación de Superficies con un STM

Indice de figuras

1.1. Ejemplo de un potencial . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2. Tunelamiento a traves de una barrera de potencial . . . . . . . . . . . 7

1.3. Modo de operacion de corriente constante . . . . . . . . . . . . . . . 9

1.4. Modo de operacion a altura constante . . . . . . . . . . . . . . . . . . 10

2.1. Microscopio de tunelamiento electronico . . . . . . . . . . . . . . . . 13

2.2. Esquematico del preamplificador. . . . . . . . . . . . . . . . . . . . . 15

2.3. Tarjeta de adquisicion compactRio de National Instruments R© . . . . 17

2.4. Diagrama de bloques del sistema electronico . . . . . . . . . . . . . . 18

2.5. Diagrama de las placas de aproximacion. . . . . . . . . . . . . . . . . 18

2.6. Piezoelectricos y trıpode . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.7. Sistema antibraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.8. Programa de control del microscopio . . . . . . . . . . . . . . . . . . 21

2.9. Patrones de fabricacion . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.10. Sistema de control en modo de fabricacion . . . . . . . . . . . . . . . 24

3.1. Punta hecha por ataque electroquımico . . . . . . . . . . . . . . . . . 27

3.2. Punta de tunsgteno y acercamiento . . . . . . . . . . . . . . . . . . . 28

3.3. Puntas de platino iridio. . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4. Conexion del voltaje de la muestra . . . . . . . . . . . . . . . . . . . 31

3.5. Pines del conector DB9 tarjeta-contro analogo . . . . . . . . . . . . . 32

3.6. Foto HOPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.7. Foto Muestra de calibracion de oro . . . . . . . . . . . . . . . . . . . 36

3.8. Foto 2 HOPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.9. Muestra de oro en 2D y 3d . . . . . . . . . . . . . . . . . . . . . . . . 39

vii

Page 8: Visualización y Modificación de Superficies con un STM

Indice de figuras viii

4.1. HOPG antes de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.2. HOPG despues de experimento de fabricacion con Vbias = 4V y v =

120nm/s. Patron T. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.3. HOPG despues de experimento de fabricacion con Vbias = 6V y v =

120nm/s. Patron A. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.4. HOPG despues de experimento de fabricacion con Vbias = 8V y v =

120nm/s. Patron A. . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.5. Patron A girado. Utilizado en pruebas con silicio. . . . . . . . . . . . 45

4.6. Imagenes Si antes del experimento de modificacion. . . . . . . . . . . 46

4.7. Silicio despues de experimento con Vbias = 5V y v = 200nm/s. Patron

A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.8. Silicio despues de experimento con Vbias = 4V y v = 200nm/s. Patron

S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.9. Silicio despues de experimento con Vbias = 5V y v = 400nm/s. Patron S 47

Page 9: Visualización y Modificación de Superficies con un STM

Indice de cuadros

3.1. Cuadro comparativo de las puntas de tungsteno y platino iridio. . . . 28

4.1. Parametros que aseguran modificaciones sobre la superficie escaneada. 48

1

Page 10: Visualización y Modificación de Superficies con un STM

Indice de cuadros 2

Page 11: Visualización y Modificación de Superficies con un STM

Introduccion

En el campo de la nanotecnologıa siempre se busca tener nuevos procesos que

permitan construir dispositivos y la altısima resolucion (existen reportes de hasta

2nm [8]) que se puede lograr con un microscopio de tunelamiento electronico en

modo de fabricacion y que supera a otras tecnicas como el rayo de electrones, hace

que valga la pena hacer un estudio que evalue la controlabilidad y rapidez del proceso,

pues se podrıa llegar a convertir en una herramienta para litografıa en instalaciones

de sala limpia, como las que existen en la universidad. Con el kit de microscopio de

tunelamiento electronico escolar se han podido visualizar estructuras nanometricas

y en esta oportunidad se exploran sus capacidades para realizar litografıa sobre

materiales semiconductores y carbono. Lo interesante es que se trata de un equipo

de bajo costo al cual a medida que se le agregan capacidades cumple con mayor

exito su proposito principal: acercar a los estudiantes que hasta ahora comienzan sus

carreras al mundo microscopico y a los fabulosos fenomenos que ocurren en el.

3

Page 12: Visualización y Modificación de Superficies con un STM

Indice de cuadros 4

Page 13: Visualización y Modificación de Superficies con un STM

Capıtulo 1

Teorıa de un microscopio de

tunelamiento

1.1. El Efecto Tunel

Considerese una partıcula en un espacio unidimensional, esta es libre de moverse

en cualquiera de las dos direcciones posibles, pero en algun punto existe una barrera

de potencial constante V0 (que es superior a la energıa E de la partıcula) y ancho d

(ver Figura 1.1).

Es decir,

V (x) =

{V0 0 < x < d

0 x < 0 o x > d(1.1)

Desde el punto de vista de la mecanica clasica, con E < V0 es imposible detectar

el cuerpo del otro lado de la barrera, por lo cual la probabilidad de transmision

es cero. Los resultados cambian dramaticamente al utilizar la mecanica cuantica.

Al resolver la ecuacion de Schrodinger para este caso, asumiendo independencia del

tiempo por simplicidad, se tiene que:

Para sectores del espacio por fuera de la barrera:

− h2

2m

d2ψ(x)

dx2= Eψ(x) (1.2)

5

Page 14: Visualización y Modificación de Superficies con un STM

Capıtulo 1. Teorıa de un microscopio de tunelamiento 6

Figura 1.1: Ejemplo de un potencial que es aproximado por una barrera de alturaconstante.

y las soluciones de la ecuacion son de la forma:

ψ(x) =

Aeik1x +Be−ik1x, si x < 0

Ceik1x +De−ik1x, si x > d(1.3)

con

k1 =

√2mE

h2 (1.4)

y en donde A, B, C, y D son constantes que seran determinadas de acuerdo a las

condiciones de frontera impuestas a la funcion y sus derivadas.

Para el espacio donde esta la barrera:

− h2

2m

d2ψ(x)

dx2+ V0ψ(x) = Eψ(x) (1.5)

y la solucion es:

ψ(x) = Fek2x +Ge−k2x, para 0 < x < d (1.6)

donde

k2 =

√2m(V0 − E)

h2 (1.7)

Siendo F y G constantes. Se fija D = 0 porque no hay nada a la derecha de

la barrera que pueda generar una reflexion, por lo tanto la onda solo viajara en la

direccion de x ascendente en este sector del espacio.

Page 15: Visualización y Modificación de Superficies con un STM

Capıtulo 1. Teorıa de un microscopio de tunelamiento 7

Es posible determinar las constantes restantes en terminos de una de ellas y

calcular el coeficiente de transmision de un lado al otro de la barrera, que es definido

como el radio entre la probabilidad de transmision y la probabilidad de reflexion1:

T ≡ C∗C

A∗A(1.8)

Al final se obtiene que:[7]:

T = [1 +sihn2k2d

4 EV0

(1− EV0

)]−1 (1.9)

y para k2d >> 1:

T ' 16E

V0

(1− E

V0

)e−2k2d (1.10)

De (1.10) se puede apreciar que la energıa de la partıcula, su masa, el tamano de

la barrera de potencial y el ancho de esta determinan la probabilidad de transmision.

Estos resultados son sorprendentes. A pesar de que la probabilidad de que la partıcula

Figura 1.2: Tunelamiento a traves de una barrera de potencial. Gran parte de la ondaincidente es reflejada debido a que la energıa es menor que la barrera, pero tambienexiste una pequena probabilidad de que la onda sea transmitida.

sea encontrada al lado derecho de la barrera es extremadamente pequena, no es cero,

contrario a los resultados de la mecanica clasica.

1En el caso mas general la definicion incluye las velocidades de los medios, que en este caso esla misma a ambos lados de la barrera T = (vderecha/vizquierda)C∗C/A∗A que se omiten por ser lasmismas se cancelan.

Page 16: Visualización y Modificación de Superficies con un STM

Capıtulo 1. Teorıa de un microscopio de tunelamiento 8

1.2. Funcionamiento de un STM

1.2.1. Principio de funcionamiento

Para que el equipo funcione se aplica un voltaje entre una punta conductora

y una muestra que debe ser metalica o semiconductora que son mantenidas a una

distancia muy pequena para facilitar el paso de electrones de un material al otro

por efecto tunel (esencialmente, se puede decir que mientras no exista un contacto

directo se tiene una barrera de potencial que impide el paso de los electrones de un

lado al otro). Las imagenes son construidas registrando las variaciones en la corriente

a medida que la punta se desplaza sobre el plano de la muestra.

En un microscopio de tunelamiento electronico se aprovecha el efecto tunel para

obtener mapas de densidades electronicas. Si bien el tratamiento formal del problema

es mas complicado que el presentado en la seccion anterior, este es una aproximacion

que permite entender un poco de la fısica del sistema. En particular, la corriente de

tunelamiento mantiene la proporcionalidad exponencial[9]:

I ∝ e−2ktd (1.11)

siendo d la distancia punta-muestra y

kt =

√2m(φpunta−muestra − E)

h2 (1.12)

de manera analoga al caso unidimensional, tal y como se presento antes.

Detras de esta sencilla explicacion acerca de la manera como se crean las imagenes

de un microscopio de tunelameniento se esconden distintas complicaciones que hacen

que en realidad sea una tarea bastante complicada. Los dos problemas principales

radican en 1) la corta distancia que debe existir para que haya tunelamiento y 2) el

orden de magnitud de la corriente. Suponiendo una funcion de trabajo alrededor de

5eV (que es Φpunta−muestra − E para un STM operado en vacıo[9]), un cambio en la

distancia de 1A produce una variacion en la corriente de casi un orden de magnitud.

[9]. Por tal motivo es necesario que el sistema cuente con un instrumento de medicion

capaz de registrar corrientes de nanoamperios y un sistema de posicionamiento que

pueda desplazarse de fracciones de angstrom a unos cuantos nanometros de manera

Page 17: Visualización y Modificación de Superficies con un STM

Capıtulo 1. Teorıa de un microscopio de tunelamiento 9

controlada. Ademas, se debe contar con mecanismos que limiten las vibraciones a

mucho menos que un angstrom.

1.3. Modos de operacion

1.3.1. Corriente constante

En este caso el control actua moviendo la punta en el eje vertical para mantener

la corriente tan estable como sea posible y las imagenes se producen registrando los

voltajes aplicados al piezoelectrico para que este se estire o se contraiga.

I(x)

x

Figura 1.3: Modo de operacion de corriente constante. La punta del microscopio semueve hacia arriba y hacia bajo con el proposito de mantener una senal estable sinimportar la topografıa del material.

1.3.2. Altura constante

En este modo de operacion la punta se mantiene a una altura fija sobre la muestra

mientras se va desplazando en el plano horizontal. Como la posicion vertical siempre

es la misma, las imagenes se construyen directamente a partir de las variaciones de

la corriente.

El funcionamiento con altura constante es mas limitado pues solo sirve en mues-

tras en las que las variaciones de altura sean muy pequenas, ya que este es un tipo de

Page 18: Visualización y Modificación de Superficies con un STM

Capıtulo 1. Teorıa de un microscopio de tunelamiento 10

control de lazo abierto y por lo tanto no se haran correcciones que permitan seguir

de manera ideal la senal de corriente y ası proporcionar un rango de medicion mas

amplio.

I(x)

x

Figura 1.4: Modo de operacion a altura constante. En este caso no se mueve la puntaen el eje z y las imagenes son el resultado de las variaciones en la corriente.

1.4. Bloques funcionales de

un microscopio de tunelamiento

1.4.1. Control y monitoreo de corriente

La tarea mas importante es registrar y controlar efectivamente la corriente pro-

ducida por el efecto tunel. Debido a la velocidad de respuesta y a las distancias

tan pequenas que se debe mover la punta para generar cambios significativos en la

corriente, se utilizan piezoelectricos que se elongan o se contraen de acuerdo al po-

tencial electrico que se les aplique. Para escoger adecuadamente el voltaje sobre el

actuador se tiene un sistema de control retroalimentado en el cual se compara una

senal de referencia con la medicion real.

Debido a que las corrientes obtenidas por efecto tunel son pequenısimas (∼ 1nA),

no se hace la comparacion directamente sobre estas sino que primero son amplifica-

das para evitar problemas de ruido. En el proceso de amplificacion usualmente se

Page 19: Visualización y Modificación de Superficies con un STM

Capıtulo 1. Teorıa de un microscopio de tunelamiento 11

convierte la corriente medida en un voltaje. Ademas se coloca el amplificador tan

cerca de la punta como sea posible.

1.4.2. Sistema antivibraciones

Debido a que un cambio en la separacion entre punta y muestra de menos de

1A es suficiente para cambiar el orden de magnitud de la corriente es necesario

mantener el sistema aislado de vibraciones externas, por tal motivo los microscopios

de tunelamiento cuentan con varios mecanismos antivibratorios, entre los que se

cuentan mesas que cancelan las vibraciones del piso y cajas que aislan la punta y

muestra de una exposicion directa a las corrientes de aire.

1.4.3. Control de escaneo

Para poder construir imagenes es necesario barrer la muestra y para tener una

buena resolucion se requiere que los pasos sean muy pequenos, razon por la cual

tambien se utilizan piezoelectricos para generar estos desplazamientos, ya que ofrecen

rangos de movimiento diminutos, ideales para este tipo de aplicacion y con una

resolucion muy superior a la ofrecida por sistemas mecanicos.

Por cada piezoelectrico se tendra una senal de voltaje, que por lo general sera ge-

nerada desde el computador que controla la visualizacion.

1.4.4. Adquisicion de datos

Se debe contar ademas con un equipo de adquisicion de datos, que en el caso mas

simple sera un conversor analogo digital para ls senal que entra (voltaje proporcional

a la corriente tunel), conversores digital analogo para el control de los piezoelectricos

que se mueven en el plano horizontal y algun tipo de dispositivo que comunica los

datos desde y hacia el computador de manera ordenada.

Por lo general se cuenta con una tarjeta de adquisicion que cumple con todas

estas funciones y la cual ya tiene un conjunto de instrucciones predeterminadas que

facilitan su programacion e integracion al equipo.

Page 20: Visualización y Modificación de Superficies con un STM

Capıtulo 1. Teorıa de un microscopio de tunelamiento 12

1.4.5. Sistema de visualizacion

Todos los datos que son registrados por el equipo finalmente son almacenados

y procesados en un computador para obtener una representacion grafica de las co-

rrientes registradas en cada punto del plano. Para construir las imagenes se utiliza

una escala simple de color en la cual se representan los valores fısicos por medio de

las variaciones en la intensidad de un color. Es comun el uso de una escala de grises

en la que que se tienen valores entre 0 y 255.

El tamano en pixeles deberıa ser proporcional al numero de datos adquiridos y

siempre menor o igual a esta cifra.

Vale la pena mencionar que es ideal guardar la matriz de datos ya que en la

visualizacion 2D se pierde informacion y que las imagenes obtenidas de este modo

por lo general van a requerir un fuerte postprocesamiento que corrige efectos de las

dificultades presentadas durante el barrido y que posiblemente entregue tambien una

representacion tridimensional.

Page 21: Visualización y Modificación de Superficies con un STM

Capıtulo 2

El STM de Uniandes

Figura 2.1: Microscopio de tunelamiento electronico de la Universidad de Los Andes.

El microscopio de tunelamiento electronico de la Universidad de Los Andes co-

13

Page 22: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 14

menzo en el ano 2005 como parte de un intercambio academico en el cual el Interface

Physics Group de la Westfalische Wilhelms-Universitat Munster, de Alemania, en-

trego uno de sus equipos de microscopıa electronica. El sistema (que fue disenado

con el proposito de ser un STM de bajo costo que permitiera acercar a los alumnos de

pregrado al mundo de la nanotecnologıa) contaba con unas placas de aproximacion,

un trıpode para la punta (con sus respectivos piezoelectricos), un preamplificador de

transconductancia, una caja de componentes electronicos con ajuste del voltaje de

polarizacion, la corriente de referencia y la constante integral del control analogo,

una tarjeta de adquisicion de puerto ISA y un programa junto con su codigo fuente

para la visualizacion de las imagenes.

Desde el ano 2006, gracias al aporte de varios estudiantes de pregrado, se ha veni-

do trabajando de manera contınua en analizar, verificar y mejorar el funcionamiento

del equipo. Es tal la diferencia entre el microscopio con el que se cuenta hoy en dıa y

el que llego a la universidad hace varios anos, que se puede decir que nuestro sistema

no solo es unico sino que presenta modificaciones que lo hacen mejor a la propuesta

original.

El microscopio de tunelamiento de Uniandes solo tiene el modo de funcionamiento

de corriente constante.

A continuacion se presenta una descripcion de cada uno de sus componentes.

2.1. Caja de control

Es un conjunto de circuitos electronicos que cumple dos funciones: 1) es el control

proporcional integral (PI) de posicion de la punta y 2) actua como buffer para mejorar

la respuesta de los piezoelectricos a los voltajes aplicados.

El control PI compara la senal de voltaje que proviene del preamplificador con la

referencia y de acuerdo al resultado aplica el voltaje adecuado al piezoelectrico que se

mueve en el eje vertical. Ademas del ajuste de la referencia, el usuario tambien tiene

la posibilidad de cambiar los valores de las constantes para la parte proporcional

y para la parte integral por separado. El equipo original tenıa un tipo de control

que era solo integral y ademas el voltaje de polarizacion de la muestra tambien era

controlado en esta caja. Para este trabajo se decidio que de ahora en adelante tal

Page 23: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 15

potencial serıa ajustado desde el programa de control en el computador.

2.2. Preamplificador

Se cuenta con amplificador de transconductancia de ganancia lineal que se coloca

tan cerca de la punta del microscopio como es posible. La ganancia es de 8,54 ×108V/A 1 en condiciones de operacion normal. Esto quiere decir que una corriente

de 1nA se vera representada por un voltaje de 0,854V . La salida del circuito va

conectada a la caja de control.

+

-ITunnel

R7

R8

+

-V-

V+

T1 T2

CASE

OPA128/BB

-12

+12

2

3 7 8

651

4

C1

Vout

P1

18kΩ

2kΩ

100nF

Figura 2.2: Esquematico del preamplificador.

1La ganancia fue calculada a partir de la grafica de respuesta del preamplificador obtenida porBernal [3].

Page 24: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 16

2.3. Sistema de adquisicion de datos

Para el funcionamiento del microscopio de tunelamiento es necesario contar con

una tarjeta de adquisicion de National Instruments R©que pueda operar en un rango

de voltajes entre−10V y 10V , que debe tener tres salidas analogas de voltaje (VpiezoX ,

Vpiezoy y Vmuestra) y una entrada de voltaje (VpiezoZ). Debido a las bajas velocidades

de barrido (4HZ por lınea de imagen es un lımite razonable), no es muy grande la

exigencia sobre la velocidad de muestreo del dispositivo y la gran mayorıa de las

opciones comerciales pueden ser utilizadas con el software de control.

En este proyecto se utilizo una tarjeta NI cDAQ-9178, de conexion USB, con un

modulo NI9263 de 4 salidas analogas (100kS/s, 16-bit, ±10V ) y un NI9205 de 32

entradas (±200mV a ±10V , 16-Bit, 250kS/s). Las salidas y entradas de la tarjeta

se comunican con la caja de control por medio de un conector DB9 al que se han

soldado cables para cada una de las senales. Como los dos modulos funcionan de

manera independiente es importante conectar las tierras de ambos componentes para

evitar ruido dentro del sistema.

En el evento del uso de un dispositivo distinto, podrıa ser necesario implementar

algunos cambios a la conexion, pero una vez estos sean realizados el funcionamiento

sera el mismo dentro de condiciones de operacion normales.

2.4. Placas de aproximacion

Estas sirven para soportar el trıpode y el preamplificador, pero ademas cum-

plen la importante tarea de proporcionar un medio de aproximacion gruesa. Para

esto cuentan con tres tornillos de precision. Los de adelante mueven la punta apro-

ximadamente 200µm por vuelta y el de atras alrededor de 2µm, proporcionando

aproximaciones gruesa y fina respectivamente.

2.5. Trıpode

Esta es una pieza en la cual estan instalados los piezoelectricos y que sirve de

soporte para la punta del microscopio. En el diseno aleman la aguja iba debajo del

Page 25: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 17

Figura 2.3: Tarjeta de adquisicion compactRio de National Instruments. R©Modulosde entradas analogas (izquierda), salidas (derecha) y base. Fotos tomadas del sitioweb del fabricante.

trıpode, pero en el equipo Uniandes se agrego una extension que hace que ahora

quede fija a un lado, facilitando el montaje y conexion de la punta.

2.6. Sistema antivibraciones

2.6.1. Baja frecuencia

Para reducir las vibraciones de baja frecuencia se cuenta con dos etapas. La

primera de ellas esta compuesta por 5 placas de marmol que son soportadas por 4

pelotas de tenis.

El segundo mecanismo consiste en suspender en el aire el mecanismo antivi-

bratorio de alta frecuencia por medio de 3 bandas de caucho. Estudios anteriores

Page 26: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 18

Figura 2.4: Diagrama de bloques del sistema electronico del microscopio.

Figura 2.5: Diagrama de las placas de aproximacion.

determinaron que los mejores resultados se encontraban aumentando la longitud de

los sujetadores. [3]

2.6.2. Alta frecuencia

Esta conformado por 7 discos de acrılico de 34cm de diametro y un espesor de

3mm, que son separados por tres trozos de un material elastico (viton) de 4.7mm de

diametro.

Page 27: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 19

Figura 2.6: Piezoelectricos (partes verdes) y trıpode que los sostiene. Tambien seaprecia la base donde se coloca la aguja.

2.6.3. Recomendaciones para evitar vibraciones

A pesar de que los mecanismos mencionados arriba reducen considerablemen-

te las vibraciones, es necesario tratar de reducir las fuentes de ruido mecanico en

el momento de operacion. En ese sentido, se recomienda trabajar en un ambiente

silencioso y tan alejado de motores y personas como sea posible.

Otro aspecto importante de mencionar es que se preste especial cuidado a las

conexiones y a la disposicion de los cables. Estos deberıan estar fijos pero no tensio-

nados, de tal modo que no propaguen vibraciones hacia el equipo.

2.7. Software para el control del microscopio

A excepcion del control de posicion de la punta, todo el sistema electronico del

STM es controlado desde el computador. Para ello se cuenta con una aplicacion que

permite la configuracion preliminar de la tarjeta de adquisicion, lo cual incluye la

seleccion de los canales y los rangos de voltaje esperados para cada uno de ellos. Una

vez se hayan hecho los ajustes pertinentes, se puede pasar a la ventana de barrido

que ofrece varias opciones.

Page 28: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 20

Figura 2.7: Sistema antibraciones. Las placas de aproximacion y el preamplificadorse colocan sobre los discos que estan suspendidos de las bandas de caucho.

2.7.1. Ajustes posibles dentro del programa

Frecuencia de lınea: Se escoge la velocidad por lınea del equipo. Esta no debe

ser superior a 4Hz para optimos resultados. Ademas es recomendable tener en

cuenta que un barrido se va a tardar un tiempo total en segungos de numero

de lıneas/frecuencia, por ejemplo, si se seleccionara una frecuencia de lınea de

0,1, un cuadro de 512 lıneas se demorarıa aproximadamente 85 minutos.

Voltaje de polarizacion de la muestra: Es el voltaje que se aplica a la

muestra referido a tierra. Tiene un rango de 0V a 10V .

Page 29: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 21

Figura 2.8: Programa de control del microscopio. Permite configurar los voltajes apli-cados a los piezoelectricos, visualizar muestras y hacer experimentos de fabricacion.Ademas soporta diversas tarjetas de adquisicion de National Instruments R©

Tamano de la ventana de escaneo: El tamano maximo de escaneo depende

del movimiento de los piezoelectricos, pero el usuario puede decididir explorar

una zona mas pequena y no necesariamente cuadrada.

Posicion inicial: No necesariamente se tiene que comenzar en la esquina supe-

rior de la ventana de escaneo (predeterminado), sino que es posible seleccionar

otras coordenadas iniciales siempre y cuando las dimensiones de la ventana y

esta opcion no lleven a un punto fısicamente inalcanzable (cuando el tamano

del barrido es mayor que la distancia que queda entre el punto inicial y la

posicion mas lejana que alcanzan los piezoelectricos).

2.7.2. Modo de visualizacion

Direccion de barrido: Se puede escoger que la muestra sea escaneada de

izquierda a derecha, derecha a izquierda o en ambas direcciones.

Resolucion: Es el numero de lıneas y columnas que va a tener la imagen. Con

Page 30: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 22

este dato se define el numero de muestras de voltaje que toma el sistema para

la construccion de la matriz que da lugar a la imagen.

2.7.3. Modo de fabricacion

Patron: Existen 7 patrones predeterminados de trazo continuo, es decir que

los piezoelectricos no se mueven en el mismo sentido que durante visualizacion,

sino que sus voltajes X y Y estan programados para crear tales formas sin

tener que variar la polarizacion de la muestra durante el experimento. Adi-

cionalmente existe la opcion de cargar una imagen, en la cual el color blanco

se interpretara como 0V y cualquier otro color sera el voltaje escogido en la

opcion de polarizacion de la muestra, en este caso el barrido es identico al de

visualizacion, pero en cada paso se aplica el potencial deseado.

Figura 2.9: Algunos de los patrones de fabricacion disponibles dentro del programa.

2.8. Cambios realizados al sistema durante este

trabajo

El objetivo principal de este proyecto era realizar modificaciones nanometricas

sobre superficies de carbono pirolıtico de alto ordenamiento (HOPG, por sus siglas en

Page 31: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 23

ingles) y silicio. Este tipo de pruebas ya se habıan hecho antes, pero los resultados

no fueron concluyentes debido a que no fue posible generar un protocolo experi-

mental reproducible[2]. Una de las dificultades encontradas a juicio del autor, era

la imposibilidad de hacer patrones arbitrarios que luego pudieran ser identificados

mas facilmente que cuadrados o cırculos, que eran las figuras que se esperacan obte-

ner y que son facilmente confundidos con cambios accidentales causados por varios

fenomenos, como por ejemplo el choque de una punta contra la muestra.

Para poder continuar con los experimentos de fabricacion y tambien pensando

en el problema de utilizar una interfaz STM-computador que depende de un bus de

datos descontinuado (el sistema ISA), se decidio cambiar esta parte del microscopio.

Esto implicaba cambiar tambien la aplicacion para el computador.

Es ası que el software y el sistema de adquisicion de datos, que no habıan si-

do replanteados desde el diseno aleman original fueron reemplazados y tienen las

caracterısticas presentadas arriba.

Adicionalmente, se modifico el diseno de la caja de control para que ahora el

voltaje de polarizacion de la muestra sea determinado desde el computador. Este

cambio no ha sido implementado aun, pero para el proyecto se hicieron el esquematico

y el diseno de circuito impreso necesarios para su realizacion.

Page 32: Visualización y Modificación de Superficies con un STM

Capıtulo 2. El STM de Uniandes 24

Figura 2.10: Sistema de control del microscopio de tunelamiento electronico en modode fabricacion. Se ha seleccionado un barrido personalizado en el cual a cada unade las celdas que conforman el area de escaneo se le asigna un voltaje de acuerdo alcolor (0V) para el blanco y bias voltage de lo contrario.

Page 33: Visualización y Modificación de Superficies con un STM

Capıtulo 3

Visualizacion de muestras con el

STM de Uniandes

3.1. Preparacion de puntas

Posiblemente la parte mas difıcil e importante del trabajo con un microscopio

de tunelamiento es la fabricacion de las puntas. Se desea que estas sean tan agudas

como sea posible ya que de ellas depende la resolucion del microscopio. Ademas, para

que las imagenes sean comparables es necesario que sean tomadas con puntas muy

similares, ası que se requiere tener procesos altamente reproducibles, con los cuales

se pueda garantizar que la variacion entre una y otra sea mınima.

La punta debe ser de un material conductor que no interactue quımicamente y de

este modo poder mantenerla limpia por largo tiempo. Preferiblemente que tambien

sea rıgido para asegurar la menor reaccion posible a las vibraciones.

Tungsteno (W) y platino iridio (Pt-Ir) son ampliamente utilizados para este fin.

En la Universidad de los Andes se emplean ambos materiales y se dispone de

tecnicas de fabricacion diferentes para cada uno.

3.1.1. Puntas de W

El tungsteno es un material extremadamente duro, por ello las puntas son fabri-

cadas por medio de un ataque electroquımico. El proceso requiere de una solucion de

25

Page 34: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 26

electrolito, un anodo y un catodo. La pieza de metal que se quiere pulir se conecta

al positivo de la fuente de corriente contınua. Otro pedazo de metal es conectado al

negativo para que sea el catodo. Cuando se enciende la fuente el metal del anodo

es disuelto y convertido en iones positivos al mismo tiempo que una cantidad igual

de los presentes en la solucion es convertida en metal y es depositada en el catodo.

Dependiendo del voltaje utilizado y de la concentracion del electrolito pueden ocurrir

reacciones mas complejas, pero la remocion de material del anodo y la deposicion en

el catodo son los efectos principales.

El anodo es un pedazo de tungsteno de 1,5cm de longitud por 0,5mm de radio 1

y el anodo es un anillo de cobre de 8mm de diametro, en el centro del cual se coloca

el metal que se ataca. El electrolito es una solucion de KOH 2M. Se cuenta con un

circuito de control que automatiza el proceso y este dura alrededor de 50 minutos.

La preparacin del montaje toma cerca de 10 minutos, lo que quiere decir que todo

el procedimiento tarda aproximadamente una hora.

El montaje y procedimiento experimental han sido descritos con gran detalle y

precision en los trabajos de otros autores [3], [5].

La ventaja principal de esta tecnica es que el control que existe sobre el proceso

permite que haya una alta reproducibilidad de los resultados: las puntas tienen re-

laciones de aspecto (diametro sobre longitud) y formas similares, comportandose de

la misma manera al ser utilizadas en el microscopio y por lo tanto proporcionando

imagenes comparables. La gran dificultad esta en el tiempo que toma preparar una

sola aguja.

Las puntas mas agudas que se han podido desarrollar con esta tecnica en la

universidad han tenido un diametro aproximado de 100nm y para obtener buenas

imagenes es deseable que en su extremo mas filudo tengan un tamano no superior

a los 400nm2. Los resultados habituales son puntas que estan entre los 300nm y

1El ataque electroquımico es una tecnica que tambien puede ser utilizada con otros diametros,e incluso con otros materiales, como por ejemplo el Pt-Ir. Sin embargo, en este proyecto solo seutilizo con la configuracion descrita, debido a que experimentos previos demostraron que no habıauna mejora apreciable en la resolucion del microscopio al usar alambres mas delgados y para el otromaterial se cuenta con una tecnica que arroja excelentes resultados.

2La resolucion de las imagenes depende del tamano de la punta, pero afortunadamene inclusocon agujas relativamente grandes se pueden obtener resultados de altısima calidad. Existen varias

estimaciones de la relacion de dicha dependencia, siendo una de ellas r(A) ≈ 3√

R(A)[4]

Page 35: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 27

Figura 3.1: Punta de tungsteno hecha con un alambre de diametro de 5mm porla tecnica de ataque electroquımico. Idealmente todas las agujas hechas con estealambre tienen la misma forma y relacion de aspecto, ademas de un tamano similaren el extremo.

600nm.

3.1.2. Puntas de Pt-Ir

Para el microscopio de efecto tunel se ha venido utilizando alambre de 0,25mm

de diametro de una aleacion de platino iridio(80 % Pt, 20 % Ir). Este material es de

color plateado brillante y es bastante maleable. Aunque es posible usar el ataque

electroquımico (utilizando una solucion diferente) para la fabricacion de las puntas,

en este caso se ha optado por el corte manual. Con un cortafrıos muy afilado se hace

un corte procurando mantener un angulo muy pequeno entre las pinzas y el alambre

(que esten casi paralelos) y se hala mientras se produce el corte. La agudeza de las

puntas resultantes es increıble, pues en gran parte de los casos estas arrojan mejores

resultados de visualizacion que las de tungsteno, ya que a pesar de su forma irregular,

es suficiente con que unos pocos atomos en el extremo formen una minipunta para

que haya un buen tunelamiento durante los experimentos.

Ademas de ofrecer una mayor resolucion que las de tungsteno, tienen otros puntos

a su favor como lo son el no oxidarse y ser fabricadas con un tecnica que no tarda mas

Page 36: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 28

Figura 3.2: Punta de tunsgteno y acercamiento al extremo de la misma, que tieneun tamano de alrededor de 500nm.

de 10 minutos, en contraste con el tiempo requerido para el ataque electroquımico.

Su punto debil esta en la naturaleza artesanal del proceso, que no permite que

se tengan puntas iguales con facilidad. Mayor informacion sobre la tecnica de corte

puede ser encontrada en el trabajo de Bonilla ??.

Material: Tungsteno (W) Platino Iridio (PtIr)Diametro exterior: 0,5 mm 0,25mm

Tecnica: Ataque electroquımico CorteTiempo preparacion: 1 hora 10 minutos

Radio: 100− 300nm 40− 300nm

Cuadro 3.1: Cuadro comparativo de las puntas de tungsteno y platino iridio.

3.1.3. Consejos para la fabricacion y almacenamiento de las

puntas

Practicar las tecnicas de produccion hasta dominarlas completa-

mente. Se deben hacer muchas puntas mientras se esta aprendiendo y estas

deben ser examinadas en un microscopio electronico para poder reconocer acier-

tos y errores del proceso. Cuando las puntas son transportadas es importante

no tocar el extremo filudo o golpearlas, ya que esto danara la punta y el inves-

tigador no podra determinar con certeza si fue una falla del proceso o si algo

Page 37: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 29

Figura 3.3: Puntas de platino iridio. La naturaleza artesanal del proceso hace quetodas las agujas sean diferentes.

paso despues.

Una vez se domine la tecnica, dejar de examinar las puntas en el

otro microscopio. Simplemente se debe asumir que se tiene una buena aguja,

ya que por mas cuidado que se tenga, el hecho de llevarla a otro microscopio

y volverla a traer por lo general implica una alta probabilidad de destruccion

del extremo agudo en el proceso.

Durante la preparacion de las puntas por ataque electroquımico,

evitar las corrientes de aire. Estas pueden hacer que el extremo termine

doblado o que la forma sea irregular.

Tratar de utilizar las puntas tan pronto son fabricadas. Como se ha

mencionado, el hecho de almacenar las puntas trae consigo una alta posibilidad

de deterioro crıtico, por esto, en lo posible no deberıan prepararse agujas hasta

Page 38: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 30

cuando vayan a ser utilizadas. Sin embargo, en el evento de ser necesario,

mantenerlas guardadas en un ambiente de baja humedad o sumergirlas en

isopropanol.

Si se requiere limpiar las puntas, sumergirlas en isopropanol. Si las

puntas no estan muy sucias, sumergirlas por un par de minutos en este alcohol

sera suficiente para limpiarlas y no hay necesidad de secado, ya que se evapora

rapidamente.

3.2. Equipo requerido

Ademas del microscopio es necesario contar con varios equipos electronicos para

la polarizacion y monitoreo del funcionamiento. Los elementos requeridos son listados

a continuacion:

Osciloscopio: Es indispensable verificar que haya tunelamiento y que este se da

de manera controlada, por lo cual estas dos senales son observadas con frecuen-

cia. Ademas, es deseable monitorear constantemente los voltaje enviados a los

piezoelectricos desde el computador y el control analogo. Por esto es necesario

contar con un mınimo de 4 canales.

Multımetro: Ideal para verificar el voltaje aplicado a la muestra y revisar con-

tactos.

Fuente de voltaje dual DC: Se requiere para polarizar el microscopio. Debe

entregar −15V y 15V con una corriente de 1A.

3.3. Ajustes previos

Antes de poder utilizar el microscopio se deben conectar todos los bloques que

lo conforman y poner las placas de aproximacion sobre la base antivibraciones. Este

proceso es facil gracias a la buena senalizacion de todos los componentes. Todos los

cables propios del microscopio y las entradas se encuentran marcadas, para que no

haya lugar a equivocaciones. Algunos aspectos que vale la pena mencionar son:

Page 39: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 31

La fuente de voltaje alimenta la caja de control con −15V y 15V .

De la parte frontal de la caja salen los cables para la polarizacion del pream-

plificador.

Existen conectores BNC hembra para la referencia del control, la polarizacion

de la muestra y el voltaje del preamplificador. Aquellas que son salidas para

monitoreo (conexion al osciloscopio o al multımetro) estan marcadas con la

letra T.

Los piezoelectricos utilizan conectores RCA.

El cable de la polarizacion de la muestra va al primer conector hembra de la

placa inferior.

Figura 3.4: Conexion del voltaje de polarizacion para la muestra.

Para escoger correctamente el cable que debe ir a cada canal de la tarjeta de

adquisicion del conector DB9 que se une a la caja de control tener en cuenta

el diagrama de conexiones presentado en la figura 3.5.

Page 40: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 32

Figura 3.5: Indicacion de las senales que van a cada pin desde la tarjeta de adquisiciona la caja de control.

3.4. Procedimiento

Se recomienda seguir los pasos que se presentan a continuacion y en estricto orden

con el fin de no dejar que nada pase por alto y que se cometa el menor numero de

errores posible.

1. Abrir el programa de control y seleccionar los parametros adecua-

dos en la configuracion. Pasar a la ventana de barrido. Esto incluye

configurar los canales de la tarjeta de adquisicion que vayan a ser utilizados,

escoger la velocidad de barrido, la direccion y la resolucion de la imagen.

2. Colocar la muestra y polarizarla. Todas las muestras deben tener un

alambre o cable para su conexion al sistema.

3. Seleccionar una punta que sea bastante aguda y que este limpia

(que haya sido almacenada de manera adecuada). Las agujas pierden

su capacidad de entregar buenas imagenes cuando son golpeadas o cuando se

adhieren partıculas extranas a ellas. Ademas hay que tener en cuenta que las

puntas de tungsteno se oxidan.

4. Colocar la punta en el trıpode del microscopio. Para ser utilizadas

Page 41: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 33

en el STM de Uniandes, todas las puntas son colocadas dentro de una aguja

hipodermica de calibre xxx que ha sido deformada para su facil ajuste a la

base del trıpode. Usualmente se voltea la placa superior y se coloca la punta

a presion en la base, pero tambien es posible ponerla sin tener que levantar y

voltear la placa, pues la deformacion de la aguja hipodermica evitara que siga

derecho.

5. Establecer contacto electrico entre punta y preamplificador. Revisar

que todas las demas conexiones sean correctas. El preamplificador se

coloca en la placa superior y es deseable que su posicion sea elegida para que

el cable que conecta la punta a este no sea sujeto a tensiones y que por lo

tanto se vaya a safar durante el escaneo. Ademas, en la experiencia del autor,

la mayorıa de las dificultades presentadas son consecuencia de una falla en la

revision del estado del sistema antes de empezar.

6. Verificar que sı se estan registrando cambios en la entrada. En

la ausencia de corriente, el voltaje debe ser cero. Si se observan cambios en

la salida del preamplificador al tocar la punta con el dedo, esta funcionando

correctamente.

7. Efectuar la aproximacion gruesa. Los dos tornillos de adelante hacen que

la punta baje mas que el de atras. Por tal motivo se sugiere que se muevan estos

en el sentido contrario a las manecillas del reloj hasta que el usuario del equipo

crea que punta y muestra estan pegadas a simple vista. Si el procedimiento

ha sido llevado a cabo con cuidado y lentamente, todavıa no habra senal a la

salida del preamplificador. En este momento pasar a mover el tornillo de atras

en sentido contrario (como las manecillas del reloj) hasta que se vea que hay

un cambio en la senal monitoreada. Quitar la mano del equipo y observar por

un momento la respuesta. Si al cabo de un tiempo (∼ 1min la corriente sigue

estable, continuar con el procedimiento. Si no, acercarse o alejarse segun sea el

caso, siempre con el tornillo de mayor precision.

Ocasionalmente la punta sera chocada contra la muestra y esto se detectara des-

pues, cuando sea imposible estabilizar la corriente de tunelamiento. Sin embar-

go, un primer indicio es el paso de ausencia de senal a saturacion cuando se

Page 42: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 34

efectua este paso.

8. Ajustar los parametros del control analogo. Al entrar en tunelamiento

se va a detectar una senal de voltaje a la salida del amplificador de transconduc-

tancia, pero esta en muchas ocasiones va a oscilar o tener un comportamiento

erratico del cual solo por el voltaje medio se sabe que se trata de la senal de

interes. La manera de arreglar el problema es variar los parametros del control

PI. No hay una forma de indicar aca una formula que siempre de resultados fa-

vorables. Se recomienda comenzar con los valores medios de ambas constantes

(P e I), variando hasta obtener el ajuste deseado. Otra posibilidad es cambiar

la referencia del control. Si no es posible estabilizar la corriente, no vale la pe-

na continuar con el proceso pues posiblemente la punta se encuentra en malas

condiciones y por lo tanto se debe reemplazar y volver al paso 3.

9. Iniciar la secuencia de barrido en el computador. En lo posible no

hacer mas cambios, que sea solo dar click en el boton de comenzar, ası se

evitan vibraciones.

10. Revisar que el sistema no se encuentre ni en saturacion ni sin

senal. Los piezoelectricos que controlan el movimiento en el plano XY tambien

afectan ligeramente la altura de la punta, por lo cual es comun que cuando se

comienza el barrido el preamplificador no tenga salida o se sature, ası que a

veces es necesario cambiar la altura con el tornillo de atras. Si bien en este punto

se esperan variaciones en la corriente de tunelamiento estas deben ser pequenas

y por lo tanto cambios muy bruscos en los movimientos del piezoelectrico son

indicios de un experimento fallido.

11. Continuar con el escaneo

12. Detener el barrido

13. Devolver los tornillos a su posicion inicial. Esto evitara que se choque

la punta contra la muestra en un ensayo posterior.

Page 43: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 35

3.5. Resultados y Analisis

Cuando todo el proceso se lleva a cabo con exito se deben obtener imagenes 2D

suaves en escala de grises. Entre mas clara sea la imagen, menor es la distancia entre

punta y muestra. Es ası que un cuadro blanco indica saturacion del preamplificador y

uno negro la ausencia todal de senal. Por lo general se nota un gradiente de tonalidad

que esta relacionado con el hecho de que la muestra en realidad no queda situada

totalmente perpendicular a la punta y por esto a medida que se da el desplazamiento

en X y Y, tambien se cambia la altura con respecto a la muestra.

Figura 3.6: Imagen de una muestra de carbono pirolıtico de alto ordenamiento(HOPG). Segun el equipo corresponde a un area de 400nm × 400nm. Notese queno hay variaciones significativas dentro del cuadro salvo un tono un poco mas oscurohacia la esquina superior derecha, que indica que la muestra estaba inclinada en esadireccion.

En este punto la manera de determinar la fidelidad de una imagen esta en la

habilidad del sistema de seguir la corriente muy establemente y de tener imagenes

bastante uniformes, en las cuales es difıci percibir detalles.

Para poder comparar las imagenes con las obtenidas por otros equipos es necesa-

Page 44: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 36

Figura 3.7: Foto de una muestra de calibracion de oro. Las manchas ovaladas y surepeticio a lo largo y ancho de la muestra permiten apreciar que sı hay estructura.

rio primero llevar a cabo un procesamiento de datos que reinterpreta la informacion

obtenida durante la etapa de adquisicion y elimine el ruido y la inclinacion. Sin em-

bargo, en opinion del autor, las imagenes que ya han sido procesadas son difıcilmente

comparables entre sı, pues los resultados de un ajuste manual de parametros puede

llevar a grandes diferencias entre dos resultados que pueden provenir de la misma

imagen.

Con la nueva aplicacion para el computador los resultados de visualizacion son

completamente analogos a los que se obtenıan anteriormente.

3.6. Recomendaciones

3.6.1. Calibracion

Ya que la resolucion depende bastante del tamano de la punta, en principio no es

posible comparar dos imagenes tomadas con agujas distintas y tampoco es posible

tener una escala fija, por lo tanto es aconsejable comenzar cada sesion de experimen-

Page 45: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 37

Figura 3.8: En esta imagen es posible apreciar el encuentro de los planos diferentes deatomos que se intersectan dando lugar a la lınea oscura en la parte inferior izquierda.

tos escaneando una muestra de calibracion y comparando las imagenes obtenidas de

esta con los datos reales para estimar la resolucion lateral del microscopio.

Hay que proceder con precaucion porque si la punta se choca contra la muestra

todo el trabajo previo de caracterizacion sera en vano.

3.6.2. Repeticion de experimentos

Otra manera de verificar que sı se estan teniendo mediciones reales es repetir

varias veces (y preferiblemente en direcciones opuestas) los barridos. Si existen ca-

racterısticas que resaltan y son observadas en imagenes sucesivas (entendiendo por

esto que se hace referencia a manchas que se corren poco y cambian ligeramente de

forma de un cuadro al siguiente) se puede descartar que se trate de ruido, debido a

que este tendrıa naturaleza aleatoria.

Page 46: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 38

3.6.3. Procesamiento de imagenes

Las imagenes obtenidas necesitan modificaciones que incluyen correccion de la

inclinacion del plano, reduccion del ruido y reajuste a una escala lineal antes de

poder ser interpretadas, por esta razon no es bueno confiar o descartar los cuadros

obtenidos hasta que se hayan hecho tales ajustes.

Page 47: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 39

Figura 3.9: Imagen de muestra de oro de calibracion tomada con el microscopio detunelamiento de Uniandes. Arriba se presenta la imagen tal cual es entregada enla pantalla de la aplicacion de control y abajo luego de ser procesada con ImageJR©para generar una representacion tridimensional.

Page 48: Visualización y Modificación de Superficies con un STM

Capıtulo 3. Visualizacion de muestras con el STM de Uniandes 40

Page 49: Visualización y Modificación de Superficies con un STM

Capıtulo 4

Litografıa con STM

4.1. Tecnica sugerida

La tecnica empleada en los experimentos de fabricacion se encuentra con frecuen-

cia en la literatura [1], [? ], [6] y consiste en aplicar un voltaje de polarizacion a la

muestra mucho mas grande que el utilizado para procedimientos de visualizacion

(por lo general 10 veces o ms) por un tiempo determinado. Variando los tiempos y

amplitudes de los pulsos de voltaje debe ser posible obtener una configuracion que

permita hacer modificaciones a nanoescala de manera controlada y reproducible. Al-

gunos autores reportan la formacion de huecos individuales y otros la creacion de

patrones.

4.2. Procedimiento

1. Estudios previos de punta y muestra con otros equipos. Esto incluye

pero la visualizacion de punta y muestra en un microscopio electronico.

2. Visualizar la muestra. El proceso siempre debe comenzar observando la

muestra con el mismo equipo, ası se verifica que la punta este en optimas con-

diciones (para un buen proceso de escritura se requiere que esta sea tan aguda

como para lectura) y tambien se ve el estado anterior del material estudiado

con el proposito de buscan cambios una vez se haya realizado el experimento.

41

Page 50: Visualización y Modificación de Superficies con un STM

Capıtulo 4. Litografıa con STM 42

3. Escoger los parametros del barrido de escritura. Cuando se pare el

escaneo de visualizacion se deben escoger la velocidad del nuevo proceso, el

patron que se desea grabar y el voltaje que se quiere aplicar para el proceso de

fabricacion.

4. Ejecutar el escaneo. En un principio el microscopio estara en configuracion

para lectura y por lo tanto idealmente seguira en tunelamiento una vez se

seleccione la opcion de detenerse al final del paso 2. En el evento de saturacion

o ausencia de senal, ajustar la corriente moviendo los tornillos de aproximacion

y/o los parametros del control analogo hasta volver a llegar al punto deseado.

Idealmente los voltajes observados en el osciloscopio deberıan ser muy cercanos

a los de visualizacion, salvo en los puntos donde se desean hacer modificaciones

sobre la superficie del material, es decir que de vez en cuando se debe presentar

saturacion, seguida de condiciones normales de tunelamiento.

5. Observar la muestra con el microscopio nuevamente. La visualizacion

de la muestra debe cambiar de manera significativa en alguna parte de la

superficie si se produjo un cambio.

6. Realizar analisis con otros equipos. Si se desea visualizar el HOPG en

un microscopio electronico es necesario que las imagenes sean tomadas no de

frente a la muestra sino de lado, ya que de otro modo no sera posible detectar

cambios porque el sustrato esta conformado de muchas capas sucesivas del

mismo material.

4.3. Resultados obtenidos

Siguiendo el procedimiento indicado en la seccion anterior se hicieron varios expe-

rimentos en los que se variaron la velocidad de barrido y el voltaje aplicado, utilizando

como sustrato silicio y HOPG. Tambien se usaron los dos tipos de punta disponibles

(W de 0,5mm y Pt-Ir de 0,25mm), pero no fue posible observar diferencias entre los

resultados de usar unas agujas o las otras.

Page 51: Visualización y Modificación de Superficies con un STM

Capıtulo 4. Litografıa con STM 43

Figura 4.1: HOPG antes de prueba

4.4. Analisis y conclusiones

Los resultados de las pruebas demuestran que sı se estan presentando cambios en

la superficie del material una vez se ejecuta el experimento.

Al principio se trato de hacer patrones complejos (como el de sierra) pero estos

no se pudieron apreciar posteriormente. Por tal razon se opto por curvas mas simples

y que fueran de extremo a extremo de la ventana de escaneo. Como resultado de este

cambio en la configuracion se comenzaron a apreciar areas ensombrecidas que antes

no existıan.

Despues de realizar el mismo experimento en repetidas ocasiones y siempre ob-

tener resultados similares se concluyo que sı es posible realizar modificaciones con

un pulso de voltaje. La razn por la que no se haba podido determinar con claridad

es que se esperaban modificaciones por lo menos 10 veces menores al tamano de la

ventana y en realidad en la mayorıa de oportunidades fueron de ordenes de magnitud

comparables al tamano de esta.

El voltaje umbral para que se de el proceso de modificacion es ms alto para el

HOPG que para el silicio, es por esta razon que los cambios en la superficie del silicio

son mas bruscos.

Las modificaciones hechas son de un color mas oscuro que el resto de la muestra,

es decir que hay remocion de material.

Page 52: Visualización y Modificación de Superficies con un STM

Capıtulo 4. Litografıa con STM 44

Figura 4.2: HOPG despues de experimento de fabricacion con Vbias = 4V y v =120nm/s. Patron T.

Figura 4.3: HOPG despues de experimento de fabricacion con Vbias = 6V y v =120nm/s. Patron A.

Page 53: Visualización y Modificación de Superficies con un STM

Capıtulo 4. Litografıa con STM 45

Figura 4.4: HOPG despues de experimento de fabricacion con Vbias = 8V y v =120nm/s. Patron A.

Figura 4.5: Patron A girado. Utilizado en pruebas con silicio.

Page 54: Visualización y Modificación de Superficies con un STM

Capıtulo 4. Litografıa con STM 46

Figura 4.6: Imagenes Si antes del experimento de modificacion.

Figura 4.7: Silicio despues de experimento con Vbias = 5V y v = 200nm/s. PatronA.

Page 55: Visualización y Modificación de Superficies con un STM

Capıtulo 4. Litografıa con STM 47

Figura 4.8: Silicio despues de experimento con Vbias = 4V y v = 200nm/s. Patron S.

Figura 4.9: Silicio despues de experimento con Vbias = 5V y v = 400nm/s. Patron S

Page 56: Visualización y Modificación de Superficies con un STM

Capıtulo 4. Litografıa con STM 48

Material: Silicio HOPGVoltaje: 4V 5V

Velocidad Maxima 400nm/s 400nm/sTemperatura: 19− 24◦C 19− 24◦C

Cuadro 4.1: Parametros que aseguran modificaciones sobre la superficie escaneada.

Page 57: Visualización y Modificación de Superficies con un STM

Capıtulo 5

Trabajo futuro

Desde el punto de vista del autor es necesario seguir trabajando en caracterizar

el proceso de fabricacion y determinar con precision condiciones que permitan hacer

modificaciones de mayor resolucion que las presentadas en este proyecto. Posible-

mente la solucion se encuentre en el ajuste temporal de los pulsos mas que en los

niveles de voltaje utilizados, ya que por encima de 3V se tendrıan valores por encima

de los reportados en la literatura y por lo tanto sı deberıan producirse cambios en

la superficie del material. En ese orden de ideas, convendrıa hacer pruebas en las

que se apliquen pulsos de voltajes separados espacialmente con el fin de observar la

maxima resolucin que se tiene y a partir de ah saber si el problema es una punta

poco aguda.

Ademas de perfeccionar la tecnica de fabricacion, es necesario generar un proto-

colo para el procedimiento en el cual se tengan los valores de voltaje aplicados, el

tiempo de exposicin y los resultados que se pueden esperar.

Adicionalmente, valdrıa la pena experimentar con otros materiales, por ejemplo

el arsenuro de galio (GaAs).

Existen varias tareas por realizar que podrıan mejorar el funcionamiento y utili-

dad del microscopio de tunelamiento electronico de la Universidad de los Andes:

Control de los piezoelectricos: Serıa conveniente explorar la posibilidad

de hacer una caracterizacion del movimiento de los piezoelectricos cuando son

sometidos a los voltajes propios del barrido con el fin de establecer un mejor

control o buscar la manera de medir en tiempo real el desplazamiento de los

49

Page 58: Visualización y Modificación de Superficies con un STM

Capıtulo 5. Trabajo futuro 50

mismos para hacer retroalimentacion y ası contrarrestar la distorsion generada

en las imagenes por la histeresis de estos dispositivos.

Procesamiento de imagenes dentro del programa: Las imagenes que son

obtenidas con el microscopio deben ser procesadas para eliminar los efectos del

ruido, la inclinacion y la respuesta lineal del preamplificador. Con el proposito

de unificar el tratamiento que se le da a todas las imagenes convendrıa que

todo se hiciese dentro de la misma aplicacion y que ademas exista un registro

de esto.

Cambio del preamplificador: Idealmente el amplificador de corriente de-

berıa ser de tipo logarıtmico ya que la senal de entrada es de naturaleza ex-

ponencial y de este modo se podrıa trabajar en un rango mas amplio y las

imagenes serıan mas faciles de interpretar sin necesidad de procesamiento pos-

terior.

Page 59: Visualización y Modificación de Superficies con un STM

Apendice A

Codigo fuente programa

El nuevo sistema de control de barrido y visualizacion del microscopio de tune-

lamiento fue escrito en C sharp utilizando Visual Studio 2008 y el API de National

Instruments, Measurement Studio.

El programa esta dividido en cuatro clases: ventana principal (Main.cs), venta-

na de escaneo (Scan.cs), ventana de visualizacion (ViewImages.cs) y configuracion

(Settings.cs). Se incluye aca el codigo funcional del programa, pero no la parte re-

lacionada con la interfaz grafica, pero en los archivos del proyecto queda una copia

completa con la cual es posible recompilar toda la aplicacion.

A.1. Main.cs

us ing Nat iona l Instruments . Ana lys i s ;us ing Nat iona l Instruments . Ana lys i s . Conversion ;us ing Nat iona l Instruments . Ana lys i s . Dsp ;us ing Nat iona l Instruments . Ana lys i s . Dsp . F i l t e r s ;us ing Nat iona l Instruments . Ana lys i s . Math ;us ing Nat iona l Instruments . Ana lys i s . Monitoring ;us ing Nat iona l Instruments . Ana lys i s . S igna lGenerat ion ;us ing Nat iona l Instruments . Ana lys i s . SpectralMeasurements ;us ing Nat iona l Instruments ;us ing Nat iona l Instruments . NetworkVariable ;us ing Nat iona l Instruments . NetworkVariable . WindowsForms ;us ing Nat iona l Instruments . UI ;

51

Page 60: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 52

us ing Nat iona l Instruments . UI . WindowsForms ;us ing System ;us ing System . C o l l e c t i o n s . Generic ;us ing System . ComponentModel ;us ing System . Data ;us ing System . Diagnos t i c s ;us ing System . Drawing ;us ing System . IO ;us ing System . Text ;us ing System . Windows . Forms ;

namespace mic2005{

pub l i c p a r t i a l c l a s s Main : Form{

pub l i c Main ( ){

In i t i a l i z eComponent ( ) ;i f ( ! check I fCon f i gured ( ) )

scanButton . Enabled = f a l s e ;}

p r i v a t e void v i ewFi l e sBut ton Cl i ck ( ob j e c t sender , EventArgs e ){

// t h i s . Hide ( ) ;ViewImages viewImages = new ViewImages ( ) ;viewImages . Owner = t h i s ;viewImages . Show ( ) ;

}

p r i v a t e void scanButton Cl ick ( ob j e c t sender , EventArgs e ){

// t h i s . Hide ( ) ;Scan scan = new Scan ( ) ;scan . Owner = t h i s ;scan . Show ( ) ;

}

Page 61: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 53

p r i v a t e void s e t t i n g s B u t t o n C l i c k ( ob j e c t sender , EventArgs e ){

// t h i s . Hide ( ) ;S e t t i n g s s e t t i n g s = new S e t t i n g s ( t h i s ) ;s e t t i n g s . Owner = t h i s ;s e t t i n g s . Show ( ) ;

}

p r i v a t e void he lpButton Cl ick ( ob j e c t sender , EventArgs e ){

// t h i s . Hide ( ) ;Process pdfReader = new Process ( ) ;pdfReader . S t a r t I n f o . FileName = ”AcroRd32 . exe ” ;// pdfReader . S t a r t I n f o . Arguments = ”C:\\Users \\Mario\\

Desktop \\ progressRepor t . pd f ” ;pdfReader . S t a r t I n f o . Arguments = ” progressReport . pdf ” ;// pdfReader . S t a r t ( ) ;

}

p r i v a t e bool check I fCon f i gured ( ) {t ry {

Fi leStream f i l e = new Fi leStream (” s e t t i n g s . txt ” ,FileMode . Open , F i l eAcce s s . Read ) ;

StreamReader s r = new StreamReader ( f i l e ) ;s t r i n g s = s r . ReadToEnd ( ) ;s r . Close ( ) ;f i l e . Close ( ) ;i f ( s . Contains (” S e t t i n g s : ok ”) )

re turn true ;e l s e{

re turn f a l s e ;}

}catch ( Exception ex ) {

re turn f a l s e ;}

}pub l i c void changeScanButtonStatus ( bool newValue )

Page 62: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 54

{scanButton . Enabled = newValue ;

}

p r i v a t e void Main Load ( ob j e c t sender , EventArgs e ){

}p r i v a t e void Main FormClosing ( ob j e c t sender ,

FormClosingEventArgs e ){

i f ( System . Windows . Forms . Dia logResu l t . Yes != MessageBox .Show( th i s ,”Do you r e a l l y want to e x i t the a p p l i c a t i o n ?” , ”Confirm

e x i t ” , System . Windows . Forms . MessageBoxButtons . YesNo) )

{Console . WriteLine (” s u c c e s s may”) ;e . Cancel = true ;

}e l s e{}

}

}}

A.2. Scan.cs

us ing System ;us ing System . C o l l e c t i o n s . Generic ;us ing System . ComponentModel ;us ing System . Data ;us ing System . Drawing ;us ing System . Drawing . Imaging ;us ing System . IO ;

Page 63: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 55

us ing System . Text ;us ing System . Windows . Forms ;us ing Nat iona l Instruments .DAQmx;us ing Nat iona l Instruments . Ana lys i s . S igna lGenerat ion ;

namespace mic2005{

pub l i c p a r t i a l c l a s s Scan : Form{

p r i v a t e bool s t a r t e d ;p r i v a t e Task inputScan ;p r i v a t e Task almightyScan ;p r i v a t e St r ing inchanne l ;p r i v a t e St r ing inputMin ;p r i v a t e St r ing inputMax ;p r i v a t e St r ing xChannel ;p r i v a t e St r ing yChannel ;p r i v a t e St r ing outputMin ;p r i v a t e St r ing outputMax ;p r i v a t e St r ing biasVoltageText ;p r i v a t e System . Windows . Forms . Timer aTimer ;p r i v a t e System . Windows . Forms . Timer bTimer ;

p r i v a t e Bitmap bitmapMay ;p r i v a t e BitmapData bitmapMayData ;p r i v a t e i n t numberOfLines ;p r i v a t e i n t numberOfColumns ;p r i v a t e double lowerXBound ;p r i v a t e double upperXBound ;p r i v a t e double lowerYBound ;p r i v a t e double upperYBound ;p r i v a t e double ga in ;p r i v a t e long maxNumberOfSamples ;p r i v a t e long numberOfSamples ;p r i v a t e i n t numberOfTicks ;p r i v a t e double [ ] readData ;

pub l i c Scan ( ){

Page 64: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 56

In i t i a l i z eComponent ( ) ;i f ( radioButton128 . Checked ){

numberOfLines = 128 ;numberOfColumns = 128 ;

}e l s e i f ( radioButton256 . Checked ){

numberOfLines = 256 ;numberOfColumns = 256 ;

}e l s e i f ( radioButton512 . Checked ){

numberOfLines = 512 ;numberOfColumns = 512 ;

}e l s e{

numberOfLines = ( i n t ) rowsNumericEdit . Value ;numberOfColumns = ( i n t ) columnsNumericEdit . Value ;

}

i n i t i a l i z e P i c t u r e ( t rue ) ;s t a r t e d = f a l s e ;

}

pub l i c s t a t i c void Se tGraysca l ePa l e t t e ( Bitmap image ){

// check p i x e l formati f ( image . PixelFormat != PixelFormat . Format8bppIndexed )

throw new ArgumentException ( ) ;

// ge t p a l e t t eColo rPa l e t t e cp = image . Pa l e t t e ;// i n i t p a l e t t ef o r ( i n t i = 0 ; i < 256 ; i++){

cp . Ent r i e s [ i ] = Color . FromArgb( i , i , i ) ;}

Page 65: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 57

// s e t p a l e t t e backimage . Pa l e t t e = cp ;

}p r i v a t e void s ta r tStopButton Cl i ck ( ob j e c t sender , EventArgs e ){

i f ( s t a r t e d == f a l s e ){

StartScan ( ) ;s t a r t e d = true ;

}e l s e{

StopScan ( ) ;s t a r t e d = f a l s e ;

}}p r i v a t e void StartScan ( ) {

//updateImage () ;Fi leStream f i l e = new Fi leStream (” s e t t i n g s . txt ” , FileMode .

Open) ;// crea t e reader & open f i l eStreamReader t r = new StreamReader ( f i l e ) ;//Here I ’m load ing the con f i g u r a t i on va l u e s f o r the daqmx

from the s e t t i n g s f i l e c rea t ed in s e t t i n g st r . ReadLine ( ) ;t r . ReadLine ( ) ;inchanne l = t r . ReadLine ( ) ;t r . ReadLine ( ) ;inputMin = t r . ReadLine ( ) ;t r . ReadLine ( ) ;inputMax = t r . ReadLine ( ) ;t r . ReadLine ( ) ;xChannel = t r . ReadLine ( ) ;t r . ReadLine ( ) ;t r . ReadLine ( ) ;t r . ReadLine ( ) ;t r . ReadLine ( ) ;t r . ReadLine ( ) ;yChannel = t r . ReadLine ( ) ;

Page 66: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 58

t r . ReadLine ( ) ;b iasVoltageText = t r . ReadLine ( ) ;t r . ReadLine ( ) ;outputMin = t r . ReadLine ( ) ;t r . ReadLine ( ) ;outputMax = t r . ReadLine ( ) ;t r . Close ( ) ;f i l e . Close ( ) ;Console . WriteLine (” x channel i s : ” + xChannel ) ;Console . WriteLine (” the b ia s vo l tage channel i s : ” +

biasVoltageText ) ;Console . WriteLine (” y channel i s : ” + yChannel ) ;i n t bound = numberOfLines ∗ numberOfColumns ;readData = new double [ bound ] ;f o r ( i n t i =0; i<bound ; i++){

readData [ i ]=0;}// s e t the gain accord ing to what I observed in the o ther

a p p l i c a t i o ngain = ( double ) 20 / 400 ;Console . WriteLine (” gain i s : ” + gain ) ;// s e t lower bounds based on the o f f s e tlowerXBound = ( gain ∗ xOffsetNumericEdit . Value ) − 10 ;Console . WriteLine (” lower x bound i s : ” + lowerXBound ) ;lowerYBound = ( gain ∗ yOffsetNumericEdit . Value ) − 10 ;Console . WriteLine (” lower y bound i s : ” + lowerYBound ) ;// s e t upper bounds based on the scan s i z eConsole . WriteLine (” width i s : ” + widthNumericEdit . Value ) ;upperXBound = ( gain ∗ widthNumericEdit . Value ) − 10 ;Console . WriteLine (” upper x bound i s : ” + upperXBound ) ;upperYBound = ( gain ∗ heightNumericEdit . Value ) − 10 ;Console . WriteLine (” upper y bound i s : ” + upperYBound ) ;// I do the f o l l ow i n g so t ha t my s i g n a l s f i t p e r f e c t l y the

number o f samples .maxNumberOfSamples = 262144;Console . WriteLine (” the maximum number o f samples i s : ” +

maxNumberOfSamples ) ;long s t ep s = maxNumberOfSamples / numberOfLines ;

Page 67: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 59

Console . WriteLine (” the maximum number o f s t ep s i s : ” +s t ep s ) ;

numberOfSamples = s t ep s ∗ numberOfLines ;Console . WriteLine (” the number o f samples i s : ” +

numberOfSamples ) ;readData = new double [ numberOfLines ∗ numberOfLines ] ;// crea t e the t a s k salmightyScan = new Task (” outputTask ”) ;inputScan = new Task (” scan ”) ;// con f i gu r e the t a s k s accord ing to the p r e v i o u s l y s e l e c t e d

s e t t i n g s// input channel ( z )inputScan . AIChannels . CreateVoltageChannel ( inchannel , ”Z” ,

AITerminalConf igurat ion . Rse ,Convert . ToDouble ( inputMin ) , Convert . ToDouble ( inputMax ) ,

AIVoltageUnits . Volts ) ;// almightyScan . AIChannels . CreateVoltageChannel ( inchannel , ”

Z” , AITerminalConfigurat ion . Rse ,// Convert . ToDouble ( inputMin ) , Convert . ToDouble ( inputMax

) , AIVoltageUnits . Vo l t s ) ;almightyScan . AOChannels . CreateVoltageChannel ( xChannel , ”X” ,

Convert . ToDouble ( outputMin ) ,Convert . ToDouble ( outputMax ) , AOVoltageUnits . Volts ) ;

almightyScan . AOChannels . CreateVoltageChannel ( yChannel , ”Y” ,Convert . ToDouble ( outputMin ) ,Convert . ToDouble ( outputMax ) , AOVoltageUnits . Volts ) ;

i f ( fabr i cat ionRadioButton . Checked ){

almightyScan . AOChannels . CreateVoltageChannel (biasVoltageText , ”BV” , Convert . ToDouble ( outputMin ) ,Convert . ToDouble ( outputMax ) , AOVoltageUnits . Volts ) ;

}// s e t up the t iming// inputScan . Timing . ConfigureSampleClock (” s i g n a l source ” ,

rateSamplesPerSecond , act iveEdge , sampleMode ,samplesPerChannel ) ;

inputScan . Timing . ConfigureSampleClock (”” , numberOfColumns∗f requencyNumericEdit . Value , SampleClockActiveEdge . Ris ing,

Page 68: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 60

SampleQuantityMode . ContinuousSamples , numberOfLines∗numberOfColumns ) ;

almightyScan . Timing . ConfigureSampleClock (”” , s t ep s ∗f requencyNumericEdit . Value , SampleClockActiveEdge . Ris ing,SampleQuantityMode . FiniteSamples , ( i n t ) numberOfSamples

) ;// t r i g g e r c on f i g u r a t i on . I have dec ided not to use

t r i g g e r s − at l e a s t f o r now .inputScan . Tr igge r s . S ta r tTr i gge r . ConfigureNone ( ) ;almightyScan . Tr igge r s . S ta r tTr i gge r . ConfigureNone ( ) ;// Write data to the output channelAnalogMultiChannelWriter channelWriter = new

AnalogMultiChannelWriter ( almightyScan . Stream ) ;// fgen = new Signa lGenerator ( sampleRateNumericEdit . Value ,

Convert . ToInt32 ( numberOfSamplesNumericEdit . Value ) ,// new S ineS i gna l ( frequencyNumericEdit . Value ,

ampli tudeNumericEdit . Value ) ) ;AnalogSingleChannelReader zReader = new

AnalogSingleChannelReader ( inputScan . Stream ) ;// Ver i fy the input t a s kinputScan . Control ( TaskAction . Ver i fy ) ;// I don ’ t even know what t h i s l i n e does , I ’m j u s t

de spera t e . Ac tua l l y i t says we are w i l l i n g to wai t f o ras long as i t t a k e s . . .

// inputScan . Stream . Timeout = −1;// Ver i fy the output t a s kalmightyScan . Control ( TaskAction . Ver i fy ) ;i f ( v i sua l i za t i onRad ioButton . Checked ){

channelWriter . WriteMultiSample ( f a l s e ,mayRegularScan ( lowerXBound , upperXBound ,

lowerYBound , upperYBound , numberOfSamples ,numberOfLines ) ) ;

}e l s e{

// sawtooth pa t t e rni f ( sawtoothRadioButton . Checked )

Page 69: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 61

{channelWriter . WriteMultiSample ( f a l s e ,

pa t t e rnFabr i ca t i on ( lowerXBound , upperXBound ,lowerYBound , upperYBound , numberOfSamples ,numberOfLines ) ) ;

}// t r i a n g l e pa t t e rn

e l s e i f ( t r iang leRadioButton . Checked ){

}// custom rou t inee l s e i f ( customFabRadioButton . Checked ){

channelWriter . WriteMultiSample ( f a l s e ,mayWrites ( lowerXBound , upperXBound ,

lowerYBound , upperYBound , numberOfSamples ,numberOfLines , numberOfColumns ) ) ;

}e l s e i f ( oRadioButton . Checked ){

channelWriter . WriteMultiSample ( f a l s e ,oPatte rnFabr i cat ion ( lowerXBound , upperXBound ,

lowerYBound , upperYBound , numberOfSamples ,numberOfLines ) ) ;

}e l s e i f ( mRadioButton . Checked ){

// channelWriter . WriteMultiSample ( f a l s e ,// oPat t e rnFabr i ca t ion ( lowerXBound , upperXBound ,

lowerYBound , upperYBound , numberOfSamples ,numberOfLines ) ) ;

}e l s e i f ( uRadioButton . Checked ){

channelWriter . WriteMultiSample ( f a l s e ,uPatternFabr icat ion ( lowerXBound , upperXBound ,

lowerYBound , upperYBound , numberOfSamples ,

Page 70: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 62

numberOfLines ) ) ;}e l s e i f ( aRadioButton . Checked ){

channelWriter . WriteMultiSample ( f a l s e ,aPatte rnFabr i cat ion ( lowerXBound , upperXBound ,

lowerYBound , upperYBound , numberOfSamples ,numberOfLines ) ) ;

}e l s e{

channelWriter . WriteMultiSample ( f a l s e ,cPat te rnFabr i ca t i on ( lowerXBound , upperXBound ,

lowerYBound , upperYBound , numberOfSamples ,numberOfLines ) ) ;

}

}// zReader .

almightyScan . Sta r t ( ) ;inputScan . Sta r t ( ) ;// readData = zReader . ReadMultiSample ( bound ) ;// t imer f o r gu i updat ing purposesnumberOfTicks = 0 ;aTimer . S ta r t ( ) ;s tartStopButton . Text = ”Stop Scan ” ;

}p r i v a t e void StopScan ( ) {

// r e l e a s e t a s k re source s a f t e r i t has been executed// inputScan . Stop () ;inputScan . Dispose ( ) ;almightyScan . Stop ( ) ;almightyScan . Dispose ( ) ;aTimer . Stop ( ) ;// change but ton t e x t to the i n i t i a l s t a t estartStopButton . Text = ” Star t Scan ” ;

}

Page 71: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 63

p r i v a t e void Scan FormClosing ( ob j e c t sender ,FormClosingEventArgs e )

{i f ( System . Windows . Forms . Dia logResu l t . Yes != MessageBox .

Show( th i s ,”Do you want to qu i t the scan mode?” , ”Confirm e x i t ” ,

System . Windows . Forms . MessageBoxButtons . YesNo) ){

Console . WriteLine (” s u c c e s s may”) ;e . Cancel = true ;

}e l s e{

//StopScan () ;// t h i s . Close ( ) ; vgc// t h i s . Dispose ( ) ;

}}pub l i c void i n i t i a l i z e P i c t u r e ( bool b lack ) {

bitmapMay = new Bitmap (512 , 512 , PixelFormat .Format8bppIndexed ) ;

Se tGraysca l ePa l e t t e ( bitmapMay ) ;bitmapMayData = bitmapMay . LockBits (new Rectangle (0 , 0 ,

bitmapMay . Width , bitmapMay . Height ) , System . Drawing .Imaging . ImageLockMode . ReadWrite ,

System . Drawing . Imaging . PixelFormat .Format8bppIndexed ) ;

unsa fe {i n t p i x e l S i z e = 1 ;f o r ( i n t y = 0 ; y < bitmapMayData . Height ; y++){

byte∗ row = ( byte ∗) bitmapMayData . Scan0 + ( y ∗bitmapMayData . S t r i d e ) ;

f o r ( i n t x = 0 ; x < bitmapMayData . Width ; x++){

i f ( b lack ){

row [ x ∗ p i x e l S i z e ] = Convert . ToByte (160) ;}e l s e

Page 72: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 64

{//row [ x ∗ p i x e l S i z e ] = Convert . ToByte (

RandomClass . Next (0 , 255) ) ;row [ x ∗ p i x e l S i z e ] = Convert . ToByte (255) ;

}}

}}bitmapMay . UnlockBits ( bitmapMayData ) ;pictureMay . Image = bitmapMay ;

}

pub l i c void updateImage ( ) {unsa fe {

// v i s u a l i z a t i o nBitmap bitmapMay = new Bitmap (512 , 512 , PixelFormat .

Format8bppIndexed ) ;Se tGraysca l ePa l e t t e ( bitmapMay ) ;BitmapData bitmapMayData = bitmapMay . LockBits (new

Rectangle (0 , 0 , bitmapMay . Width , bitmapMay . Height ) ,System . Drawing . Imaging . ImageLockMode . ReadWrite ,System . Drawing . Imaging . PixelFormat .

Format8bppIndexed ) ;i n t p i x e l S i z e = 1 ;Random RandomClass = new Random( ) ;f o r ( i n t y = 0 ; y < bitmapMayData . Height ; y++){

byte∗ row = ( byte ∗) bitmapMayData . Scan0 + ( y ∗bitmapMayData . S t r i d e ) ;

f o r ( i n t x = 0 ; x < bitmapMayData . Width ; x++){row [ x ∗ p i x e l S i z e ] = Convert . ToByte (100) ;//row [ x ∗ p i x e l S i z e ] = Convert . ToByte (

RandomClass . Next (0 , 255) ) ;}

}bitmapMay . UnlockBits ( bitmapMayData ) ;pictureMay . Image = bitmapMay ;

}}

Page 73: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 65

pub l i c void updateGraph ( Object source , EventArgs e ) {pictureMay . Image = bitmapMay ;

}pub l i c void updateTimeLeft ( Object source , EventArgs e ) {

i n t aux = ( i n t ) ( ( numberOfLines / frequencyNumericEdit . Value) − numberOfTicks ) /60 ;

i f ( aux > 0) {timeLeftTextBox . Text = ””

+ ( i n t ) ( ( numberOfLines / frequencyNumericEdit . Value) − numberOfTicks ) / 60 + ” minutes , ”

+ ( i n t ) ( ( numberOfLines / frequencyNumericEdit . Value) − numberOfTicks ) % 60 + ” seconds ” ;

}e l s e {

timeLeftTextBox . Text = ””+ ( i n t ) ( ( numberOfLines / frequencyNumericEdit . Value

) − numberOfTicks ) % 60 + ” seconds ” ;}i f ( s tartStopButton . Text . Equals (” Star t Scan ”) ) {

numberOfTicks = 0 ;}e l s e {

numberOfTicks = numberOfTicks + 1 ;}

}

pub l i c void updatePicture ( Object source , EventArgs eventArgs ) {

}/// <summary>////// </summary>/// <param name=”lowerBound”></param>

/// <param name=”upperBound”></param>

/// <param name=”numberOfSamples”></param>

/// <re turns ></returns>

Page 74: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 66

pub l i c double [ ] maySawtooth ( double lowerBound , doubleupperBound , long numberOfSamples ) {double [ ] generatedSawtooth = new double [ numberOfSamples ] ;double d e l t a = ( upperBound − lowerBound ) / numberOfSamples ;f o r ( i n t i = 0 ; i < numberOfSamples ; i++){

generatedSawtooth [ i ] = lowerBound + ( i ∗ d e l t a ) ;}re turn generatedSawtooth ;

}

pub l i c double [ ] mayTriangle ( double lowerBound , doubleupperBound , long numberOfSamples ) {double [ ] g enera tedTr iang l e = new double [ numberOfSamples ] ;double d e l t a = ( upperBound − lowerBound ) / ( numberOfSamples

/2) ;i n t r o o f =0;i f ( numberOfSamples % 2 == 0) {

// roo f = ( numberOfSamples / 2) − 1 ;}e l s e {

// roo f = ( numberOfSamples / 2) ;}f o r ( i n t i = 0 ; i < r o o f ; i++){

generatedTr iang l e [ i ] = lowerBound + ( i ∗ d e l t a ) ;}f o r ( i n t i = r o o f ; i > 0 ; i−−){

// genera tedTr iang l e [ i ] =}re turn generatedTr iang l e ;

}

/// <summary>/// Creates the s i g n a l s f o r the x and y ax i s and re turns them

in a doub le [ ] [ ] , i . e . ready to use wi th/// the measurement s t ud i o api/// </summary>/// <param name=”lowerXBound”></param>

/// <param name=”upperXBound”></param>

/// <param name=”lowerYBound”></param>

Page 75: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 67

/// <param name=”upperYBound”></param>

/// <param name=”numberOfSamples”></param>

/// <param name=”numberOfLines”></param>

/// <re turns ></returns>

pub l i c double [ , ] mayRegularScan ( double lowerXBound , doubleupperXBound , double lowerYBound ,double upperYBound , long numberOfSamples , i n t numberOfLines

) {double [ , ] generatedWaves = new double [ 2 , numberOfSamples ] ;long s t ep s = numberOfSamples / numberOfLines ;Console . WriteLine (”may the number o f s t ep s i s : ” + s t ep s ) ;double de ltaLadder = ( upperYBound − lowerYBound ) /

numberOfLines ;Console . WriteLine (” the d e l t a f o r the ladder i s : ” +

deltaLadder ) ;double [ ] aux = maySawtooth ( lowerXBound , upperXBound , s t ep s )

;// doub le de l taSawtoo th = ( upperBound − lowerBound ) /

numberOfSamples ;//Console . WriteLine (” the d e l t a f o r the sawtooth i s : ” +

de l taSawtoo th ) ;i n t currentStep = 0 ;double currentLadderValue=lowerYBound ;f o r ( i n t i = 0 ; i < numberOfSamples ; i++){

//Console . WriteLine (” current l adder va lue : ” +currentLadderValue ) ;

// genera te the sawtooth wave// generatedWaves [ 0 , i ] = lowerBound + ( i ∗ de l taSawtoo th

) ;generatedWaves [ 0 , i ] = aux [ currentStep ] ;// genera te the l adder wavegeneratedWaves [ 1 , i ] = currentLadderValue ;i f ( cur rentStep==steps −1){

currentStep =0;currentLadderValue = currentLadderValue +

deltaLadder ;

i f ( currentLadderValue >= upperYBound ){

Page 76: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 68

currentLadderValue = upperYBound ;}

}e l s e {

currentStep = currentStep + 1 ;}

}re turn generatedWaves ;

}

pub l i c double [ , ] mayWrites ( double lowerXBound , doubleupperXBound , double lowerYBound ,double upperYBound , long numberOfSamples , i n t numberOfLines

, i n t numberOfColumns ){

double [ , ] generatedWaves = new double [ 3 , numberOfSamples ] ;long s t ep s = numberOfSamples / numberOfLines ;Console . WriteLine (”may the number o f s t ep s i s : ” + s t ep s ) ;double de ltaLadder = ( upperYBound − lowerYBound ) /

numberOfLines ;Console . WriteLine (” the d e l t a f o r the ladder i s : ” +

deltaLadder ) ;double [ ] aux = maySawtooth ( lowerXBound , upperXBound , s t ep s )

;i n t currentStep = 0 ;double currentLadderValue = lowerYBound ;Bitmap loadedPic ture = new Bitmap (512 ,512) ;double b i a s = biasNumericEdit . Value ;// t r y//{

OpenFileDialog open = new OpenFileDialog ( ) ;open . F i l t e r = ”Image F i l e s ( ∗ . jpg ; ∗ . jpeg ; ∗ . g i f ; ∗ .bmp)

| ∗ . jpg ; ∗ . jpeg ; ∗ . g i f ; ∗ .bmp” ;i f ( open . ShowDialog ( ) == Dia logResu l t .OK){

l oadedPic ture = new Bitmap ( open . FileName ) ;pictureMay . Image = loadedPic ture ;

Page 77: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 69

pictureMay . SizeMode = System . Windows . Forms .PictureBoxSizeMode . AutoSize ;

Console . Write (” loaded image o . k . ” ) ;}

f o r ( i n t i = 0 ; i < numberOfSamples ; i++){

generatedWaves [ 0 , i ] = aux [ currentStep ] ;// genera te the l adder wavegeneratedWaves [ 1 , i ] = currentLadderValue ;i f ( cur rentStep == step s − 1){

currentStep = 0 ;currentLadderValue = currentLadderValue +

deltaLadder ;i f ( currentLadderValue >= upperYBound ){

currentLadderValue = upperYBound ;}

}e l s e{

currentStep = currentStep + 1 ;}i n t e l ements InLine = ( i n t ) numberOfSamples /

numberOfLines ;i n t l i n e = i % elements InLine ;

i n t elementsInColumn = ( i n t ) e l ements InLine /numberOfColumns ;

//Console . WriteLine (” Elements in column : ” +elementsInColumn ) ;

i n t column = i / e lements InLine ;//Console . WriteLine (” l i n e : ” + l i n e ) ;//Console . WriteLine (” column : ” + column ) ;i f ( l oadedPic ture . GetPixel ( l i n e , column ) .B ==

Convert . ToByte (255) && loadedPic ture . GetPixel (l i n e , column ) .R == Convert . ToByte (255) &&loadedPic ture . GetPixel ( l i n e , column ) .G ==

Page 78: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 70

Convert . ToByte (255) ){

generatedWaves [ 2 , i ] = 0 ;//Console . WriteLine (” l i n e : ” +l i n e + ”column : ”

+ column ) ;//Console . WriteLine (” co l o r : whi te ”) ;

}e l s e{

generatedWaves [ 2 , i ] = b ia s ;}

}re turn generatedWaves ;

//}// catch ( Except ion )//{

// throw new App l i ca t ionExcep t ion (”Houston , we ’ ve go t aproblem ”) ;

//}}

pub l i c double [ , ] pa t t e rnFabr i ca t i on ( double lowerXBound , doubleupperXBound , double lowerYBound ,double upperYBound , long numberOfSamples , i n t numberOfLines

){

double [ , ] generatedWaves = new double [ 3 , numberOfSamples ] ;long s t ep s = numberOfSamples / numberOfLines ;double [ ] f a s t S i g n a l = maySawtooth ( lowerXBound , upperXBound ,

s t ep s ) ;double [ ] s l owS igna l = maySawtooth ( lowerYBound , upperYBound ,

numberOfSamples ) ;double aux = biasNumericEdit . Value ;i n t currentStep = 0 ;f o r ( i n t i = 0 ; i < numberOfSamples ; i++){

Page 79: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 71

generatedWaves [ 0 , i ] = f a s t S i g n a l [ currentStep ] ;generatedWaves [ 1 , i ] = s l owS igna l [ i ] ;generatedWaves [ 2 , i ] = aux ;i f ( cur rentStep == step s − 1){

currentStep = 0 ;}e l s e{

currentStep = currentStep + 1 ;}

}re turn generatedWaves ;

}

pub l i c double [ , ] oPatte rnFabr i cat ion ( double lowerXBound , doubleupperXBound , double lowerYBound ,double upperYBound , long numberOfSamples , i n t numberOfLines

){

double [ , ] generatedWaves = new double [ 3 , numberOfSamples ] ;double aux = biasNumericEdit . Value ;i n t l ine InSample s = Convert . ToInt32 ( numberOfSamples / 4) ;double d e l t a= ( upperXBound−lowerXBound ) / l ine InSample s ;Console . WriteLine (” d e l t a f o r o f a b r i c a t i o n : ” + d e l t a ) ;f o r ( i n t i = 0 ; i < numberOfSamples ; i++){

//1i f ( i / l ine InSample s == 0) {

//xi f ( i % l ine InSample s == 0) {

generatedWaves [ 0 , i ] = lowerXBound ;}e l s e {

generatedWaves [ 0 , i ] = generatedWaves [ 0 , i−1]+d e l t a ;

Console . WriteLine (” generated : ”+ generatedWaves[ 0 , i ] ) ;

i f ( generatedWaves [ 0 , i ] > 10)

Page 80: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 72

{generatedWaves [ 0 , i ] = 10 ;

}}//ygeneratedWaves [ 1 , i ] = lowerYBound ;

}//2e l s e i f ( i / l ine InSample s == 1) {

//xgeneratedWaves [ 0 , i ] = generatedWaves [ 0 , i −1] ;//yi f ( i % l ine InSample s == 0) {

generatedWaves [ 1 , i ] = lowerYBound ;}e l s e {

generatedWaves [ 1 , i ] = generatedWaves [ 1 , i−1]+d e l t a ;

i f ( generatedWaves [ 1 , i ] > 10){

generatedWaves [ 1 , i ] = 10 ;}

}}//3e l s e i f ( i / l ine InSample s==2){

//xi f ( i % l ine InSample s == 0){

generatedWaves [ 0 , i ] = generatedWaves [ 0 , i −1 ] ;

}e l s e {

generatedWaves [ 0 , i ] = generatedWaves [ 0 , i − 1 ]− d e l t a ;

i f ( generatedWaves [ 0 , i ] < −10){

generatedWaves [ 0 , i ] = −10;}

Page 81: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 73

}//ygeneratedWaves [ 1 , i ] = generatedWaves [ 1 , i −1] ;

}//4e l s e {

//xgeneratedWaves [ 0 , i ] = generatedWaves [ 0 , i − 1 ] ;//yi f ( i % l ine InSample s == 0) {

generatedWaves [ 1 , i ] = generatedWaves [ 1 , i −1] ;}e l s e {

generatedWaves [ 1 , i ] = generatedWaves [ 1 , i − 1 ]− d e l t a ;

i f ( generatedWaves [ 1 , i ] < −10){

generatedWaves [ 1 , i ] = −10;}

}}// b i a sgeneratedWaves [ 2 , i ] = aux ;

}re turn generatedWaves ;

}

pub l i c double [ , ] uPatternFabr icat ion ( double lowerXBound , doubleupperXBound , double lowerYBound ,double upperYBound , long numberOfSamples , i n t numberOfLines

){

double [ , ] generatedWaves = new double [ 3 , numberOfSamples ] ;double aux = biasNumericEdit . Value ;i n t l ine InSample s = Convert . ToInt32 ( numberOfSamples / 3) ;double d e l t a = ( upperXBound − lowerXBound ) / l ine InSample s ;f o r ( i n t i = 0 ; i < numberOfSamples ; i++){

Page 82: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 74

//1i f ( i / l ine InSample s == 0) {

//xgeneratedWaves [ 0 , i ] = lowerXBound ;//yi f ( i % l ine InSample s == 0) {

generatedWaves [ 1 , i ] = lowerYBound ;}e l s e {

generatedWaves [ 1 , i ] = generatedWaves [ 1 , i−1]+d e l t a ;

i f ( generatedWaves [ 1 , i ] > 10){

generatedWaves [ 1 , i ] = 10 ;}

}}//2e l s e i f ( i / l ine InSample s == 1){

//xi f ( i % l ine InSample s == 0){

generatedWaves [ 0 , i ] = lowerXBound ;}e l s e{

generatedWaves [ 0 , i ] = generatedWaves [ 0 , i − 1 ]+ d e l t a ;

//Console . WriteLine (” generated : ” +generatedWaves [ 0 , i ] ) ;

i f ( generatedWaves [ 0 , i ] > 10){

generatedWaves [ 0 , i ] = 10 ;}

}//ygeneratedWaves [ 1 , i ] = generatedWaves [ 1 , i −1] ;

}

Page 83: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 75

//3e l s e {

//xgeneratedWaves [ 0 , i ] = generatedWaves [ 0 , i −1] ;//yi f ( i % l ine InSample s == 0){

generatedWaves [ 1 , i ] = generatedWaves [ 1 , i −1] ;}e l s e{

generatedWaves [ 1 , i ] = generatedWaves [ 1 , i − 1 ]− d e l t a ;

i f ( generatedWaves [ 1 , i ] < −10){

generatedWaves [ 1 , i ] = −10;}

}}// b i a sgeneratedWaves [ 2 , i ] = aux ;

}re turn generatedWaves ;

}

pub l i c double [ , ] cPat te rnFabr i ca t i on ( double lowerXBound , doubleupperXBound , double lowerYBound ,double upperYBound , long numberOfSamples , i n t numberOfLines

){

double [ , ] generatedWaves = new double [ 3 , numberOfSamples ] ;double aux = biasNumericEdit . Value ;i n t l ine InSample s = Convert . ToInt32 ( numberOfSamples / 3) ;double d e l t a = ( upperXBound − lowerXBound ) / l ine InSample s ;//xgeneratedWaves [ 0 , 0 ] = upperXBound ;//ygeneratedWaves [ 1 , 0 ] = lowerYBound ;f o r ( i n t i = 0 ; i < numberOfSamples ; i++)

Page 84: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 76

{//1i f ( i / l ine InSample s == 0){

//xgeneratedWaves [ 0 , i ] = generatedWaves [ 0 , i − 1]−

d e l t a ;i f ( generatedWaves [ 0 , i ]<−10){

generatedWaves [ 0 , i ]=−10;}//ygeneratedWaves [ 1 , i ] = generatedWaves [ 1 , i − 1 ] ;

}//2e l s e i f ( i / l ine InSample s == 1){

//xgeneratedWaves [ 0 , i ] = generatedWaves [ 0 , i − 1 ] ;//ygeneratedWaves [ 1 , i ] = generatedWaves [ 1 , i − 1 ] +

d e l t a ;i f ( generatedWaves [ 0 , i ] > 10){

generatedWaves [ 0 , i ] = 10 ;}

}//3e l s e{

//xgeneratedWaves [ 0 , i ] = generatedWaves [ 0 , i − 1 ] +

d e l t a ;i f ( generatedWaves [ 0 , i ] > 10){

generatedWaves [ 0 , i ] = 10 ;}//ygeneratedWaves [ 1 , i ] = generatedWaves [ 1 , i − 1 ] ;

}

Page 85: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 77

// b i a sgeneratedWaves [ 2 , i ] = aux ;

}re turn generatedWaves ;

}

pub l i c double [ , ] aPatte rnFabr i cat ion ( double lowerXBound , doubleupperXBound , double lowerYBound ,double upperYBound , long numberOfSamples , i n t numberOfLines

) {double [ , ] generatedWaves = new double [ 3 , numberOfSamples ] ;double aux = biasNumericEdit . Value ;i n t l ine InSample s = Convert . ToInt32 ( numberOfSamples / 2) ;double deltaY = ( upperXBound − lowerXBound ) / l ine InSample s

;double deltaX = ( upperXBound − lowerXBound ) /

numberOfSamples ;generatedWaves [ 0 , 0 ] = lowerXBound ;generatedWaves [ 1 , 0 ] = lowerYBound ;f o r ( i n t i = 1 ; i < numberOfSamples ; i++){

generatedWaves [ 0 , i ] = generatedWaves [ 0 , i−1]+deltaX ;i f ( generatedWaves [ 0 , i ] > 10) {

generatedWaves [ 0 , i ] = 10 ;}//yi f ( i / l ine InSample s == 0) {

generatedWaves [ 1 , i ] = generatedWaves [ 1 , i − 1 ] +deltaY ;

i f ( generatedWaves [ 1 , i ] > 10) {generatedWaves [ 1 , i ] = 10 ;

}}e l s e {

generatedWaves [ 1 , i ] = generatedWaves [ 1 , i − 1 ] −deltaY ;

i f ( generatedWaves [ 1 , i ] < −10){

generatedWaves [ 1 , i ] = −10;}

Page 86: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 78

}// b i a sgeneratedWaves [ 2 , i ] = aux ;

}re turn generatedWaves ;

}

pub l i c double [ , ] pa t t e rnFabr i ca t i on2 ( double lowerXBound , doubleupperXBound , double lowerYBound ,double upperYBound , long numberOfSamples , i n t numberOfLines

){

double [ , ] generatedWaves = new double [ 3 , numberOfSamples ] ;long s t ep s = numberOfSamples / 4 ;double [ ] f a s t S i g n a l = maySawtooth ( lowerXBound , upperXBound ,

s t ep s ) ;double [ ] s l owS igna l = maySawtooth ( lowerYBound , upperYBound ,

numberOfSamples ) ;double aux = biasNumericEdit . Value ;i n t currentStep = 0 ;f o r ( i n t i = 0 ; i < numberOfSamples ; i++){

generatedWaves [ 0 , i ] = f a s t S i g n a l [ currentStep ] ;generatedWaves [ 1 , i ] = s l owS igna l [ i ] ;generatedWaves [ 2 , i ] = aux ;i f ( cur rentStep == step s − 1){

currentStep = 0 ;}e l s e{

currentStep = currentStep + 1 ;}

}re turn generatedWaves ;

}

pub l i c void fabricat ionTypeChanged ( Object source , EventArgs e ){

Page 87: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 79

}

pub l i c void scanTypeChanged ( Object source , EventArgs e ){

i f ( fabr i cat ionRadioButton . Checked ){

b i a s V o l t a g e l a b e l . Enabled = true ;biasNumericEdit . Enabled = true ;fabr icat ionGroupBox . Enabled = true ;

}e l s e{

b i a s V o l t a g e l a b e l . Enabled = f a l s e ;biasNumericEdit . Enabled = f a l s e ;fabr icat ionGroupBox . Enabled = f a l s e ;

}}pub l i c void reso lut ionChanged ( Object source , EventArgs e ){

i f ( radioButton128 . Checked ){

numberOfLines = 128 ;numberOfColumns = 128 ;rowsNumericEdit . Enabled = f a l s e ;columnsNumericEdit . Enabled = f a l s e ;

}e l s e i f ( radioButton256 . Checked ){

numberOfLines = 256 ;numberOfColumns = 256 ;rowsNumericEdit . Enabled = f a l s e ;columnsNumericEdit . Enabled = f a l s e ;

}e l s e i f ( radioButton512 . Checked ){

numberOfLines = 512 ;numberOfColumns = 512 ;rowsNumericEdit . Enabled = f a l s e ;columnsNumericEdit . Enabled = f a l s e ;

Page 88: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 80

}e l s e i f ( customResRadioButton . Checked ){

rowsNumericEdit . Enabled = true ;columnsNumericEdit . Enabled = true ;numberOfLines = ( i n t ) rowsNumericEdit . Value ;numberOfColumns = ( i n t ) columnsNumericEdit . Value ;

}}

p r i v a t e void rowsNumericEdit AfterChangeValue ( ob j e c t sender ,Nat iona l Instruments . UI . AfterChangeNumericValueEventArgs e )

{numberOfLines = ( i n t ) rowsNumericEdit . Value ;

}

p r i v a t e void columnsNumericEdit AfterChangeValue ( ob j e c t sender ,Nat iona l Instruments . UI . AfterChangeNumericValueEventArgs e )

{numberOfColumns = ( i n t ) columnsNumericEdit . Value ;

}

p r i v a t e void scan Window Ver i f i e r ( ob j e c t sender ,Nat iona l Instruments . UI . AfterChangeNumericValueEventArgs e )

{s t r i n g message = ”” ;bool problems = f a l s e ;i f ( widthNumericEdit . Value − xOffsetNumericEdit . Value < 0

| | widthNumericEdit . Value + xOffsetNumericEdit . Value >

400){

message = message + ” I n v a l i d X range \n ” ;problems = true ;

}i f ( heightNumericEdit . Value − yOffsetNumericEdit . Value < 0

| | heightNumericEdit . Value + yOffsetNumericEdit . Value >

400){

message = message + ” I n v a l i d Y range \n ” ;

Page 89: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 81

problems = true ;}i f ( problems ){

MessageBox . Show(”You must change some va lue s be f o r es t a r t i n g the scan :\n”+ message , ” I n v a l i d arguments ”);

s tartStopButton . Enabled = f a l s e ;}e l s e{

startStopButton . Enabled = true ;}

}

p r i v a t e void saveNowButton Click ( ob j e c t sender , EventArgs e ){

//bitmapMay . Save (DateTime .Now. ToString ( ) +”.bmp”) ;s t r i n g a u x i l i a r = DateTime .Now. ToString ( ) . Replace ( ” : ” , ” . ” )

;a u x i l i a r = a u x i l i a r . Replace (” ” , ”−”) ;a u x i l i a r = a u x i l i a r . Replace (”/” , ” ”) ;Console . WriteLine ( a u x i l i a r ) ;bitmapMay . Save ( a u x i l i a r + ” .bmp”) ;

}

p r i v a t e void patternRadioButton CheckedChanged ( ob j e c t sender ,EventArgs e )

{

}}

}

A.3. Settings.cs

us ing System ;

Page 90: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 82

us ing System . C o l l e c t i o n s . Generic ;us ing System . ComponentModel ;us ing System . Data ;us ing System . Drawing ;us ing System . IO ;us ing System . Text ;us ing System . Windows . Forms ;us ing Nat iona l Instruments .DAQmx;

namespace mic2005{

pub l i c p a r t i a l c l a s s S e t t i n g s : Form{

p r i v a t e Main ventana ;

p r i v a t e Task testTask ;

p r i v a t e St r ing inputMinValue ;p r i v a t e St r ing inputMaxValue ;p r i v a t e St r ing output1MinValue ;p r i v a t e St r ing output1MaxValue ;

pub l i c S e t t i n g s (Main mainWindow){

ventana = mainWindow ;In i t i a l i z eComponent ( ) ;//Here I ’m j u s t adding the r i g h t op t i ons to the GUI −i . e .

t e x t −, but t h i s p i e ce o f code does noth ing in the worldinChannelComboBox . Items . AddRange( DaqSystem . Local .

GetPhysicalChannels ( PhysicalChannelTypes . AI ,Phys ica lChannelAccess . External ) ) ;

i f ( inChannelComboBox . Items . Count > 0)inChannelComboBox . Se l e c t ed Index = 0 ;

XChannelComboBox . Items . AddRange( DaqSystem . Local .GetPhysicalChannels ( PhysicalChannelTypes .AO,Physica lChannelAccess . External ) ) ;

i f (XChannelComboBox . Items . Count > 0)

Page 91: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 83

XChannelComboBox . Se l e c t ed Index = 0 ;YChannelComboBox . Items . AddRange( DaqSystem . Local .

GetPhysicalChannels ( PhysicalChannelTypes .AO,Physica lChannelAccess . External ) ) ;

i f (YChannelComboBox . Items . Count > 0)YChannelComboBox . Se l e c t ed Index = 0 ;

biasVComboBox . Items . AddRange( DaqSystem . Local .GetPhysicalChannels ( PhysicalChannelTypes .AO,Physica lChannelAccess . External ) ) ;

i f ( biasVComboBox . Items . Count > 0)biasVComboBox . Se l e c t ed Index = 0 ;

}

p r i v a t e void t e s tBut ton Cl i ck ( ob j e c t sender , EventArgs e ){

t ry{

i f ( testButton . Text . Equals (” Test ”) ) {// changes the but ton t e x t from S ta r t to StoptestButton . Text= ”Stop ” ;// c r ea t e s a new ta s k f o r c on f i g u r a t i on t e s t i n g

purposestestTask = new Task (” testTask ”) ;// c r ea t e s an input channel wi th the s e t t i n g s chosen

in the GUItestTask . AIChannels . CreateVoltageChannel (

inChannelComboBox . Text , ”Z” ,AITerminalConf igurat ion . D i f f e r e n t i a l ,inputMinValEdit . Value , inputMaxValEdit . Value ,

AIVoltageUnits . Volts ) ;// c r ea t e s two output channel wi th the s e t t i n g s

chosen in the GUItestTask . AOChannels . CreateVoltageChannel (

XChannelComboBox . Text , ”X” ,outputMinValEdit . Value , outputMaxValEdit . Value ,

AOVoltageUnits . Volts ) ;testTask . AOChannels . CreateVoltageChannel (

YChannelComboBox . Text , ”Y” ,

Page 92: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 84

outputMinValEdit . Value , outputMaxValEdit . Value ,AOVoltageUnits . Volts ) ;

//now we must s e t the t iming con f i gura t i on , there ’ sanother method wi th no b u f f e r parameter

i n t b u f f e r S i z e = 1000 ;testTask . Timing . ConfigureSampleClock (”” , 500 ,

SampleClockActiveEdge . Ris ing , SampleQuantityMode. ContinuousSamples ,b u f f e r S i z e ) ;

//Release re source stestTask . Dispose ( ) ;

}e l s e {

testButton . Text = ” Test ” ;StopTask ( ) ;

}}catch ( Exception ex ){

//StopTask () ;MessageBox . Show(” There were problems during t e s t

execut ion :\n” + ex . Message ) ;}

}

p r i v a t e void doneButton Click ( ob j e c t sender , EventArgs e ){

t ry{

Fi leStream f i l e = new Fi leStream (” s e t t i n g s . txt ” ,FileMode . Create , F i l eAcce s s . Write ) ;

StreamWriter sw = new StreamWriter ( f i l e ) ;i f ( ! askForSettingsCB . Checked ){

// Write a s t r i n g to the f i l esw . Write (” s e t t i n g s : pending ”) ;sw . Write ( ” . . . prueba ”) ;

}

Page 93: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 85

e l s e{

sw . WriteLine (” S e t t i n g s : ok ”) ;sw . WriteLine (” In Channel : ” ) ;sw . WriteLine ( inChannelComboBox . Text ) ;sw . WriteLine (” Input Minimun Value : ” ) ;sw . WriteLine ( inputMinValEdit . Value ) ;sw . WriteLine (” Input Maximun Value : ” ) ;sw . WriteLine ( inputMaxValEdit . Value ) ;sw . WriteLine (”X Channel : ” ) ;sw . WriteLine (XChannelComboBox . Text ) ;sw . WriteLine (”Minimun Value x : ” ) ;sw . WriteLine ( outputMinValEdit . Value ) ;sw . WriteLine (”Maximun Value x : ” ) ;sw . WriteLine ( outputMaxValEdit . Value ) ;sw . WriteLine (”Y Channel : ”) ;sw . WriteLine (YChannelComboBox . Text ) ;sw . WriteLine (” Bias Voltage : ”) ;sw . WriteLine ( biasVComboBox . Text ) ;sw . WriteLine (”Minimun Value y : ” ) ;sw . WriteLine ( outputMinValEdit . Value ) ;sw . WriteLine (”Maximun Value y ; ” ) ;sw . WriteLine ( outputMaxValEdit . Value ) ;

}// Close StreamWritersw . Close ( ) ;// Close f i l ef i l e . Close ( ) ;ventana . changeScanButtonStatus ( t rue ) ;

}catch ( Exception ){

}t h i s . Dispose ( ) ;

}p r i v a t e void StopTask ( ){

testTask . Stop ( ) ;

Page 94: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 86

testTask . Dispose ( ) ;}

p r i v a t e void inChannelComboBox SelectedIndexChanged ( ob j e c tsender , EventArgs e )

{

}}

}

sectionViewImages.cs

us ing System ;us ing System . C o l l e c t i o n s . Generic ;us ing System . ComponentModel ;us ing System . Data ;us ing System . Drawing ;us ing System . IO ;

us ing System . Text ;us ing System . Windows . Forms ;

namespace mic2005{

pub l i c p a r t i a l c l a s s ViewImages : Form{

/∗ t h i s i s the image that i s loaded from the f i l e ∗/p r i v a t e Bitmap loadedPic ture ;/∗ I added t h i s v a r i a b l e to a l low undo operat ions , I th ink I ’ l l

have to make∗ i t some s o r t o f array in the fu tu r e ∗/

p r i v a t e Bitmap formerVers ion ;p r i v a t e Bitmap proce s s edP i c tu r e ;/∗ the name i s s e l f −exp lanatory ∗/p r i v a t e Bitmap cur r en tP i c tu r e ;

pub l i c ViewImages ( ){

Page 95: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 87

In i t i a l i z eComponent ( ) ;}

p r i v a t e void loadImageButton Cl ick ( ob j e c t sender , EventArgs e ){

t ry{

OpenFileDialog open = new OpenFileDialog ( ) ;open . F i l t e r = ”Image F i l e s ( ∗ . jpg ; ∗ . jpeg ; ∗ . g i f ; ∗ .bmp)

| ∗ . jpg ; ∗ . jpeg ; ∗ . g i f ; ∗ .bmp” ;i f ( open . ShowDialog ( ) == Dia logResu l t .OK){

l oadedPic ture = new Bitmap ( open . FileName ) ;cu r r en tP i c tu r e = ( Bitmap ) loadedPic ture . Clone ( ) ;pictureBox1 . Image = loadedPic ture ;pictureBox1 . SizeMode = System . Windows . Forms .

PictureBoxSizeMode . AutoSize ;// chooseColorButton . Enabled = true ;// d i scardCo lorsBut ton . Enabled = true ;//penButton . Enabled = true ;// eraserBut ton . Enabled = true ;

}

}catch ( Exception ){

throw new Appl i cat ionExcept ion (” Fa i l ed load ing image ”) ;}

}p r i v a t e void saveP ic ture ( ob j e c t sender , EventArgs e ){

SaveFi l eDia log d i a l o g = new SaveFi l eDia log ( ) ;// d i a l o gConsole . WriteLine (””+ d i a l o g . AutoUpgradeEnabled ) ;

}

p r i v a t e void savePictureAs ( ob j e c t sender , EventArgs e )

Page 96: Visualización y Modificación de Superficies con un STM

Apendice A. Codigo fuente programa 88

{SaveFi l eDia log d i a l o g = new SaveFi l eDia log ( ) ;

}}

}

Page 97: Visualización y Modificación de Superficies con un STM

Bibliografıa

[1] Albrecht. Nanometer-scale hole formation on graphite using a scanning tunneling

microscope. Applied Physics Letters, 55(17), 1989.

[2] Alba Graciela Avila Bernal y Ruy Sebastian Bonilla Osorio. Estudio de superficies

usando un microscopio de efecto tunel (stm). Revista Ingenierıa e Investigacion,

29(3):121–127, 2009.

[3] Rodrigo Alfonso Bernal Montoya. Fabricacion de nanoestructuras usando un

microscopio de efecto tunel: Una primera exploracion. 2007.

[4] G. Binning, H. Rohrer, C. Gerber, y E. Weibel. Surface studies by scanning

tunneling microscopy. Phys. Rev. Lett., 49(1):57–61, 1982.

[5] Ruy Sebastian Bonilla Osorio. Visualizacion y modificacion de superficies utili-

zando un microscopio de barrido de efecto tunel. 2008.

[6] Xiaodong Li Guangyi Shang Xiaohui Qiu Chen Wang y Chunli Bai. Studies

of field related effects in the fabrication process on graphite using a scanning

tunneling microscope. Journal of Applied Physics, 81(3), 1997.

[7] Robert Eisberg y Robert Resnick. Quantum physics of atoms, molecules, solids,

nuclei, and particles. John Wiley and Sons, Inc., 1985.

[8] C J Roberts, M C Davies, D E Jackson, S J B Tendler, y P M Williams. Controlled

nanometre-scale line and symbol formation on graphite in air using a scanning

tunnelling microscope. Unknown Journal, 1991.

[9] Joseph A. Stroscio y William J. Kaiser, eds. Scanning Tunneling Microscopy.

Academic Press, 1993.

89