Dynamic Animation Cube Group 1 Joseph Clark Michael Alberts ...

Dynamic Animation Cube Group 1 Joseph Clark Michael Alberts ...

Dynamic Animation Cube Group 1 Joseph Clark Michael Alberts Isaiah Walker Arnold Li Sponsored by: Department of Electrical Engineering & Computer Science at UCF What is the DAC? The DAC is an array of LEDs assembled in a 16 * 16 * 16 array designed to simulate animation by producing images in 3-dimensional space in the Red, Green, Blue

color spectrum. Specifications

Cube size: Visible sides: Light Emitting Diode type: Pixel resolution: Case construction: Communication: Working temperature: Working Humidity: Working Voltage: Number of animations: 3.5 x 3.5 x 4 ft (L x W x H)

5 sides RGB 16 x 16 x 16 = 4096 Transparent acrylic USB/ SD card controller 50-104 F 10-80% AC 110V-230V 100 What hardware is required?

1 48

96 54 16 1 1 1 1 4,096 1 Microcontroller LED Drivers Resistors

Capacitors PNP transistors UART connection Computer power supply DC/DC step down voltage regulator Designed Printed Circuit board RGB common anode LEDs SDHC card

What are the hardwares functions? Store the animations that are to be displayed. Select the layer that is to be illuminated to display the animation. Provide current to the required diode to provide the desired color. What software is required?

Sprite implementation program to design the animations to be displayed on the cube. Cube operating code. What are the software functions? Sprite implementation program: o

Take the animations designed by the sure and write them into code that can be read by the microcontroller. Cube operating code: o Take the animation code written by the sprite implementation program and use it to display the desired images. How does the DAC work?

What LED driver to select? Led Driver Outputs Gray Scale Control Brightness Control

TLC59711 12 16-bit 7-bit TLC5947 24 12-bit

N/A TLC5941 16 12-bit 6-bit LT3754

16 12-bit 6-bit Error Detecti on Cost Per Driver

No $1.79 Yes $3.53 Yes $3.36 Yes

$6.07 What are the benefits of the TLC5941? 16 Channels with 6-bit Dot correction Controlled In-Rush Current Two Separate Error Information Circuits

12-Bit Pulse Width Modulation Grayscale Control Current Accuracy Stellaris LM3S8962

32-bit ARM Cortex-M3 50-MHz processor core 256 KB flash and 64 KB SRAM 42 GPIOs Bit-Banding UART Synchronous serial interface (SSI) Pulse width modulation TLC5941 LED Driver 1st PCB will contain the LED drivers Ability to arrange devices in cascade allows a single control line to transmit data to an individual array of drivers

TLC5941 LED Driver 2 control lines per color o Best way to ensure that ideal amount of frames per second were displayed Surface mount Vs. Dip

Surface mount takes up significantly less space than dip A major factor in PCB design because 48 TLCs will be used to drive the LEDs LED Lattice 5cm pitch This allows for the best possible viewing orientation If LEDs are too close together it would be impossible to see through the cube

Arranged in a 16 x 16 x 16 architecture An RGB LED is actually three separate LEDs inside one "bulb" One common anode, three common cathodes Layer Select 2nd PCB will contain the Stellaris Stellaris uses 16 GPIOs to control which layer is

selected. Sends output to array of transistors on separate PCB Layer Select 3rd PCB will contain the layer select transistors Transistors Receive Layer Select From MCU Output goes directly to layer 0 through 15 Displaying Images

MCU sends data serially to the array of TLC5941s 2 input lines per color Other signals sent: o Latch o Output Enable o Input Clock

o PWM Clock Displaying Images Data received by drivers Held in internal registers until latch signal received Displaying Images

Layer is selected; states of LEDs are displayed Layer is turned off; Data is erased from the TLC Repeat Process 16 times for one frame Current Requirements Maximum current draw of the LEDs is determined by assuming all LEDs in one layer are turned on at a single instant: o A single LED needs 20 mA of current to be in the on state o There are 256 LEDs per layer, if all LEDs are lit that is 5.12 A drawn. We will use a 5V computer power supply to step down to 3.3 V for the Stellaris Minimum current:

48 mA (Stellaris) + 3 x 50 mA (LED driver) + 0 x 20mA (LEDs) = .198 A 10% Maximum current: 48 mA (Stellaris) + 3 x 50 mA (LED driver) + 256 x 20mA (LEDs) = 5.318 A 10% Multiplexing Almost all LED cubes rely on persistence of vision. An entire image is made up of 16 layers Impractical to light up all 16 layers at once as we would need 4000+ IO ports 1 Frame:

a. Layer 0 is switched on for a short duration, a section of the image is displayed, then switched off b. Repeat for all 16 layers Multiplexing Persistence of Vision The effect is that the image is perceived as a whole by the viewer as long as the entire path is completed during the visual persistence time of the human eye. Our goal is to produce a 24 frame/second animation One image requires:

16 layers x 24 frames /sec = 384 layer selects/sec Almost all LED cubes rely on persistence of vision. Pulse Width Modulation Without PWM the cube could only display red, green, or blue for each LED With PWM there are thousands of colors to choose from

This is done by adjusting the brightness of each individual LED diode in a particular bulb o This allows the cube to turn on multiple colors without drawing too much current PWM is performed by the LED drivers Each output can have a value of 0 to 4096 because the length of a single output from the TLC is 12 bits Color Wheel phase < colorWheelLength/3 r = maxBItColor x sin( x phase / (2 *colorWheelLength/3)) g=0

