An Integrated System for Measuring ... Flash Sources Jessica Y.A. Wong

An Integrated System for Measuring Spectra of Electronic
Flash Sources
by
Jessica Y.A. Wong
Submitted to the Department of Electrical Engineering and Computer Science
in partial fulfillment of the requirements for the degrees of
Bachelor of Science in Computer Science and Engineering
and
Master of Engineering in Electrical Engineering and Computer Science
at the
MASSACHUSETTS INSTITUTE OF TECHNOLOGY
February 2000
Copyright @2000 Jessica Y.A. Wong. All rights reserved.
The author hereby grants to M.I.T. permission to reproduce and distribute publicly
paper and electronic copies of this thesis and to grant others the right to do so.
Author........................................
.........
.......
.
Department of Electrical Engineerin and Computer IScience
February 2, 2000
C ertified by .............................
Dr. James Bales
Instructor
Thesis Supervisor
A ccepted by ............
..........
Arthur C. Smith
Chairman, Department Committee on Graduate Theses
MASSACHUSE FTS INSTITUTE
OF TECH NOLOGY
ENG
JUL 2 7 2000
LIBRARIES
An Integrated System for Measuring Spectra of Electronic Flash Sources
by
Jessica Y.A. Wong
Submitted to the Department of Electrical Engineering and Computer Science
on February 2, 2000, in partial fulfillment of the
requirements for the degrees of
Bachelor of Science in Computer Science and Engineering
and
Master of Engineering in Electrical Engineering and Computer Science
Abstract
This paper describes work done in designing a system aiding in learning about the output
of different strobe light sources. The main component of this system is a program written
in Visual Basic to control an EG&G spectral analyzer. The final product delivers to the
user accurate data regarding spectral makeup of light sources.
Thesis Supervisor: Dr. James Bales
Title: Instructor
2
Acknowledgements
Thanks to the waves for momentum, and to the lighthouses for guidance.
I would like to thank Marc for the Tech support and vacations,
Justin for graphical support and patience,
Dominic, Judy, and Darrell Wong for moral support and for everything else that has brought
me here.
3
Contents
1
Purpose
8
2
Strobe Project Laboratory
2.1 Current system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Improvements with new system . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
9
3
Theory of light exposure
3.1 Emission and Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Role of Spectral Qualities in Exposure . . . . . . . . . . . . . . . . . . . . .
10
10
10
4
Equipment
4.1 Electronic Flash Sources .
4.2 Spectrograph . . . . . . .
4.2.1 Diffraction Grating
4.2.2 Optical fiber . . .
4.2.3 Detector Array . .
4.3 Computer . . . . . . . . .
4.3.1 Hardware . . . . .
4.3.2 Software. . . . . .
.
.
.
.
.
.
.
.
12
12
12
12
13
13
14
14
14
5
Scope
5.1 Scope of this Effort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
6
Methods
6.1 Data connection to PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
17
6.1.1
6.1.2
6.2
6.3
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
GPIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Serial port. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
17
6.1.3
Terminal program
18
6.1.4
Verifying the Serial Link. . . . . . ..
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . ..
18
Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Synchronization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
19
6.3.1
6.3.2
Trigger On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Trigger Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
19
Implementation
7.1 Program Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
20
7.2
Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
7.3
Plotting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
4
7.4
7.5
7.6
8
21
22
22
23
23
23
.
.
.
.
24
24
24
24
25
Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Results
8.1 Program Executable . . . . . . .
8.2 Calibration . . . . . . . . . . . .
8.2.1
Helium Neon Laser. . . .
8.2.2
Helium Emission . . . . .
8.2.3
9
.
.
.
.
.
.
Scaling the Plot
7.3.1
7.3.2
Replot . . . . . .
Loading and Saving . .
Manual Control. . . . .
7.5.1 Displaying data.
Port Control . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Conclusions
28
A Sample Code
A .1 R un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2 Draw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
29
29
A .3 P lot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.4 Plot Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.5 Plot Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
32
33
B Detector Commands
B.1 Data Acquisition Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
34
B.1.1
B.1.2
DATA ACQUISITION MODE 1 . . . . . . . . . . . . . . . . . . . .
DATA ACQUISITION MODE 2 . . . . . . . . . . . . . . . . . . . .
B.2 Manual Mode Commands
34
34
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
C Supplementary Figures
C.1 Measured Spectra of Line Emission Tubes . . . . . . . . . . . . . . . . . . .
36
36
D Sample Data File
40
E List of Equipment
42
5
List of Figures
3-1
Eye Response Curve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
4-1
Diffraction of White Light into Different Order Bands. . . . . . . . . . . . .
13
8-1
8-2
Least Squares Normal Distribution for plot of Helium Neon Laser. . . . . .
Linear Fit of Calibration Points. . . . . . . . . . . . . . . . . . . . . . . . .
25
26
C-1
C-2
C-3
C-4
C-5
C-6
Spectrum
Discharge
Discharge
Discharge
Discharge
Discharge
of a Helium Neon Laser. . .
Spectrum of Helium Gas. .
Spectrum of Hydrogen Gas.
Spectrum of Argon Gas. . .
Spectrum of Mercury Gas. .
Spectrum of Krypton Gas. .
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
38
38
39
39
List of Tables
8.1
8.2
8.3
8.4
Comparison of Bin and Wavelength Values of Calibration Points . .
Observed and Known Emissions of Argon Gas. . . . . . . . . . . . .
Observed and Known Emissions of Mercury Gas. . . . . . . . . . . .
Observed and Known Emissions of Krypton Gas. . . . . . . . . . . .
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
27
27
27
Chapter 1
Purpose
The purpose of this research was to design and implement a self-contained system which
allows an end user to measure the intensity and spectral composition of an electronic flash.
The goal was to take existing components and integrate them into a single functioning
system.
Upon completion, this system may be used in a new lab assignment for Strobe Project
Laboratory. The purpose of the assignment will be to give students insight into the significance of the spectral output of strobe flash.
8
Chapter 2
Strobe Project Laboratory
Strobe Project Laboratory ("Strobe Lab") is a subject taught by the MIT Department
of Electrical Engineering and Computer Science. It introduces the use of electronic flash
to measure and document high-speed events.
Students complete several lab assignments
during the semester which are designed to train them to solve problems using stroboscopic
techniques.
2.1
Current system
The subject needs an integrated device to directly measure spectral content of light sources.
Such measurements are needed as the response of the eye or photographic film depends upon
the spectral characteristics of incident light. Thus, the students currently have no hands-on
experience with spectral measurements and their significance.
2.2
Improvements with new system
The new system should provide a new topic for laboratory work, allowing Strobe Lab to
incorporate the use of spectral information in its lab assignments. This addition allows for
a deeper understanding of light and its perception.
9
Chapter 3
Theory of light exposure
3.1
Emission and Response
When we discuss the "exposure" of a light source we are referring to the ability of some
medium to respond to light. The magnitude of the response depends upon the intensity
of the incident light energy at each particular wavelength and the characteristics of the
medium.
For example, a piece of film emulsion reacts chemically to light particles by
creating tiny clusters of silver ions, giving the film a certain characteristic response.
3.2
Role of Spectral Qualities in Exposure
The purpose of an off-the-shelf light meter (such as those already used in Strobe Lab) is
to determine the light output of some emission source. Such a device works by recording
cumulative light intensity calibrated to a standard eye response. However, such a device
does not measure spectral content; this information is lost as the device simply sums up its
response to light energy. In reality, flash sources differ not only in cumulative intensity, but
in intensity over time, duration of flash, and in spectral content. Fine distinctions in these
characteristics are impossible for the eye to perceive.
If we were to compare the output levels of two common types of flash, Xenon and
Argon, we would see that while Xenon flash typically produces a light which the human eye
perceives as "white", Argon outputs a "reddish" light[3](52). It follows that for the same
total energy level, the Xenon flash would look brighter than the Argon flash, because it is
better matched to the response curve of the human eye.
10
10
J::
ft'TOMiC
7F.MM
m.
2
it
It~
20WIN
3AVLEGT
3"
d
as
Figure 3-1: Eye response curve, after [2] (57).
11
Chapter 4
Equipment
4.1
Electronic Flash Sources
The typical flash source which we will measure consists of a gas-filled glass tube with
electrodes at each end. The electrodes apply the voltage on a charging capacitor into the gas
medium. When capacitor voltage reaches a certain threshold, the ionized gas momentarily
transmits a current which gives off a brief intense burst of light (which can last from a
microsecond to milliseconds) [1]. Physical properties of the flash tube as well as the type
and pressure of the gas will determine this threshold voltage.
The design of this system
is highly specific to the use of electronic flash sources which are commonly used in strobe
visualization. The process of collecting light energy is specifically designed for strobe flash
sources and not necessarily appropriate for general light sources.
4.2
Spectrograph
A spectrograph is a device which separates incoming light into bands of spectral components.
Once separated, it measures the intensity of individual bands. Plotting the intensity as a
function of each band gives a "spectral curve."
4.2.1
Diffraction Grating
Much like a prism separates white light to create "rainbow" patterns, the diffraction grating
in a spectrograph spreads a light source into a spectral band with a well-defined area. The
diffraction grating consists of many thin parallel grooves covered with a reflective surface.
12
WHITE LIGHT
m=0
SHORTEST WAVELENGTH
m=-1
TRANSMITTED. (-180 nm
FOR MOST SYSTEMS.)
INCREASING WAVELENGTHS
m=-2
360 nm. 1st ORDER
AND
180 nm. 2nd ORDER
ORDERS OVERLAP. UNLESS A\
SHORT WAVE CUT-OFF FILTER
IS INSERTED IN BEAM
Figure 4-1: Diffraction of white light into different order bands, after [6] (2-4).
As polychromatic light (light composed of multiple wavelengths) hits the grating, light
components of different wavelengths reflect off of grooves in the grating.
The light reflected from the different grooves interferes, usually destructively. At certain
distinct angles, however, the interference is constructive. These angles depend upon the
wavelength of the incident light.
The set of angles for a given wavelength are known as "orders of diffraction."'
4.2.2
Optical fiber
The efficiency and accuracy of the spectrograph is largely dependent on the qualities of
the input beam, so the manner of getting light into the spectrograph is an important
consideration.
Light conducted through an optical fiber enters the spectrograph through
an opening slit opposite the diffraction grating. The fiber acts as the entrance slit to the
spectrograph, and the diameter of its core determines the resolution.
4.2.3
Detector Array
The detector is an array of photodiodes. They measure the intensity of light falling upon
each of the detector's individual sections. The diodes convert light energy into electrical
energy which is then measured and transmitted as data.
'See Figure 4-1.
13
Properties
When a photodiode is exposed to light with a given spectral content, it gen-
erates a short-circuit current between its terminals that is linearly proportional to the light
intensity. Therefore, by measuring this current flow, we have a measure of the total light
response of the photodiode.
4.3
Computer
The computer dictates controlled interactions between the various components.
It also
provides a graphical user interface, without which the user would be faced with a tedious
task of sorting through the raw data from the measurement devices.
4.3.1
Hardware
The computer used is an IBM-compatible PC with a serial port connection to the spectrograph.
4.3.2
Software
The computer runs the Windows 98 operating system. Additionally, it has a high-level
programming language to write a simple step-through program. This program allows users
to control the measurement devices to take readings and to analyze the results.
14
Chapter 5
Scope
5.1
Scope of this Effort
Completion of this system depends upon constructing a set of three interfaces between the
three hardware components and writing a user guide. Requirements of each interface are
detailed below. The design and implementation process is roughly as follows:
1. Preliminary design of these interfaces.
2. Gathering and assembling materials.
3. Basic prototype for each interface.
4. Analysis and modification of design.
5. Reimplementation and refinements.
6. Ongoing testing and documentation.
The interfaces are:
1. User to Computer
The user interface is a program which controls the interactions between the spectrograph and the end user. The program prompts the user for a flash input and displays
its spectral or intensity information. Additionally the user may repeat readings to
generate statistics or print out results.
15
2. Computer to Spectrograph
Complying with the I/O specification of the spectrograph, the program initiates the
spectrograph and collects the data.
3. Spectrograph to flash
The optical train that brings light from the strobe to the spectrograph is a simple
optical fiber.
4. User Guide
The User Guide is sole documentation for future use of the system, and should include
methods of normal operation as well as calibration or adjustment.
An addendum
includes design and implementation specifications to aid in future modifications to
the system.
This effort completed the three interfaces. The User Guide has been left for future work.
16
Chapter 6
Methods
6.1
6.1.1
Data connection to PC
GPIB
A GPIB is a IEEE standard parallel port. It is an option on both the 1471A Detector
Interface and the PC. It requires unique addressing of each GPIB port. The advantage
using this port is speed when transmitting data.
We started the process of creating a connection by trying to use prepackaged software
from EG&G and OmaVision over the GPIB port. A connection could not be established
over many trials. We decided to instead use a simpler RS-232 serial port interface. It is a
more common (albeit slower) connection because there is only one pin of communication in
each direction.
6.1.2
Serial port
The serial (RS232) port proved to present far fewer communication problems, since it is
a simpler interface. For example, the RS232 port doesn't require addressing, which was a
major problem to establish with GPIB. Another advantage is the widespread availability
of serial ports, such that the program may be portable to other PCs. Additional cabling
swaps the read and write pins 2 and 3 such that the correct pins are accessed.
17
6.1.3
Terminal program
PC to Detector Interface
A terminal program on the PC was the first interface to the detector. From here it was
possible to send simple read/write or read/output commands. For example the command
"FREQ 50" could change state in the interface, after which the "FREQ" command would
return the updated value "50." At this stage it was possible to check whether commands
had gotten through and were understood by the detector.
Detector Interface to PC
After this stage, it was necessary to figure out how to interpret the data returned from the
interface. The interface sent out its results over the serial port, which the terminal program
sometimes had trouble identifying.
At this stage the "read" command was added to the program. It sends the command
"DC 1 1 1024" which is a command to read all 1024 values from memory location 1, the
default location for a RUN command. This was added as a shortcut in the software so that
the user would not have to enter a cumbersome command.
6.1.4
Verifying the Serial Link
First, the program had to initialize the serial port for communications.
Once this was
established, we started by trying to send simple commands to the device. This would cause
errors, which were debugged by connecting the PC via its serial port to another computer
and watching the transmission between them.
Once the link was verified, we implemented the transmission protocol expected by the detector interface interface. It places a carriage return (CR) character after each transmission,
and expects to receive the same protocol.
6.2
Calibration
Slight variations in the detector array may account for measurement error. Specifications
state that the range of the detector is between 200 and 1100 nm, but since there are
actually 1024 data points, they do not lie exactly between these values. Our object then is
18
to transform the observed spectra of known sources to match the known properties of the
sources.
We began by using a Helium Neon laser, which emits at a single specific known wavelength (632.8 nm). This gives us a grounding point in the scale.
Next we took gases with simple emission patterns, and used the observed values as
further calibration points.
Finally, we tested our calibration by looking at observed emissions of new sources, and
compared them with their "known" spectra. If the observed and the known spectra match,
then we have a good indication of the accuracy of the system.
6.3
Synchronization
Because we may be dealing with strobe sources, synchronization between the source and
the measurement may be necessary. By setting the correct Data Acquisition model and
hooking our flash up to the back of the detector interface, we will be able to automatically
synchronize our emission source with the reading.
6.3.1
Trigger On
This mode allows the strobe to control the triggering. First the interface is started in data
acquisition mode.
Setting off the flash sends a pulse to the "Trigger On" input to the
interface, which thereby ends the reading.
6.3.2
Trigger Out
This mode allows the strobe to be fired in conjunction with taking a reading. The signal
from the "Trigger Out" output from the interface sends a signal for the strobe to fire as the
detector interface takes a reading.
'See Appendix B.1.
19
Chapter 7
Implementation
With a serial connection established, we started writing a program in Microsoft VisualBasic
6.0 (a standard tool for making Windows interfaces).
This is appropriate for a program
which will run off of a single Windows PC. The interface handles all of the manual terminal
functions. In addition, it provides a clean and simple interface which can also plot, load,
and store, all in the Windows environment.
7.1
Program Structure
The program is split up into five VisualBasic forms, each of which performs a primary
function in the program.
1. Startup
This is the initial window, which links to all other functions in the program. This
portion also controls the remaining forms. It allows the user to align, take a reading,
load a file, use manual controls, or quit the program.
2. Plot
Displays a plot of the current dataset, including the owner and the name and date of
creation of the file. It also allows the user to replot the data.
3. Load File
Gives the user a menu from which to pick a file to load. It will give an error if the file
is invalid.
20
4. Save File
Saves the current data set to a file specified by the user.
5. Manual Control
Allows the user to give commands manually to the detector interface.1
7.2
Alignment
When taking readings it is important to consider the alignment of the light source, as
misalignment leads to a weak reading, resulting in a plot that is difficult to interpret. We
would also like to view the brightest part of the strobe at a fixed distance, in order to be
able to measure relative intensity with other sources.
To display brightness of the reading, we could simply take successive readings and output
the results on the screen. The plot with the highest values would indicate when the fiber
was aligned to the brightest part of the light source.
In practice, this procedure is too
slow because of transmission time over the serial cable (five seconds between successive
transmissions).
The modified alignment procedure repeatedly calls a data acquisition ("run") followed
by the "minmaZ" procedure 2 . This call to the detector interface returns the minimum and
maximum value in the current dataset. When the fiber is aligned, the reading on the screen
shows a maximal value; the user may adjust the fiber until this value is reached.
7.3
Plotting
The plotting portion of the program first takes in data from the spectrograph, then scales
it to the available window in order to make the data easy to view and interpret.
7.3.1
Scaling the Plot
In order to best fit the graph to the window, the program first determines the window size
and either stretches or compresses the plot. Compression results in fewer displayed data
points, though the actual data remains intact. 3
'A partial list of commands and their syntax can be found in Appendix B.2.
2
See Appendix B.2.
3
See A.2 lines 35-39.
21
Using the window width and height and the number of data points requested by the
user, the program then calculates a separate constant scaling factor for each axis.
7.3.2
Replot
Furthermore, the user may replot the data (e.g. to focus in on some smaller portion of the
data) by picking minimum and maximum x and y values to include in the plot.
Drawing Axes
The program uses the number of tick marks and the requested number of data values to
determine the spacing of the ticks, then draws them at even whole number intervals. If
necessary, the range is expanded in order to make the spacing even.
Numbering Axes
Numbering the axes is subject to the same compression or stretching. The values of the
ticks are determined by the number of ticks specified for each axis.
7.4
Loading and Saving
The program saves data as ASCII characters in order to make the resulting file easily
readable by other programs and users. The form of the file is a set of three informational
fields (name, run-time, and comments) followed by pairs of data points separated by a
comma. Each line begins and ends with a pound sign (#), in order to make the file easy to
load.
Loads and saves are handled by their respective forms, which browse the folders in the C:
drive of the PC. This format is designed to be like most Windows applications, for greatest
familiarity.
Saving requires the user to specify a name (any string) to act as an identifier. It also
stores the date and timestamp associated with the time of the plot. (The default comment
of "none" may later be replaced by the user's comments.)
The program then asks for a
filename, and if the file exists, asks to overwrite it. Any overwritten files will have a backup
created in the form of a tilde file.
22
Loading a file requires simply browsing and clicking on the name of a file. Once the file
is loaded, it is automatically plotted with y values between zero and the maximum value in
the data.
7.5
Manual Control
The first step of creating the interface was to reproduce the capability of the terminal
program, i.e. to be able to manually type commands to the interface. Additionally, error
handling was needed in order to make the program more robust. An invalid command would
cause the terminal and the detector interface to crash, and both devices would have to be
reset manually. It is not desirable to require the user to have to know how the program or
the interface works in great detail.
7.5.1
Displaying data
When the data eventually came back in a readable format, it was first simply displayed in
a textbox, much like one might view it with a terminal program. This made it easy to see
whether the readings from the spectrograph were coming through. Eventually the data read
portion of the interface was supplemented by a graphical plotting function which allows the
user to easily get an overview of the data. However data read is still possible with ASCII
characters via Manual Control.
7.6
Port Control
There are times during execution of the program when two different portions of the program
may try to access the I/O port. This should not be allowed because we want the program
to access the interface serially. In other words, competing commands should have to wait
until the last command is finished. Such commands are disabled until communication ceases
with the controlling function.
For example, when the Align button in the Startup form is clicked, all of the other
buttons except for Stop and Quit become disabled ("greyed out"). This insures that the
user cannot start a data read while the port is open to perform alignment, which would
otherwise cause an error.
23
Chapter 8
Results
8.1
Program Executable
The final version of the program has been demonstrated to control and plot data from the
spectrograph. It is a Windows executable which starts by double-clicking on an icon. The
program guides the user through taking a reading, saving, and loading in a simple user
interface.
The resulting data is easy to browse through and plot using any spreadsheet
program such as Excel or Xess.
8.2
8.2.1
Calibration
Helium Neon Laser
Determining the peak
Our goal is to match our data with the known emission line at 632.8 nm. By assigning the
largest value in our data as this calibration value, we may be missing the actual peak. We
account for this by fitting the curve to a Gaussian and looking at the mean value.
The form of the Gaussian or "bell curve" is y = a + be-c(xd)
We perform a least squares fit on the data and obtain a mean (for d) of 445.1 and
standard deviation (for -)
of 1.176.1
From this calculation we correspond 632.8 nanometers with bin number 445.1.
'See Figure 8-1.
24
10000
9000
8000
7000
.0
Cu
-
-
6000
5000
CO
C
4000
3000
2000
1000
0
430
435
440
445
450
455
460
Bin Number
Figure 8-1: Least squares normal distribution for plot of Helium Neon laser.
8.2.2
Helium Emission
Repeating the process with the line emission tube for Helium gas gives us an additional three
calibration points. These points are pairs of numbers mapping a bin value to a wavelength
in nanometers.
A Mathematica program then does a best-fit line through these four points to produce
the calibration equation.
These data values fit the linear equation Wavelength = 502.0 + 0.2937 - Bin, as shown
in Figure 8-2.
Table 8.1: Comparison of Bin (measured) and Wavelength (known) Values of Calibration
Points, after [5].
Bin No.
Wavelength (nm)
Helium Neon
445.1
632.8
25
291.68
587.5
Helium
564.53
667.8
696.41
706.5
700
675
C
650
625
600
575
300
500
400
600
700
Bin Number
Figure 8-2: Linear fit of calibration points. The line of best fit is Wavelength = 502.0 +
0.2937 Bin.
8.2.3
Verification
Finally, we verified the calibration by looking at line emissions of Hydrogen, Argon, Krypton,
and Mercury. The actual line for Hydrogen at 525.26 nm was measured at 525.31 nm with
our calibration scheme, a difference of .05 nm.2
For Argon and Krypton, 3 the observed
emission lines match within 0.5 nm of their actual value for wavelenths above 587 nm.
Below this point, the detector failed to show any peaks.
The Mercury emission exhibits an unusual pattern that matches at only one value. Its
emission curve is also very similar to that of Argon. 4 This may be due to some kind of
contamination of the Mercury tube with another gas, or the effect of UV emission from the
gas.
2
See Figure C-3.
See Tables 8.2, 8.4.
4
See Figures C-4, C-5.
3
26
Table 8.2: Observed and Known Emissions of Argon Gas.
Observed
Wavelength(nm)
Known
Wavelength(nm)
696.68
706.84
727.34
738.70
750.81
763.85
772.88
795.43
802.11
696.54
706.72
727.29
738.40
751.47
763.51
772.42
794.81
800.15
Table 8.3: Observed and Known Emissions of Mercury Gas. (Not all wavelengths are listed.)
Observed
Wavelength(nm)
Known
Wavelength(nm)
546.34
696.71
707.02
763.88
546.07
614.95
-
Table 8.4: Observed and Known Emissions of Krypton Gas.
Observed
Wavelength(nm)
Known
Wavelength(nm)
758.97
760.16
557.03
587.09
758.74
760.15
769.53
769.45
785.84
785.48
27
Chapter 9
Conclusions
Strobe flash units are the core of the Strobe Project Laboratory curriculum. The system
described in this paper introduces a new area to explore in this popular lab class. The
functionality of the system creates a range of possible uses. It can stand alone as a simple
demonstration of line spectra, or may be used as part of an experiment centered around
light emission and response (such as to identify line emission sources based on a table of
known emissions).
As students begin to work with this system, they will find new applications or desired
features which may be the topic of further work. One such topic may be to allow multiple datasets to be visible in the same window. Such a feature would allow for a relative
comparison between spectral readings.
As it currently stands, the interface is flexible and effectively gives the user a fast and
clear overview of the spectral output of a light source. If desired, the user also has access
to the raw data, in order to be able to analyze any part of the reading in further detail.
Furthermore, the interface is designed to be easy to use and maintain, allowing the user to
focus on interpreting the data presented to them. The ability for future Strobe Lab classes
to continue to use this system will determine its success in the long run.
28
Appendix A
Sample Code
A.1
Run
1 Private Sub RunClick()
2 ' Take a reading from the spectrograph and plot results in plot window
3 ' Disable Startup buttons
4 align.Enabled = False
5 Load.Enabled = False
6 StopAlign.Enabled = False
7 Run.Enabled = False
8 Manual.Enabled = False
9 Call Man.process-command("run")
10 d = Date
11 t = time
11
12
13
14
15
16
17
18
19
20
21
22
23
datetime = Date$ &
& time$
' Read data values from interface and plot the results
Call Man.process-command("read")
Call DisplayPlotlWindow
plotl.newrun = True
Call plotl.Plot(0, 0)
' Re-enable Startup buttons
align.Enabled = True
StopAlign.Enabled = True
Run.Enabled = True
Manual.Enabled = True
Load.Enabled = True
End Sub
A.2
Draw
1 Private Sub draw(l, topi, num-stepx, x-min, x_max, numnstepy, y-min,
y-max)
29
2 'Calculates scaling of the plot and displays axes, labels, and data
points in plot window
3 Dim compress As Boolean
4 Dim horiz-step, vert-step, size-stepx, size-stepy As Integer
5 Dim wd, ht, bottom As Integer
6 wd = Startup.plotl.Width
7 ht = Startup.plotl.Height
8
9 ' Compute size of x step
10 If ((xmax - x-min) Mod (num-stepx - 1)) = 0 Then
11
size-stepx = (x-max - x-min) /
(num-stepx -
1)
12 Else
size-stepx = (x-max - x-min) \ (num-stepx - 1) + 1
13
14 End If
15
16 ' Compute size of y step
17 sizestepy = (y-max - y-min) \ (num-stepy - 1)
18 If Not ((y-max - y-min) Mod (num-stepy - 1)) = 0 Then
19
20
21
22
23
24
25
26
27
28
29
30
31
32
size-stepy = sizestepy + 1
End If
If Not (size-stepy Mod 5 = 0) Then
size-stepy = sizestepy \ 5
size-stepy = sizestepy * 5 + 5
End If
If size.stepx < 1 Then
size-stepx = 1
End If
If size-stepy < 1 Then
sizestepy = 1
End If
' Compute compression or stretching factor
33 horizstep = (wd - 1 - 500) \ (xmax - x-min)
34 vertstep = (ht - topi - 1500) \ (y-max - y-min)
35 compress = False
36 If vert-step <= 1 Then
37
vert-step = (y-max - y-min)
38
compress = True
\ (ht - topi - 1500)
39 End If
40 ' Adjust compression factor to fit plot to window
41 If compress Then
Do While (size.stepy * (num-stepy - 1)) > vert-step *
42
(ht - topi
43
-
1050)
vert-step = vertstep + 1
44 Loop
45 Else
46
Do While
(size-stepy *
(num-stepy - 1))
* vert-step + topi + 1050 > ht
30
vert-step = vertstep
47
-
1
48
Loop
49 End If
50
51 If
*
(numnstepx
Do While (size.stepx *
52
53
54
55
56
57
58
59
69
(sizestepx
- 1)) * horizstep
+ 1 > wd Then
(num-stepx - 1)) * horiz-step + 1 > wd
horiz-step = horiz-step - 1
Loop
End If
' Display the plot window
Startup.plotl.Show
If compress Then
1)) \ vert-step
bottom = topi + (size-stepy * (num-stepy -
Else
70
bottom = topi + (size-stepy * (numxstepy -
1)) * vertstep
71 End If
72 ' Plot the axes in the plot window
73 Call plot-axes(l, topi, horizstep, vert-step, compress, num-stepx,
x-min, x-max, sizestepx, num_stepy, ymin, y-max,
sizestepy, bottom)
74 ' Plot the data points in the plot window
75 Call Plot-graph(l, topi, horiz-step, vert-step, compress, xmin,
x-max, y-min, y-max, bottom)
76 End Sub
A.3
Plot
1 Function
Plot(ldmin, ldmax)
2 ' Plot graph in plot window, showing the max y value as the max value
over all data points of graph.
3 Dim data-min%, datamax, iX
4 Dim minmax, place-min, place-max As String
5 ' Display user and file info in the plot window
6 Call Fileinfo
7 'Convert new reading to graph()
8 If Startup.plotl.newrun = True Then
9
StrtoArray (Startup.plotl.plot-string)
10 Else
11
StrtoArray (Startup.Ldfile.load-string)
12 End If
13 ' Get max data value of the plot
14 If newrun = True Then
15
minmax = Startup.Man.process-command("min.max")
18
i% = InStr(minmax, ",")
dataminX = Left(minmax, i% - 1)
minmax = Left(minmax, Len(minmax) -
19
datamaxX = Right(minmax, Len(minmax) - i%)
16
17
31
2)
Ymin.Text = data_min 0
20
Ymax.Text = datamax%
21
Call draw(l, topi, 5, 0, 1023, 5, data-min%, data-max%)
22
23 Else
Ymin.Text = ldmin
24
Ymax.Text = ldmax
25
' Plot the data in plot window
26
27
Call draw(l, topi, 5, 0, 1023, 5, ldmin, ldmax)
28 End If
29 End Function
A.4
Plot Axes
1 Private Sub plot-axes(l, topi, horizstep, vert-step, compress,
2 numstepx, min-x , max-x, size-stepx, num-stepy, miny, max-y,
3 size-stepy, bottom)
4 ' Calculates and draws x and y axes with labels in plot window
5
6 Dim r, i As Integer
7 Dim y-tick%, x-tick%, j%
8 Dim num As Single
9 Startup.plotl.FontSize = 8
10 1 Calculate number spacing between tick marks
11 r = 1 + horizstep * (maxx - min-x)
12 If compress Then
y-tickX = sizestepy \ vert-step
13
14 Else
y-tick% = sizestepy * vertstep
15
16 End If
17 x_tick% = size-stepx * horiz-step
18
19 j% = num-stepy
20 'Number Y axis
21 For i = 0 To j% - 1
Startup.plotl.Line
22
(1 - 50, bottom - i * y-tick%)-(l, bottom - i * ytick%)
23
Startup.plotl.CurrentX = 1 - 600
24
Startup.plotl.CurrentY = bottom - 80 - i * y-tick%
25
num = (min-y + i * size-stepy) \ 10
num = num * 10
26
Startup.plotl.Print num
27
28 Next i
29 'Draw y axis line
30 Startup.plotl.Line (1, bottom - (i - 1) * y-tick%)-(l, bottom)
31
32 'Number X Axis
33 j% = num-stepx
32
34 For i = 0 To j% - 1
35
Startup.plotl.Line
36
37
38
(1 + i * x-tick%, bottom)-(1 + i * x-tick%, bottom + 50)
Startup.plotl.CurrentY = bottom + 100
num = BinToWl(min-x + i * size-stepx) \ 1
Startup.plotl.CurrentX = 1 + i * xtick% - 170
Startup.plotl.Print num
Next i
'Draw x axis line
Startup.plotl.Line (1, bottom)-(l + (i - 1) * x-tick%, bottom)
39
40
41
42
43
44 'label axes
45 Startup.plotl.CurrentX = 0.5 * (1 + r) - 350
46 Startup.plotl.CurrentY = bottom + 350
47 Startup.plot1.Print
48
49 End Sub
A.5
1
2
3
4
5
6
7
"Wavelength (nm)"
Plot Graph
Private Sub Plot-graph(l, topi, horizstep, vertstep, compress,
x-min, x-max, y-min, y-max, bottom)
' Plots the data points in graph in the plot window
Dim curr-length, num, i, temp As Integer
Dim offset As Long
' start plot at a multiple of 10 that is less than the requested x
min value
temp = CInt(x-min / 10)
num = CInt(temp * 10)
8 ' calculate number of pixels from x axis
9 For i = x_min To xmax
10
If i > - 1 And i < 1024 And i > num - 1 Then
11
If compress Then
12
offset = (graph(i) - (y-min \ 10) * 10) \ vertstep
13
Else
14
offset = (graph(i) - (y-min \ 10) * 10) * vertstep
15
End If
16
' if the point is inside the plot area, make a dot at that pixel
17
If offset > 0 And (bottom - offset) > topi Then
18
Startup.plotl.PSet (i * horizstep
+ Startup.plotl.l - num * horizstep, bottom - offset)
19
End If
20
End If
21 Next i
22 End Sub
33
Appendix B
Detector Commands
B.1
Data Acquisition Modes
As described in [4](69).
B.1.1
DATA ACQUISITION MODE 1
Each set of scans is preceded by a Trigger Output (TOUT) pulse generated in the detector
controller.
B.1.2
DATA ACQUISITION MODE 2
Each set of scans is preceded by a Trigger Out (TOUT) and an On Trigger (ON.TRIG).
Mode (2) is identical to Mode (1), except that the instrument must wait for an incoming
On Trigger signal before beginning each set of scans.
B.2
Manual Mode Commands
As described in [4](145-153).
34
COMMAND
COMMAND
TYPE
TYPE
AREA nl,n2,n3
FUNCTION
FUNCTION
DEFAULT
DEFAULT
Calculates the area under the curve
specified by n1, n2, and n3:
n1 = memory no.
n2 = first channel
n3 = no. of channels
DA n
R/W
Sets/Returns current Data Acquisition Mode
1
MIN.MAX
R/O
Returns min and max of all points in
specified range of memories.
na
RUN
W/O
Initiates the acquisition of data, using
the current D.A. mode setting
na
SYNC
R/O
Specifies current syncrohization:
0 = Normal
1 = Line
0
TOUT
DAD
Generates main trigger output at start
of exposure time.
na
TRIG.OFF
W/O
Turns OFF the Main Trigger Output.
na
TRIG.ON
W/O
Turns ON the Main Trigger Output.
na
35
Appendix C
Supplementary Figures
C.1
Measured Spectra of Line Emission Tubes
36
3000
2500
I
.0
(U
0
C
1500
-
1000
-
500
-
a)
C
0 4
500
550
600
650
700
750
800
Wavelength (nm)
Figure C-1: Spectrum of a Helium Neon Laser. The line at 632.8 nm is used to create the
calibration equation. Note a small bump at 595.5 nm.
1800
1600 1400 1200 .0
(U
0
C
a)
C
1000 800 600 400 200 0 50 0
550
600
650
700
750
800
Wavelength (nm)
Figure C-2: Discharge Spectrum of Helium Gas. The emission lines at 587.5 nm, 667.8 nm,
and 706.5nm are used to create the calibration equation.
37
3000
2500
2000
.0
.
1500
1000--
500 -4M
500
Ow-
- -IM-
M
owl- No- OA
650
600
550
800
750
700
Wavelength (nm)
Figure C-3: Discharge Spectrum of Hydrogen Gas. The single peak observed is the 525.26
nm line, which the calibration equation places at 525.31 nm. Note the same bump at 595.5
nm as in Figure C-1.
1400 1200 1000
.0
A
800
- -
- --
- - -
600
400
200
0
690
710
750
730
770
790
Wavelength (nm)
Figure C-4: Discharge Spectrum of Argon Gas. All observed and expected wavelengths
match within .62 nm. (See Table 8.2.)
38
900 800 -700
600
500
e
400
-
-
VI.
300
200
100
0 +
500
550
600
650
700
750
800
Wavelength (nm)
Figure C-5: Discharge Spectrum of Mercury Gas. Note many emission lines that are not
known to be characteristic of Mercury. (See Table 8.3.)
-
1200
1000
8001
-
.0
(U
(0
600
-
S
400
.
-%
.
.
200
0
740
750
760
770
780
790
800
Wavelength (nm)
Figure C-6: Discharge Spectrum of Krypton Gas.
appear in the reading. (See Table 8.4.)
39
Emission lines below 758 nm did not
Appendix D
Sample Data File
#Jessica.#
#1/31/00 2:39:06 PM#
#Comments: Note line near 550.#
#501.98 , 81#
#502.27 ,0#
#502.57 ,0#
#502.86 , 209#
#503.16 , 186#
#503.45 , 199#
#503.74 , 230#
#504.04 , 218#
#504.33 , 182#
#504.62 , 195#
#504.92
,
222#
#505.21
#505.51
,
207#
184#
,
#544.57 , 223#
#544.87 , 243#
#545.16 , 243#
#545.45 , 193#
#545.75 , 220#
#546.04 , 287#
#546.34 , 407#
#546.63 , 376#
#546.92 , 388#
#547.22 , 271#
#547.51 , 252#
#547.8 , 193#
40
#548.1 , 215#
#548.39 , 240#
#548.69 , 245#
#548.98 , 205#
#549.27 , 221#
#549.57 , 236#
#549.86 , 240#
#793.08
#793.37
#793.66
#793.96
#794.25
#794.54
#794.84
,
,
287#
238#
246#
257#
280#
239#
279#
#795.13
,
370#
,
,
,
,
,
#795.43 , 433#
#795.72 , 384#
#796.01 , 316#
#796.31 , 268#
#796.6 , 289#
#796.89 , 232#
#797.19 , 238#
#797.48 , 248#
#797.78 , 280#
#798.07 , 236#
#798.36 , 237#
#798.66 , 240#
#798.95 , 278#
#799.24 , 232#
#799.54 , 227#
#799.83 , 240#
#800.13 , 276#
#800.42 , 231#
#800.71 , 253#
#801.01 , 323#
#801.3 , 381#
#801.59 , 373#
#801.89 , 408#
#802.18 , 425#
#802.47 . 442#
41
Appendix E
List of Equipment
1. EG&G PARC 1471A Detector Interface, Ser. No. 19108
2. EG&G PARC 1235 Triple Grating Spectrograph, Ser. No. 2AG1791
Grating 1: 300 g/mm Blaze 500 nm ruled
Grating 2: 1200 g/mm Blaze 500 nm ruled
slit width 25-75 p
3. EG&G PARC 1453A Detector Array, Ser. No. 62104 1024-element detector
4. Thorlabs M19L02 Optical Fiber
5. Electro-Technic Products Inc. Model SP200 Spectrum Tube Power Supply (115 V),
gas tubes
6. Spectra-Physics Laser Exciter, Model 248, Ser. No. 1194
7. Spectra-Physics Helium-Neon Laser Model 142P, Ser. No. 636
42
Bibliography
[1] James Bales. Personal communication. January 1999.
[2] Electro-Optics Handbook. Burle Industries, Inc., 1974.
[3] Harold E. Edgerton. Electronic Flash, Strobe. McGraw-Hill Book Company, New York,
1980.
[4] Model 1471A Detector Interface Instruction Manual. EG&G Princeton Applied Research, 1991.
[5] David R. Lide, editor. CRC Handbook of Chemistry and Physics, 75th Edition. CRC
Press, Inc., Ann Arbor, 1994.
[6] Light Sources, Monochromators & Spectrographs, Detectors & Detection Systems, Fiber
Optics, vol II. Oriel Corporation, Stratford, CT, 1994.
43