Critical Design Review Laser Choreographer 2500 FX Team

  • Slides: 42
Download presentation
Critical Design Review Laser Choreographer 2500 FX Team Thunder. Force February 26, 2004

Critical Design Review Laser Choreographer 2500 FX Team Thunder. Force February 26, 2004

Table of Contents Introduction Features System Overview Software Hardware February 26, 2004 Expansions and

Table of Contents Introduction Features System Overview Software Hardware February 26, 2004 Expansions and Upgrades Risks and Contingency Plans Questions

Laser Choreographer 2500 FX Overview Designed to aid the in choreography of large groups

Laser Choreographer 2500 FX 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 February 26, 2004

Laser Choreographer 2500 FX System Overview February 26, 2004

Laser Choreographer 2500 FX System Overview February 26, 2004

Laser Choreography PC Software Goals To be able to input data from a standard

Laser 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 February 26, 2004

Laser Choreography PC Software Goals February 26, 2004

Laser Choreography PC Software Goals February 26, 2004

Laser Choreography PC Software Backend Base Classes Common Functions to the Base Classes –

Laser 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 – add. Child() Instantiates a new child class, adds a pointer to the child[ ] pointer array, and returns a pointer to the new child February 26, 2004

Laser Choreography PC Software Backend Base Classes More Common Functions of the Base Classes

Laser Choreography PC Software Backend Base Classes More Common Functions of the Base Classes – remove. Child() 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. February 26, 2004

Laser Choreography PC Software Backend Base Classes Hierarchy February 26, 2004

Laser Choreography PC Software Backend Base Classes Hierarchy February 26, 2004

