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

42
Critical Design Review Critical Design Review Laser Choreographer Laser Choreographer 2500FX 2500FX Team ThunderForce Team ThunderForce February 26, 2004 February 26, 2004
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

Page 1: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

Critical Design ReviewCritical Design ReviewLaser Choreographer Laser Choreographer

2500FX2500FX

Team ThunderForceTeam ThunderForce

February 26, 2004February 26, 2004

Page 2: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Table of ContentsTable of Contents

IntroductionIntroduction

FeaturesFeatures

System OverviewSystem Overview

SoftwareSoftware

HardwareHardware

Expansions and Expansions and UpgradesUpgrades

Risks and Risks and Contingency PlansContingency Plans

QuestionsQuestions

Page 3: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX OverviewOverview

Designed to aid the in choreography of Designed to aid the in choreography of large groups of performerslarge groups of performers

Projects laser dots to represent the Projects laser dots to represent the location of each performer at any time in a location of each performer at any time in a showshow

Includes software to write the Includes software to write the choreography and control the projectorchoreography and control the projector

Page 4: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500 FXLaser Choreographer 2500 FXSystem OverviewSystem Overview

Serial Interface

Jeremy

RAM

Jeremy

EEPROM

Jeremy

MC68000 CPU

Jeremy

Laser Driver

FPGA/Prepurchased

Lars

Scanners

Lars/Matt

Power

Quentin

Laser

Quentin

MC68881 FPU

Jeremy

PC Software

Operation and Choreography

Creation

Nick

Documentation

Matt

Page 5: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography Laser Choreography PC Software GoalsPC Software Goals

To be able to input data from a standard drill or To be able to input data from a standard drill or choreography sheet into the program in a choreography sheet into the program in a natural, easy-to-understand waynatural, easy-to-understand way

To be flexible and extensible to accommodate To be flexible and extensible to accommodate the extending of the scope of the hardwarethe extending of the scope of the hardware

To generate a compiled and optimized set of To generate a compiled and optimized set of point data to send to the projection system, point data to send to the projection system, supporting such features as animationsupporting such features as animation

Page 6: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography Laser Choreography PC Software GoalsPC Software Goals

Page 7: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography PC Software Laser Choreography PC Software Backend Base ClassesBackend Base Classes

Common Functions to the Base ClassesCommon Functions to the Base Classes– ConstructorConstructor– DestructorDestructor

Recursively deletes all of the members of its Recursively deletes all of the members of its children when calledchildren when called

– addChild()addChild()Instantiates a new child class, adds a pointer to the Instantiates a new child class, adds a pointer to the child[ ] pointer array, and returns a pointer to the child[ ] pointer array, and returns a pointer to the new childnew child

Page 8: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography PC Software Laser Choreography PC Software Backend Base ClassesBackend Base Classes

More Common Functions of the Base More Common Functions of the Base ClassesClasses– removeChild()removeChild()

Deletes the child specified, which in turn causes Deletes the child specified, which in turn causes everything under that child to also be destroyed, everything under that child to also be destroyed, preventing memory leakspreventing memory leaks

– visitor()visitor()The heart of the compiler. Recursively steps The heart of the compiler. Recursively steps through all entire tree, grabbing the appropriate through all entire tree, grabbing the appropriate information from each node. This information is information from each node. This information is then parsed, and printed out in the desired format.then parsed, and printed out in the desired format.

Page 9: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography PC Software Laser Choreography PC Software Backend Base Classes HierarchyBackend Base Classes Hierarchy

Page 10: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography PC Software Laser Choreography PC Software Backend Code ExampleBackend Code Example

cShow::~cShow()cShow::~cShow(){{

// The page is removed, so kill all of its // The page is removed, so kill all of its // children mercilessly// children mercilessly// NOTE: If all goes well, calling the // NOTE: If all goes well, calling the // destructors of the children pages // destructors of the children pages // should propagate down to include all // should propagate down to include all // dots and formations as well as the // dots and formations as well as the // member pages// member pages

for(int i = 0; i < pageCount; i++)for(int i = 0; i < pageCount; i++)delete pages[i];delete pages[i];

}}

Page 11: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography PC Software Laser Choreography PC Software Backend Code ExampleBackend Code Example

int cPage::visitor()int cPage::visitor(){{

int returnCode;int returnCode;// COMPILER: Print out any page information // COMPILER: Print out any page information // in this section// in this section

printf("Page:\n==========\n");printf("Page:\n==========\n");

// COMPILER END// COMPILER END

// Call the visitors of all the children// Call the visitors of all the childrenreturnCode = visitForms();returnCode = visitForms();return returnCode;return returnCode;

}}

