This document provides an overall description of the Fly Carousel Program
Requires
- Carousel Imaging class files
- ImageJ
- Serial Communications
- Mac OS X and linux
- RXTX Serial IO. Must use the edu.virginia.jburnette.io.* that imports gnu.io.*.
- Win32
- javax.comm. Must use the edu.virginia.jburnette.io.* that imports javax.comm.*.
- QuickTime for Java
Authors
Hardware---Kevin Lease
- Carousel and stepper motor
- Motor Controller including PIC instructions
- STEPF.ASM
- Assembly language compiled script for pic
- STEPF.HEX
- Hex complied script for pic
- STEPF.MAC
- stepf.pbp
- Script source code.
- See file Micro Controller Schematic for a schematic of the motor controller.
- Carousel_Imaging.java
- Main class and program control
- MQTCapture.java
- Frame class and QTJ stream
- SerialReadWrite.java
- Serial communication with motor controller
- GetPortList.java
- Supplies a list of serial ports
- PortNotFoundException.java
- Thrown when a port cannot be opened.
- ProcessImages.java -- not used
- Counts flies in focal plane. Also counts flies outside of focal plane.
- ImageHolder.java
- Holds an image and identifying information.
Overview of Program
Carousel Imaging is an ImageJ plugin. Using serial communication CI tells the stepper motor controller to advance the carousel. After the motor moves, the controller signals back to the plugin to take a image. While the motor is turning the plugin sleeps for 3 seconds before it begins listening for the capture signal.
The fly carousel hold six vials and is instructed to turn once a minute for a user specified number of minutes. Here is the overall flow of the program.
- User enters user specific parameters and the save location.
- Save directory for the images.
- Number of minutes to record. Equivalent to the number of revolutions of the carousel.
- Other information specific to this specific experiment.
- Six folders are created: Vial_1, Vial_2, etc. in the choosen directory as well as a file with the experimental parameters.
- User selects "Start Grab" and pushes the reset button on the motor controller.
- Time is taken.
- Controller signals to take an image by sending the character
A. Image is stored in a queue.
- Plugin sends the number
0 followed by the letter Z to the controller signalling motor to move.
- Plugin sleeps for 3 seconds.
- 1--3 is repeated five more times
- After the sixth revolution, the images are saved as jpegs to the folders. The image name is the number indicating the order in which it was taken. All images of 1 vial are placed in the respective directory.
- The time is taken and the program sleeps for the remainder of 1 minute.
- 1--6 are repeated for the total number of minutes the user entered.
To run the Plugin again, quit and restart ImageJ.