DINOLIGHT
Will Gowell, Zack Teasdale, Spencer Dennis
1
DINOLIGHT Will Gowell, Zack Teasdale, Spencer Dennis 2 CUSTOMER - - PowerPoint PPT Presentation
1 DINOLIGHT Will Gowell, Zack Teasdale, Spencer Dennis 2 CUSTOMER NEEDS The System Must: mirror colors on screen using rear LEDs in real time accept and output HD digital video signal have a plug and play setup be controllable
Will Gowell, Zack Teasdale, Spencer Dennis
1
The System Must:
2
Table 2: Engineering Requirements
Marketing Requirements Engineering Requirements Justification Marketing Requirements Engineering Requirements Justification 2, 7
60Hz standard video signal formats A 1080p video signal at 60 Hz is a standard high definition signal. 1
under 16 ms (60Hz refresh) This is the maximum rate of the input signal. 2, 3, 6
standard interface Creates ease of use for the user,
1, 2, 7
logic units to implement the desired algorithms The FPGA must have sufficient logic units to implement the color algorithms as well as registers to map super pixels to the LEDs 3
minute average installation time User will only need to plug in cables and place strips, and setup and control via web application. 3
automatically programmed by the system The FPGA must be programmed by either a support chip or the Raspberry Pi on boot. 4, 5
with 802.11 802.11 is the standard wireless communication interface used for wireless networks. 1
color be within 5% of the average RGB value of the TV pixels The backlight LEDs must have an RGB value that is within 5% in
enough.
3
an individual source pixel
Pixel Block:
a block of pixels that are used to calculate average color
LED:
what is on the back of the screen
4
5
HDMI Down Sampler
HDMI Duplicator
HDMI HDMI HDMI
FPGA Raspberry Pi NeoPixels Serial UART Web Client USB HTTP HDMI Source Screen HTTP Hue
6
Part Cost Our Cost Availability Lead Time miniSpartan6+ $105.00 $105.00 In Stock 7 Days HDMI Scaler $39.92 $39.92 In Stock 4 Weeks NeoPixels $16.95* $16.95* In Stock 5 Days HDMI Splitter $21.99 $21.99 In Stock 2 Days Raspberry Pi 3 $39.95 $39.95 In Stock 2 Days 150W PSU $35.10 $35.10 In Stock 1 Week HDMI Connectors $20.00 $20.00 In Stock 2 Days HUE System $199.99 $0 TV $175.00 $0 Enclosure ? ? Total Cost $653.90 $278.91
7
Mean Well 5v 150W PSU
8
9
miniSpartin6+
10
miniSpartin6+
11
FPGA
Pi Communication Registers HDMI DVI
AVG Pixel Mapper
Neopixel Driver
UART HDMI Neopixel
12
STANDING ON THE SHOULDERS OF HAMSTERS
for miniSpartin6+
TMDS Receiver Block
13
Accumulators
experience
each block
large 2𝑜 by 2𝑙 box
Red Green Blue
Screen
Pixel Block 1 2 3 4 5 6 7 8 15 16 17 18 19 20 21 9 11 13 10 12 14 22 23
Color Averaging Block Concept
14
mux and go to LED register
LEDs
0 - n RGB RGB RGB RGB RGB Neopixel selectReg n=numBlocks From Averager Generate 1 for each LED reg:
15
16
Color Averaging
during development
locations
Color Mapping
registers
HDMI to DVI
accommodate multiple input resolutions
17
18
Black 30 LED/Meter Neopixel Strand
19
Neopixel (WS2812B) Neopixel Serial Chain
20
𝑔
𝑠𝑓𝑔𝑠𝑓𝑡ℎ =
1 𝑂𝑣𝑛𝑞 ∗ 1.25𝜈𝑇 + 50𝜈𝑇
𝑈𝑦𝐼 + 𝑈𝑦𝑀 = 1.25𝜈𝑇 𝑈𝑠𝑓𝑡𝑓𝑢 = 50𝜈𝑇 Neopixel Protocol Timing
21
enough to keep refresh rate under 16 ms
covered length decreases
enough to avoid excessive power consumption
22
23
24
AngularJS Frontend
HTTP server
SimpleHTTPserver module
Flask Backend
25
manipulate the DOM
the DOM
JS: var dinoapp = angular.module('dinolightApp',[]); dinoapp.controller(‘dinoController’, function($scope){ $scope.value = “CE SD Rocks” });
<div ng-app=“'dinolightApp”>
<div ng-controller=“dinoController”> “My value is {{ value }}” <input ng-value=“value”> </div>
</div>
26
Frontend Webapp
27
Turn on power {op: ‘set’, what: ‘power’, to: 1} Set hue IP {op: ‘set’, what: ‘hueIP’, to: ‘10.0.1.7’} Program FPGA {op: ‘program’}
28
29
def init_command_router(self): return {'set': self.set, 'program': self.program} @app.route('/c', methods=['POST']) def command(): return str(system.processCommand(request.json)) def process_command(self, command): if 'op' in command: return self.commandRouter[command['op']](command) return 'Op not found‘ def set(self, command): if not 'what' in command: return 'Key "what" not found in command:'+ str(command) if not 'to' in command: return 'key "to" not found in command: ' + str(command) what = command['what'] to = command['to'] if what == 'power': self.power = to elif what == 'horzLeds': self.numHorzLED = to elif what == 'vertLeds': self.numVertLED = to return 'Set Success'
{op: ’set’, what: ‘power’, to: 1}
30
{ “hue” : 50000, “on”: true, “bri” 200 }
31
authenticate
stored
Need a way to connect pi to Wi-Fi
raspberry pi MAC
set WPA-config User Interface
another modern device
the initial setup
32
33
Test Writer: William Gowell Test Case Name Web app and Server communication Test ID: Description: The web app is the main source of input to the system. Make sure it can talk with the server Type: Black Box
Step
Action Expected Result Pass Fail N/A Comments 1 Open Web app URL Web app loads and opens showing current system information 2 Turn on the system The System loads last known configuration and turns on 3 Change System Configuration lets you know the changes are ready to be applied 4 Tell system to update System reboots with new configuration options 6 Let system reboot System Works, but operating under new configuration 7 Turn off system System Shuts down
Overall Test Results
34
Test Writer: Zack Teasdale Test Case Name LED Communication Test ID: Description: Ensure that the FPGA can communicate with the LEDs. Type: Black Box Name of Tester: Date: Hardware Version: Time: Setup: Connect the LEDs to the FPGA via its external pins and jumper wires. Step Action Expected Result Pass Fail N/A Comments 1 Write data to LED Correct LED colors displayed on specified LED Overall Test Results
35
Test Writer: William Gowell Test Case Name Setup Time Measurement Test ID: Description: Test how long the system takes to set up from start to finish. Type: Black Box Setup: System is not connected or set up at all; "Fresh out the box" state. Step Action Expected Result Pass Fail N/A Comments 1 Start a stopwatch Timer Starts 2 Setup system System is fully functional 3 Stop stopwatch Timer reads less than 15 minutes Overall Test Results
36
Project Planning HDL Webserver Testing
37
http://wjg9331.student.rit.edu
38