Page 12: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography PC Software Laser Choreography PC Software Backend Code ExampleBackend Code Example

int cPage::visitForms()int cPage::visitForms(){{

// Iterate through the children, calling their // visitors// Iterate through the children, calling their // visitors

for(int i = 0; i < formCount; i++)for(int i = 0; i < formCount; i++)forms[i]->visitor();forms[i]->visitor();

return 1;return 1;}}

Page 13: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography PC Software Laser Choreography PC Software Backend – Looking ForwardBackend – Looking Forward

Children classes should only be created by their parent Children classes should only be created by their parent class, and can therefore retain a pointer to the class that class, and can therefore retain a pointer to the class that they were spawned from. This helps in various front-end they were spawned from. This helps in various front-end tasks, such as clicking on a dot, and determining which tasks, such as clicking on a dot, and determining which formation it belongs toformation it belongs toThe visitor allows for very quick and easy changes to the The visitor allows for very quick and easy changes to the compiled file. Data can either be printed on the fly, or compiled file. Data can either be printed on the fly, or collected into a new data structure to be sorted to best collected into a new data structure to be sorted to best suit the constraints of the hardwaresuit the constraints of the hardwareFor the formations, all the drawing functions were made For the formations, all the drawing functions were made as general parametric curve drawing functions, and thus as general parametric curve drawing functions, and thus can be used for both the backend and the front-end GUI can be used for both the backend and the front-end GUI drawing routines, to ensure consistencydrawing routines, to ensure consistency

Page 14: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography PC Software Laser Choreography PC Software ScheduleSchedule

Right now, we have a fully functioning Right now, we have a fully functioning software package, able to choreograph software package, able to choreograph shows, as well as create the compiled shows, as well as create the compiled output files for the Laser Choreographer to output files for the Laser Choreographer to read in and project on the fieldread in and project on the field

Next phase of the project: GUI Next phase of the project: GUI construction to make these data structures construction to make these data structures easy to manipulate for the end usereasy to manipulate for the end user

Page 15: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreography PC Software Laser Choreography PC Software ScheduleSchedule

Page 16: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Embedded Systems HardwareEmbedded Systems Hardware

Hardware ComponentsHardware Components– MC68000 CPUMC68000 CPU– MC68881 FPUMC68881 FPU– AMD 27C512 EPROM x2AMD 27C512 EPROM x2– KM681000ALP-7 SRAM (128K) x2KM681000ALP-7 SRAM (128K) x2– Max 233 RS232 TransceiverMax 233 RS232 Transceiver– National 16550 UARTNational 16550 UART– Spartan XCS10 FPGASpartan XCS10 FPGA– Xilinx XC18V256 EEPROMXilinx XC18V256 EEPROM

Page 17: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Embedded Systems HardwareEmbedded Systems Hardware

Parts ListParts List– 2 Banana Plug Sockets2 Banana Plug Sockets– 1 9-pin female serial 1 9-pin female serial

connectorconnector– 1 power bus strip1 power bus strip– 1 74HC14 Logic Inverter1 74HC14 Logic Inverter– 1 push button switch1 push button switch– 1 68 pin PGA socket1 68 pin PGA socket– 10 20-pin sockets (DIP)10 20-pin sockets (DIP)– 2 28-pin sockets (DIP)2 28-pin sockets (DIP)– 2 32-pin sockets (DIP)2 32-pin sockets (DIP)– 1 40-pin socket (DIP)1 40-pin socket (DIP)– 1 12MHz clock generator1 12MHz clock generator– 3 20-pin headers3 20-pin headers

– 6 10-pin SIPs (Isolated 4.7k)6 10-pin SIPs (Isolated 4.7k)– 10 .01 micro Farad Capacitors10 .01 micro Farad Capacitors– 1 220 micro Farad Capacitor1 220 micro Farad Capacitor– 1 1Mohm resistor1 1Mohm resistor– 1 Motorola 68000 Processor1 Motorola 68000 Processor– 1 Motorola 68881 or MC 1 Motorola 68881 or MC

68882 FPU68882 FPU– 5 74LS245 Bus Transceiver5 74LS245 Bus Transceiver– 1 LM340 5V voltage regulator1 LM340 5V voltage regulator– 2 AMD 27C512 EPROMs2 AMD 27C512 EPROMs– 2 KM681000ALP-7 SDRAM(2)2 KM681000ALP-7 SDRAM(2)– 1 Wire Wrap Board1 Wire Wrap Board– 1 MAX233 RS232 Transceiver1 MAX233 RS232 Transceiver– 1 16550 UART1 16550 UART