b = maxBitColor x cos( x phase / (2 *colorWheelLength/3)) phase < 2 * colorWheelLength/3 r = maxBitColor x cos( x (phase - colorWheelLength/3) / (2 *colorWheelLength/3)) g = maxBitColor x sin( x (phase - colorWheelLength/3) / (2 *colorWheelLength/3)) b=0 phase < colorWheelLength r=0 g = maxBitColor x cos( x (phase - 2 *colorWheelLength/3) / (2 *colorWheelLength/3)) b = maxBitColor x sin( x (phase - 2 *colorWheelLength/3) / (2 *colorWheelLength/3))

red(phase) = 0 <= phase < colorWheelLength/3 red(0) = maxBitColor x sin(0) red = 0 - no red red(colorWheelLength/3) = maxBitColor x sin(/2) red = maxBitColor - max red Animations The LEDs will be controlled using an animation file The color and location of which LEDs will be lit will be determined by the animation

file SD Card will hold the animations Two Types of Animation Sprite based Function based Sprite Animations

Sprite based animations use the concept of sprites A group of images are displayed in sequence to make an animation This is done fast enough to create the sense of motion They will each have a specific number of frames and a specified frame delay Function Animations

Used for the more random based animations or animations with a strict pattern Such as a rain animation or moving cubes in a set pattern They will each have a set parameters and a duration Creating Animations Sprite based animations will be created using a standalone program that will

produce file that can be read from the SD Card Function based animations will be functions already defined and given variables from the SD Card Displaying Animations Class Diagram Interrupt Service Routine The cube will have one ISR Its only job is to read the SD Card to

display the animations Will simply loop through all the data on the SD Card forever What is the budget? Components Cost per piece # of pieces Total

LED Drivers $3.36 48 Sampled Microcontroller $14.19 1

Sampled LED $0.14 4,300 $602.00 PCB

TBD 2 TBD Resistors & Capacitors $0.10-$0.20 128

$48.49 UART $0.76 1 Sampled PNP Transistors

$0.82 16 $13.12 Total $664.10 The University of Central Florida Department of Electrical Engineering & Computer Science has provided the group with an endowment of $1,000 for the completion of this project.

How far are we? What is our time line? Obstacles

The cube will be 16 x 16 x 16 Size of the cube Prototype didn't work Stellaris MCU Testing LEDs Time Problems to be solved

Image storage o 24 fps / (144 fpg * 2gig) = 12 sec of animation o Use another storage medium? o 2 gig partitions? How to select? o USB to Synchronous Serial Interface (SSI)? Questions?

Recently Viewed Presentations

  • Government Response to the Great Depression

    Government Response to the Great Depression

    Bennett's New Deal (1935) Based on FDR's New Deal. Called for: Taxes based on income . Max. # of hours in work week. Min. wage. Regulation of working conditions. Unemployment insurance. Health and accident insurance. Support for farmers and seniors....
  • Comprender y producir textos: los aportes de la Teoría de la ...

    Comprender y producir textos: los aportes de la Teoría de la ...

    Comprender y producir textos: los aportes de la Teoría de la Enunciación ¡DESCOCADA! ¡SEXY DE PORQUERÍA! TEORÍA DE LA ENUNCIACIÓN Antecedentes: carácter dialógico y heteroglósico del lenguaje (Bajtín, 1979) Benveniste (1966, 1974): la enunciación consiste en la apropiación que el...
  • IDE Review - College of Information and Computer Sciences

    IDE Review - College of Information and Computer Sciences

    IDE Review BlueJ NetBeans Eclipse Namespace, Package, Classpath baseDir/x baseDir/x/y baseDir/x/y/z If class X is defined as below, which directory should it be in?
  • HDF-EOS Subsetting: HEW and other tools HDF and

    HDF-EOS Subsetting: HEW and other tools HDF and

    Presented by Steve Tanner University of Alabama in Huntsville, Information Technology and Systems Center SUBSET.ORG Agenda Subsetting HDF-EOS Web-based subsetter (HEW) HEW Subsetting Appliance: Integration with ECS HSE: A new Subsetting Engine Software availability options HEW Demonstration ...
  • Cross-domain library schemes in Wales

    Cross-domain library schemes in Wales

    Cross-domain co-operative library schemes in Wales (CyMAL Project) Eileen Tilley Feb 2005
  • Veterans and Villains: Oral History and Penological Research

    Veterans and Villains: Oral History and Penological Research

    Seeking Recognition? Desistance, Rehabilitation and Restorative Justice Fergus McNeill [email protected] Twitter: @fergus_mcneill Desistance A process of personal, human development That takes place in and is shaped by its social and cultural contexts; hence also a social transition That involves movement...
  • Web 2.0 Presentation

    Web 2.0 Presentation

    Twiducate provides a unique educational communication and learning outlet for students through enaging interaction and madern themes. Sheridon's Prezis create real-time learning through providing interaction in typical presentations. The Prezi presentations allow instructors to jump from ...
  • Chapter 1 Information Technology: Principles, Practices, and ...

    Chapter 1 Information Technology: Principles, Practices, and ...

    Physical Network Transport Technology Five Types of Transport Technology (Continued) Physical Network Transport Technology Five Types of Transport Technology Wireless Communications Networks Cellular Communication Service Cellular Communications Service: A wireless technology that transmits radio messages between a mobile device (such...