Title: Critical Design Review Laser Choreographer 2500FX
1Critical Design ReviewLaser Choreographer 2500FX
- Team ThunderForce
- February 26, 2004
2Table of Contents
- Introduction
- Features
- System Overview
- Software
- Hardware
- Expansions and Upgrades
- Risks and Contingency Plans
- Questions
3Laser Choreographer 2500FX Overview
- Designed to aid the in choreography of large
groups of performers - Projects laser dots to represent the location of
each performer at any time in a show - Includes software to write the choreography and
control the projector
4Laser Choreographer 2500 FXSystem Overview
5Laser Choreography PC Software Goals
- To be able to input data from a standard drill or
choreography sheet into the program in a natural,
easy-to-understand way - To be flexible and extensible to accommodate the
extending of the scope of the hardware - To generate a compiled and optimized set of point
data to send to the projection system, supporting
such features as animation
6Laser Choreography PC Software Goals
7Laser Choreography PC Software Backend Base
Classes
- Common Functions to the Base Classes
- Constructor
- Destructor
- Recursively deletes all of the members of its
children when called - addChild()
- Instantiates a new child class, adds a pointer to
the child pointer array, and returns a pointer
to the new child
8Laser Choreography PC Software Backend Base
Classes
- More Common Functions of the Base Classes
- removeChild()
- Deletes the child specified, which in turn causes
everything under that child to also be destroyed,
preventing memory leaks - visitor()
- The heart of the compiler. Recursively steps
through all entire tree, grabbing the appropriate
information from each node. This information is
then parsed, and printed out in the desired
format.
9Laser Choreography PC Software Backend Base
Classes Hierarchy
10Laser Choreography PC Software Backend Code
Example
- cShowcShow()
-
- // The page is removed, so kill all of its
- // children mercilessly
- // NOTE If all goes well, calling the
- // destructors of the children pages
- // should propagate down to include all
- // dots and formations as well as the
- // member pages
-
- for(int i 0 i lt pageCount i)
- delete pagesi
11Laser Choreography PC Software Backend Code
Example
- int cPagevisitor()
-
- int returnCode
- // COMPILER Print out any page information
- // in this section
-
- printf("Page\n\n")
-
- // COMPILER END
- // Call the visitors of all the children
- returnCode visitForms()
- return returnCode
12Laser Choreography PC Software Backend Code
Example
- int cPagevisitForms()
-
- // Iterate through the children, calling their
// visitors -
- for(int i 0 i lt formCount i)
- formsi-gtvisitor()
-
- return 1
13Laser Choreography PC Software Backend Looking
Forward
- Children classes should only be created by their
parent class, and can therefore retain a pointer
to the class that they were spawned from. This
helps in various front-end tasks, such as
clicking on a dot, and determining which
formation it belongs to - The visitor allows for very quick and easy
changes to the compiled file. Data can either be
printed on the fly, or collected into a new data
structure to be sorted to best suit the
constraints of the hardware - For the formations, all the drawing functions
were made as general parametric curve drawing
functions, and thus can be used for both the
backend and the front-end GUI drawing routines,
to ensure consistency
14Laser Choreography PC Software Schedule
- Right now, we have a fully functioning software
package, able to choreograph shows, as well as
create the compiled output files for the Laser
Choreographer to read in and project on the field - Next phase of the project GUI construction to
make these data structures easy to manipulate for
the end user
15Laser Choreography PC Software Schedule
16Laser Choreographer 2500FX Embedded Systems
Hardware
- Hardware Components
- MC68000 CPU
- MC68881 FPU
- AMD 27C512 EPROM x2
- KM681000ALP-7 SRAM (128K) x2
- Max 233 RS232 Transceiver
- National 16550 UART
- Spartan XCS10 FPGA
- Xilinx XC18V256 EEPROM
17Laser Choreographer 2500FX Embedded Systems
Hardware
- Parts List
- 2 Banana Plug Sockets
- 1 9-pin female serial connector
- 1 power bus strip
- 1 74HC14 Logic Inverter
- 1 push button switch
- 1 68 pin PGA socket
- 10 20-pin sockets (DIP)
- 2 28-pin sockets (DIP)
- 2 32-pin sockets (DIP)
- 1 40-pin socket (DIP)
- 1 12MHz clock generator
- 3 20-pin headers
- 6 10-pin SIPs (Isolated 4.7k)
- 10 .01 micro Farad Capacitors
- 1 220 micro Farad Capacitor
- 1 1Mohm resistor
- 1 Motorola 68000 Processor
- 1 Motorola 68881 or MC 68882 FPU
- 5 74LS245 Bus Transceiver
- 1 LM340 5V voltage regulator
- 2 AMD 27C512 EPROMs
- 2 KM681000ALP-7 SDRAM(2)
- 1 Wire Wrap Board
- 1 MAX233 RS232 Transceiver
- 1 16550 UART
18Laser Choreographer 2500FX Embedded Systems
Hardware
19Laser Choreographer 2500FX Embedded Systems
Firmware
- Boot Monitor
- Set up stack
- Test RAM
- Initialize laser device
- Initialize UART
- Start main process
- Main Process
- 3 states
- Idle
- Output Loop
- Datafile download to RAM
- Interrupts
- Input from serial device
- Reset
20Laser Choreographer 2500FX Embedded Systems
- Where are we now?
- Processor running code stored on EPROM
- nop, nop, jmp
- Working on connecting RAM and UART
- Developed plans for FPGA bus control
- Researching FPU
- Starting to develop more advanced code
21Laser Choreographer 2500FX Project Schedule
Embedded
22Laser Choreographer 2500FX FPGA Embedded Systems
- Bus Master Functionality
- We use a state in the state-machine to act as a
bus controller - Allows for easy chip select
- Prevents other devices from picking garbage off
the bus
23Laser Choreographer 2500FX FPGA Embedded Systems
- CPU sends a 4 bit address to FPGA
- This address is decoded and using One-hot
encoding one of the 16 peripheral chips will be
enabled - Short delay is inserted to stall clock to allow
proper propagation time
24Laser Choreographer 2500FX FPGA Embedded Systems
- Boundary Scan circuit to enable reprogramming of
Xilinx XC18V256 - Address Decoder Chip Selection
25Laser Choreographer 2500FX FPGA Embedded Systems
- Simulation of Address Decoder
26Laser Choreographer 2500FX Optical Systems
Overview
27Laser Choreographer 2500FX FPGA Optical Systems
Driver
- Scanner Interface
- Buffers angles and passes them to driver circuit
when mirrors ready to be positioned - Photogate Interface
- Opens or closes photogate based upon blanking
information received from the processor - Laser Interface
- No interface diode remains constantly on
28Laser Choreographer 2500FXOSD State Machine
- Four states
- Rest No motion of the mirrors, photogate closed.
The projector is in this state whenever not
actively projecting a page or animation. - DrawNone Mirrors moving to the next dot
location, photogate closed. The projector is in
this state between projecting dots - DrawDot No motion of the mirrors, photogate
open. The projector is in this state only in the
instant a dot is being placed on the field. - DrawLine Mirrors moving to the next dot
location, photogate open. The projector is in
this state whenever a label is being drawn.
29Laser Choreographer 2500FXOSD State Machine
30Laser Choreographer 2500FX Project Schedule - FPGA
31Laser Choreographer 2500FX Optical Positioning
System
- GSI Lumonics G325DT Scanners in an XY
configuration - 25 degrees optical excursion
- 35 uA/degree Position detection sensitivity
- A660 Driver Board
- Ideally can find used components
- Have full schematics to build our own, if
absolutely necessary
32Laser Choreographer 2500FX Projection Mathematics
- Determine exact location and orientation of
projector relative to field - Use vector subtraction to generate projection
vectors - Calculate direction cosines and send to scanner
33Laser Choreographer 2500FX Projection Mathematics
P
PB
qPAB
A
AB
B
C
34Laser Choreographer 2500FX Projection Mathematics
35Laser Choreographer 2500FX Project Schedule -
Optics
36Laser Choreographer 2500FX Power Systems
- All ICs are currently running off of a 9 Volt
source - Simplifies power requirements
- Individual ICs provided either 3.3V or 5V via
voltage regulators - Scanner driver board may require unusual
voltages, such as /- 22VAC or /- 35VAC
37Laser Choreographer 2500FX Power System
Schematic
38Laser Choreographer 2500FX Power System Parts
- C1 - 14000uF or 10000uf 40 VDC Electrolytic
Capacitor - C2 - 100uF 50Vdc Electrolytic Capacitor
- C3 - 0.1uF Disc Capacitor
- C4 - 0.01uF Disc Capacitor
- R1 - 5K Pot
- R2 - 240 Ohm 1/4 W Resistor
- U1 - LM338K 1.2 to 30 Volt 5 Amp Regulator
- BR1 - 10 Amp 50 PIV Bridge Rectifier
- T1 - 24 V 5 Amp Transformer
- S1 - SPST Toggle Switch
- MISC - Wire, Line Cord, Case, Binding Posts
39Laser Choreographer 2500FX Backup Power System
- Goal is to maintain information stored in RAM
when device is powered off - Show data
- Calibration Information
- Ideally will use large capacity rechargeable
battery for long duration
40Laser Choreographer 2500FX Project Schedule -
Power
41Laser Choreographer 2500FXRisks and Contingencies
- Optical Systems
- Risk Finding affordable, suitable scanner
- Contingency March 11th deadline to obtain
scanner before falling back on stepper motors - Risk Interfacing to the scanner with Team
ThunderForce built driver board - Contingency Try to locate used board through GSI
Lumonics
42Laser Choreographer 2500FX Questions
- PC Software
- Nick
- Embedded Systems
- Jeremy
- FPGA
- Lars
- Optical Systems
- Matt and Lars
- Laser
- Quinton
- Power
- Quinton
- Projection Mathematics
- Matt