Laser Choreography PC Software Backend Code Example c. Show: : ~c. Show() { //

Laser Choreography PC Software Backend Code Example c. Show: : ~c. Show() { // 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 < page. Count; i++) delete pages[i]; } February 26, 2004

Laser Choreography PC Software Backend Code Example int c. Page: : visitor() { int

Laser Choreography PC Software Backend Code Example int c. Page: : visitor() { int return. Code; // COMPILER: Print out any page information // in this section printf("Page: n=====n"); // COMPILER END // Call the visitors of all the children return. Code = visit. Forms(); return. Code; } February 26, 2004

Laser Choreography PC Software Backend Code Example int c. Page: : visit. Forms() {

Laser Choreography PC Software Backend Code Example int c. Page: : visit. Forms() { // Iterate through the children, calling their // visitors for(int i = 0; i < form. Count; i++) forms[i]->visitor(); return 1; } February 26, 2004

Laser Choreography PC Software Backend – Looking Forward Children classes should only be created

Laser 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 February 26, 2004

Laser Choreography PC Software Schedule Right now, we have a fully functioning software package,

Laser 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 February 26, 2004

Laser Choreography PC Software Schedule February 26, 2004

Laser Choreography PC Software Schedule February 26, 2004

Laser Choreographer 2500 FX Embedded Systems Hardware Components – – – – MC 68000

Laser Choreographer 2500 FX Embedded Systems Hardware Components – – – – MC 68000 CPU MC 68881 FPU AMD 27 C 512 EPROM x 2 KM 681000 ALP-7 SRAM (128 K) x 2 Max 233 RS 232 Transceiver National 16550 UART Spartan XCS 10 FPGA Xilinx XC 18 V 256 EEPROM February 26, 2004

Laser Choreographer 2500 FX Embedded Systems Hardware Parts List – – – 2 Banana

Laser Choreographer 2500 FX Embedded Systems Hardware Parts List – – – 2 Banana Plug Sockets 1 9 -pin female serial connector 1 power bus strip 1 74 HC 14 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 12 MHz clock generator 3 20 -pin headers February 26, 2004 – – – – 6 10 -pin SIPs (Isolated 4. 7 k) 10. 01 micro Farad Capacitors 1 220 micro Farad Capacitor 1 1 Mohm resistor 1 Motorola 68000 Processor 1 Motorola 68881 or MC 68882 FPU 5 74 LS 245 Bus Transceiver 1 LM 340 5 V voltage regulator 2 AMD 27 C 512 EPROMs 2 KM 681000 ALP-7 SDRAM(2) 1 Wire Wrap Board 1 MAX 233 RS 232 Transceiver 1 16550 UART

Laser Choreographer 2500 FX Embedded Systems Hardware February 26, 2004

Laser Choreographer 2500 FX Embedded Systems Hardware February 26, 2004

Laser Choreographer 2500 FX Embedded Systems Firmware Boot Monitor – – – Set up

Laser Choreographer 2500 FX 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 February 26, 2004

Laser Choreographer 2500 FX Embedded Systems Where are we now? – Processor running code

Laser Choreographer 2500 FX Embedded Systems Where are we now? – Processor running code stored on EPROM nop, jmp – Working on connecting RAM and UART – Developed plans for FPGA bus control – Researching FPU – Starting to develop more advanced code February 26, 2004

Laser Choreographer 2500 FX Project Schedule – Embedded February 26, 2004

Laser Choreographer 2500 FX Project Schedule – Embedded February 26, 2004

Laser Choreographer 2500 FX FPGA – Embedded Systems l Bus Master Functionality – We

Laser Choreographer 2500 FX FPGA – Embedded Systems l 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 February 26, 2004

Laser Choreographer 2500 FX FPGA – Embedded Systems CPU sends a 4 – bit

Laser Choreographer 2500 FX 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 CPU FPGA – Address Decoder EPROM RAM … February 26, 2004

Laser Choreographer 2500 FX FPGA – Embedded Systems Boundary Scan circuit to enable reprogramming

Laser Choreographer 2500 FX FPGA – Embedded Systems Boundary Scan circuit to enable reprogramming of Xilinx XC 18 V 256 Address Decoder – Chip Selection February 26, 2004

Laser Choreographer 2500 FX FPGA – Embedded Systems Simulation of Address Decoder February 26,

Laser Choreographer 2500 FX FPGA – Embedded Systems Simulation of Address Decoder February 26, 2004

Laser Choreographer 2500 FX Optical Systems Overview Laser Data Bus Optical Systems Driver FPGA

Laser Choreographer 2500 FX Optical Systems Overview Laser Data Bus Optical Systems Driver FPGA LCD Photogate Positioning System February 26, 2004

Laser Choreographer 2500 FX FPGA – Optical Systems Driver Scanner Interface – Buffers angles

Laser Choreographer 2500 FX 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 February 26, 2004

Laser Choreographer 2500 FX OSD State Machine Four states – Rest: No motion of

Laser Choreographer 2500 FX OSD 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. – Draw. None: Mirrors moving to the next dot location, photogate closed. The projector is in this state between projecting dots – Draw. Dot: 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. – Draw. Line: Mirrors moving to the next dot location, photogate open. The projector is in this state whenever a label is being drawn. February 26, 2004

Laser Choreographer 2500 FX OSD State Machine February 26, 2004 Rest Draw. None Draw.

Laser Choreographer 2500 FX OSD State Machine February 26, 2004 Rest Draw. None Draw. Line Draw. Dot

Laser Choreographer 2500 FX Project Schedule - FPGA February 26, 2004

Laser Choreographer 2500 FX Project Schedule - FPGA February 26, 2004

Laser Choreographer 2500 FX Optical Positioning System GSI Lumonics G 325 DT Scanners in

Laser Choreographer 2500 FX Optical Positioning System GSI Lumonics G 325 DT Scanners in an XY configuration – 25 degrees optical excursion – 35 u. A/degree Position detection sensitivity A 660 Driver Board – Ideally can find used components – Have full schematics to build our own, if absolutely necessary February 26, 2004

Laser Choreographer 2500 FX Projection Mathematics Determine exact location and orientation of projector relative

Laser Choreographer 2500 FX 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 February 26, 2004

Laser Choreographer 2500 FX Projection Mathematics P PB q. PAB A AB B February

Laser Choreographer 2500 FX Projection Mathematics P PB q. PAB A AB B February 26, 2004 C

Laser Choreographer 2500 FX Projection Mathematics February 26, 2004

Laser Choreographer 2500 FX Projection Mathematics February 26, 2004

Laser Choreographer 2500 FX Project Schedule - Optics February 26, 2004

Laser Choreographer 2500 FX Project Schedule - Optics February 26, 2004

Laser Choreographer 2500 FX – Power Systems All ICs are currently running off of

Laser Choreographer 2500 FX – Power Systems All ICs are currently running off of a 9 Volt source – Simplifies power requirements – Individual ICs provided either 3. 3 V or 5 V via voltage regulators Scanner driver board may require unusual voltages, such as +/- 22 VAC or +/- 35 VAC February 26, 2004

Laser Choreographer 2500 FX – Power System Schematic February 26, 2004

Laser Choreographer 2500 FX – Power System Schematic February 26, 2004

Laser Choreographer 2500 FX – Power System Parts C 1 - 14000 u. F

Laser Choreographer 2500 FX – Power System Parts C 1 - 14000 u. F or 10000 uf 40 VDC Electrolytic Capacitor C 2 - 100 u. F 50 Vdc Electrolytic Capacitor C 3 - 0. 1 u. F Disc Capacitor C 4 - 0. 01 u. F Disc Capacitor R 1 - 5 K Pot R 2 - 240 Ohm 1/4 W Resistor U 1 - LM 338 K 1. 2 to 30 Volt 5 Amp Regulator BR 1 - 10 Amp 50 PIV Bridge Rectifier T 1 - 24 V 5 Amp Transformer S 1 - SPST Toggle Switch MISC - Wire, Line Cord, Case, Binding Posts February 26, 2004

Laser Choreographer 2500 FX – Backup Power System Goal is to maintain information stored

Laser Choreographer 2500 FX – 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 February 26, 2004

Laser Choreographer 2500 FX Project Schedule - Power February 26, 2004

Laser Choreographer 2500 FX Project Schedule - Power February 26, 2004

Laser Choreographer 2500 FX Risks and Contingencies Optical Systems – Risk: Finding affordable, suitable

Laser Choreographer 2500 FX Risks and Contingencies Optical Systems – Risk: Finding affordable, suitable scanner – Contingency: March 11 th deadline to obtain scanner before falling back on stepper motors – Risk: Interfacing to the scanner with Team Thunder. Force built driver board – Contingency: Try to locate used board through GSI Lumonics February 26, 2004

Laser Choreographer 2500 FX Questions PC Software – Nick Embedded Systems – Jeremy FPGA

Laser Choreographer 2500 FX Questions PC Software – Nick Embedded Systems – Jeremy FPGA – Lars Optical Systems – Matt and Lars February 26, 2004 Laser – Quinton Power – Quinton Projection Mathematics – Matt