This document provides an overall description of the Fly Carousel Program

Requires

Authors

Hardware---Kevin Lease

Software---Jim Burnette

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.
  1. User enters user specific parameters and the save location.
  2. Six folders are created: Vial_1, Vial_2, etc. in the choosen directory as well as a file with the experimental parameters.
  3. User selects "Start Grab" and pushes the reset button on the motor controller.
    1. Time is taken.
    2. Controller signals to take an image by sending the character A. Image is stored in a queue.
    3. Plugin sends the number 0 followed by the letter Z to the controller signalling motor to move.
    4. Plugin sleeps for 3 seconds.
    5. 1--3 is repeated five more times
    6. 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.
    7. The time is taken and the program sleeps for the remainder of 1 minute.
    8. 1--6 are repeated for the total number of minutes the user entered.
    To run the Plugin again, quit and restart ImageJ.