Page 18: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Embedded Systems HardwareEmbedded Systems Hardware

Page 19: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Embedded Systems FirmwareEmbedded Systems Firmware

Boot MonitorBoot Monitor– Set up stackSet up stack– Test RAMTest RAM– Initialize laser deviceInitialize laser device– Initialize UARTInitialize UART– Start main processStart main process

Main ProcessMain Process– 3 states3 states

IdleIdle

Output LoopOutput Loop

Datafile download to Datafile download to RAMRAM

InterruptsInterrupts– Input from serial Input from serial

devicedevice– ResetReset

Page 20: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Embedded SystemsEmbedded Systems

Where are we now?Where are we now?– Processor running code stored on EPROMProcessor running code stored on EPROM

nop, nop, jmpnop, nop, jmp

– Working on connecting RAM and UARTWorking on connecting RAM and UART– Developed plans for FPGA bus controlDeveloped plans for FPGA bus control– Researching FPUResearching FPU– Starting to develop more advanced codeStarting to develop more advanced code

Page 21: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Project Schedule – EmbeddedProject Schedule – Embedded

Page 22: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX FPGA – Embedded SystemsFPGA – Embedded Systems

Bus Master FunctionalityBus Master Functionality– We use a state in the state-machine to act as a bus We use a state in the state-machine to act as a bus

controllercontroller– Allows for easy chip selectAllows for easy chip select– Prevents other devices from picking garbage off the Prevents other devices from picking garbage off the

busbus

Page 23: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX FPGA – Embedded SystemsFPGA – 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

CPUFPGA – Address Decoder

EPROM

RAM

Page 24: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX FPGA – Embedded SystemsFPGA – Embedded Systems

Boundary Scan circuit Boundary Scan circuit to enable to enable reprogramming of reprogramming of Xilinx XC18V256Xilinx XC18V256

Address Decoder – Address Decoder – Chip SelectionChip Selection

Page 25: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX FPGA – Embedded SystemsFPGA – Embedded Systems

Simulation of Address DecoderSimulation of Address Decoder

Page 26: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Optical Systems Driver FPGA

Data B

us

Laser

LCD Photogate

Positioning System

Laser Choreographer 2500FX Laser Choreographer 2500FX Optical Systems OverviewOptical Systems Overview

Page 27: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX FPGA – Optical Systems DriverFPGA – Optical Systems Driver

Scanner InterfaceScanner Interface– Buffers angles and passes them to driver Buffers angles and passes them to driver

circuit when mirrors ready to be positionedcircuit when mirrors ready to be positioned

Photogate InterfacePhotogate Interface– Opens or closes photogate based upon Opens or closes photogate based upon

blanking information received from the blanking information received from the processorprocessor

Laser InterfaceLaser Interface– No interface; diode remains constantly onNo interface; diode remains constantly on

Page 28: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FXLaser Choreographer 2500FXOSD State MachineOSD State Machine

Four statesFour states– Rest: No motion of the mirrors, photogate closed. The Rest: No motion of the mirrors, photogate closed. The

projector is in this state whenever not actively projector is in this state whenever not actively projecting a page or animation.projecting a page or animation.

– DrawNone: Mirrors moving to the next dot location, DrawNone: Mirrors moving to the next dot location, photogate closed. The projector is in this state photogate closed. The projector is in this state between projecting dotsbetween projecting dots

– DrawDot: No motion of the mirrors, photogate open. DrawDot: No motion of the mirrors, photogate open. The projector is in this state only in the instant a dot is The projector is in this state only in the instant a dot is being placed on the field.being placed on the field.

– DrawLine: Mirrors moving to the next dot location, DrawLine: Mirrors moving to the next dot location, photogate open. The projector is in this state photogate open. The projector is in this state whenever a label is being drawn.whenever a label is being drawn.

Page 29: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FXLaser Choreographer 2500FXOSD State MachineOSD State Machine

Rest

DrawDotDrawLine

DrawNone

Page 30: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Project Schedule - FPGAProject Schedule - FPGA

Page 31: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Optical Positioning SystemOptical Positioning System

GSI Lumonics G325DT Scanners in an XY GSI Lumonics G325DT Scanners in an XY configurationconfiguration– 25 degrees optical excursion25 degrees optical excursion– 35 uA/degree Position detection sensitivity35 uA/degree Position detection sensitivity

A660 Driver BoardA660 Driver Board– Ideally can find used componentsIdeally can find used components– Have full schematics to build our own, if Have full schematics to build our own, if

