CroftSoft
/ Library
/ Software
Infant
David Wallace Croft
2007 Nov 30 Fri
Description
CroftSoft Infant is Open Source software which presents visual stimuli to
infants and reacts to their responses via a pacifier connected to a
pressure transducer. It has been used to collect research data from
newborn infants. If you would like the documentation or code updated,
please contact
David Wallace Croft.
Here is a
QuickTime movie demonstrating an early version of the
software responding to pacifier input:
croftsoft_infant_2006-01-15.mov.
Warning
A fellow Java programmer pointed out to me that the device poses a
strangulation risk. From the picture, we can see that the tubing
connecting the pacifier to the air pressure transducer and the cable
connecting the transducer to the joystick port on the computer
could become wrapped around the
neck of the infant.
I reassured him that the device would only be used in scientific research
and that the child would not be left unattended. If you build and employ
a similar device, you should be aware of this risk and ensure that the
child using the device is attended at all times. A long-term solution
might be to integrate the pacifier and transducer with a wireless
transmitter such that no tubing or cord is required.
Installation
The application is downloaded, installed, and launched by clicking on the
screenshot image at the top of this webpage or this
link. If the download fails, the
user should verify that a recent version of
Java has been installed
on the computer.
Operation
The first time the program is launched, it will create a subdirectory under
your home directory called .croftsoft/infant/images . It will
then copy three example image files to that directory. You can replace the
files in this directory with any number of your own in any common image
format.
The image names in the directory are sorted in alphanumeric order. After
sorting, the first is used as the background image
(e.g., "background.png"). The second and following are used as the images
to be presented in sequence ("image001.png", "image002.png", ...,
"image010.png", etc.).
In the Control Panel, click on the "Display" or "Start" button to bring up
the Stimulus Window. The background image will be displayed. Position the
Stimulus Window so that it does not overlap the Control Panel.
Squeeze on the pacifier input device and then release to display the first
image.
Squeeze and release it again to display the next image. If you do
not have the pacifier connected, you can press and release the spacebar key
on the keyboard to test the system. Note that it is the release, not the
initial squeeze, that is considered the event trigger.
The image will be displayed after the pacifier is released for a
duration which is specified in the input area on the Control
Panel. The length of
time is given in units of seconds.
The initial default value is 0.4 seconds (400 milliseconds). If you
change the duration, the change will be saved to a configuration file when
you exit the program.
If the pacifier is squeezed and released again within the 400 ms window,
the same image will continue to be displayed. If not, the display will
return to the background image after the elapsed time. The next time the
pacifier is squeezed and released, a stimulus image will be
displayed again.
If the period between pacifier releases is less than the interstimulus
interval (ISI) setting, the stimulus image will remain the same. If the
period is greater than the ISI, the next stimulus image in the sequence
will be displayed.
The "Start" button logs the start time on the Control Panel and resets the
image array index to the first image in the series as sorted
alphanumerically by filename when the program was first started.
The start and stop times of the images presented are also logged. The
times recorded in the log are only given to the nearest second as the clock
used for this purpose is of a low resolution.
The clock used to time the
image durations is of a much higher resolution. The update loop which is
timed off of the high resolution clock is
programmed
to run at 100 updates per second so the image duration resolution is around
0.01 seconds. For a given duration of 0.4 seconds, the actual image
display time should be between 0.39 to 0.41 seconds after the pacifier is
released.
Open Source
The source code is available
for reuse under the terms of the
Academic Free License.
Credits
Ana-Maria Mata-Otero, a graduate student in
Behavioral and Brain Sciences
at the
University of Texas at Dallas, was using an old software and hardware
configuration which needed to be replaced. She recruited
Lawrence J. Cauller, Ph.D. who in turn recruited his graduate
student David Wallace Croft to help her.
Unfortunately, there was no documentation and no source code available for
the previous system.
Dr. Cauller and Mr. Croft were able to figure out how to read data from the
pressure transducer using these
wiring instructions and the
JInput API.
Dr. Cauller wired the pressure tranducer including the addition of an
external knob to fine-tune sensitivity.
Ms. Mata-Otero, as the
Subject Matter Expert,
provided the software requirements specification and
feedback during the development process.
Mr. Croft programmed the software and created this webpage documentation.
Both source code and webpages are archived in an
Open Source repository
so that the system should not have to be rebuilt from scratch in the
future.
An example of research this has employed this type of input device in the
past includes that of Michelle Barrile, Erika S. Armstrong, and
Dr. Thomas G. R. Bower of the University of Texas at Dallas, as
documented in the paper
"Novelty and frequency as determinants of newborn preference",
Developmental Science 2:1 (1999), pp 47-52.
Ms. Mata-Otero reported that she was able to use CroftSoft Infant to collect
research data from newborn infants in support of her doctoral dissertation.
Open Source
CroftSoft Code Library
JInput API
References
Tomi Engdahl, "PC joystick interface circuits",
2005-01-13, viewed 2006-01-10,
http://www.epanorama.net/documents/joystick/pc_circuits.html
|