absolutely necessaryabsolutely necessary

Page 32: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Projection MathematicsProjection Mathematics

Determine exact location and orientation Determine exact location and orientation of projector relative to fieldof projector relative to field

Use vector subtraction to generate Use vector subtraction to generate projection vectorsprojection vectors

Calculate direction cosines and send to Calculate direction cosines and send to scannerscanner

Page 33: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Projection MathematicsProjection Mathematics

P

A

B C

PB

AB

PAB

Page 34: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Projection MathematicsProjection Mathematics

)cos())((2)cos())((2

)cos())((2)cos()cos()cos()cos(

)cos()cos(

222

222

222

APC

BPC

APB

PCAPAC

PCBPBC

PBAPAB

APCPCAPAC

BPCPCBPBC

APBPBAPAB

PCPAPCPAACPCPBPCPBBCPBPAPBPAAB

ACPCPABCPCPBABPBPA

Page 35: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Project Schedule - OpticsProject Schedule - Optics

Page 36: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX – Laser Choreographer 2500FX – Power SystemsPower Systems

All ICs are currently running off of a 9 Volt All ICs are currently running off of a 9 Volt sourcesource– Simplifies power requirementsSimplifies power requirements– Individual ICs provided either 3.3V or 5V via Individual ICs provided either 3.3V or 5V via

voltage regulatorsvoltage regulators

Scanner driver board may require unusual Scanner driver board may require unusual voltages, such as +/- 22VAC or +/- 35VACvoltages, such as +/- 22VAC or +/- 35VAC

Page 37: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX – Laser Choreographer 2500FX – Power System SchematicPower System Schematic

Page 38: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX – Laser Choreographer 2500FX – Power System PartsPower System Parts

C1 - 14000uF or 10000uf 40 VDC Electrolytic CapacitorC1 - 14000uF or 10000uf 40 VDC Electrolytic CapacitorC2 - 100uF 50Vdc Electrolytic CapacitorC2 - 100uF 50Vdc Electrolytic CapacitorC3 - 0.1uF Disc CapacitorC3 - 0.1uF Disc CapacitorC4 - 0.01uF Disc CapacitorC4 - 0.01uF Disc CapacitorR1 - 5K PotR1 - 5K PotR2 - 240 Ohm 1/4 W ResistorR2 - 240 Ohm 1/4 W ResistorU1 - LM338K 1.2 to 30 Volt 5 Amp RegulatorU1 - LM338K 1.2 to 30 Volt 5 Amp RegulatorBR1 - 10 Amp 50 PIV Bridge RectifierBR1 - 10 Amp 50 PIV Bridge RectifierT1 - 24 V 5 Amp TransformerT1 - 24 V 5 Amp TransformerS1 - SPST Toggle SwitchS1 - SPST Toggle SwitchMISC - Wire, Line Cord, Case, Binding PostsMISC - Wire, Line Cord, Case, Binding Posts

Page 39: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX – Laser Choreographer 2500FX – Backup Power SystemBackup Power System

Goal is to maintain information stored in Goal is to maintain information stored in RAM when device is powered offRAM when device is powered off– Show dataShow data– Calibration InformationCalibration Information

Ideally will use large capacity Ideally will use large capacity rechargeable battery for long durationrechargeable battery for long duration

Page 40: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX Project Schedule - PowerProject Schedule - Power

Page 41: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FXLaser Choreographer 2500FXRisks and ContingenciesRisks and Contingencies

Optical SystemsOptical Systems– Risk: Finding affordable, suitable scannerRisk: Finding affordable, suitable scanner– Contingency: March 11Contingency: March 11thth deadline to obtain deadline to obtain

scanner before falling back on stepper motorsscanner before falling back on stepper motors– Risk: Interfacing to the scanner with Team Risk: Interfacing to the scanner with Team

ThunderForce built driver boardThunderForce built driver board– Contingency: Try to locate used board Contingency: Try to locate used board

through GSI Lumonicsthrough GSI Lumonics

Page 42: Critical Design Review Laser Choreographer 2500FX Team ThunderForce February 26, 2004.

February 26, 2004February 26, 2004

Laser Choreographer 2500FX Laser Choreographer 2500FX QuestionsQuestions

PC SoftwarePC Software– NickNick

Embedded SystemsEmbedded Systems– JeremyJeremy

FPGAFPGA– LarsLars

Optical SystemsOptical Systems– Matt and LarsMatt and Lars

LaserLaser– QuintonQuinton

PowerPower– QuintonQuinton

Projection Projection MathematicsMathematics– MattMatt