Home
        Senior Design II Documentation - University of Central Florida
         Contents
1.                                                                      2 Out 2 Current Output to LED   3 Out 3 Current Output to LED   4 Out 4 Current Output to LED   5 Out 5 Current Output to LED   6 Out 6 Current Output to LED   7 Out 7 Current Output to LED   8 Out 8 Current Output to LED   9 Out 9 Current Output to LED   10 Out 10 Current Output to LED   11 Out 11 Current Output to LED   12 Out 12 Current Output to LED   13 Out 13 Current Output to LED   14 Out 14 Current Output to LED   15 Out 16 Current Output to LED   16 XERR Error Output  Low   Error   17 SOUT Serial Data Output   18 GSCLK Reference Clock for PWM Control  Dot Correction Switch   19 DCPRG Low   DC Connected to EEPROM  High   DC Connection to DC Register   20 IREF Reference Current Terminal   21 VCC Power Input Terminal   22 GND Ground  Turns all outputs on or off   23 BLANK Low   Outputs are controlled by PWM  High   All outputs forced off  GSCLK is reset  Latch Signal  Low   Data in registers held constant     ALAT High   writes from shift register to DC or GS  register   25 SCLK Serial Data Shift Clock   26 SIN Serial Data Input  Input Pin  GND   Controller is in GS Mode   27 VPRG VCC   Controller is in DC Mode  V vprg    DC register data can be programmed  into DC EEPROM   28 Out 0 Current Output to LED       Table 5 1 2 1 TLC5940 LED Controller Pin Information    To cascade the controllers together requires the SIN and SOUT pins to be wired  together in series  Meaning the SOUT from one controller wa
2.             HA  iv H    i       Figure 7 5 7b  Text Display    Basic RGB Cycle Test  The basic RGB cycle test is a test very similar to the  Basic Cycle Test used on the prototype display  It is a base line for determining if  the RGB array has been correctly wired up and Is functioning properly  In this  test  each color in each LED Is flashed sequentially until reaching the last LED   and then starting back over with the first LED     Mm 114    Cascaded RGB Array Test  This test was intended to determine if any issues  arise when cascading several RGB PCB modules together  Although each  module already contains 3 LED controllers cascaded  this test verifies that the  data correctly passes through the entire module  and that the share controlled  signals also pass through  Additionally  this test was used to determine whether  or not any problems would arise from having too many controllers cascaded and  how it would affect the update rate of the display  With two modules attached  together  data is being written to 6 LED controllers  Initially upon testing this  configuration the grayscale clock signal and SPI data writing speed was not set  high enough to accommodate 6 controllers  For the text array  operating at 5  MHz for each was sufficient  however after testing we determined that at least 10  MHz is required when updating 6 LED controllers  The code for this test is the  basic RGB cycle code with the NUM_TLCS variable set to 6  After having fixed  the timing issues  
3.            sssesseessseseeeeee 14  Figure 4 2 1 2 b Resistor circuit providing 16 colors from 4 inputs          00ssenneen  14  Figure 4 2 1 2 c VGA timing for V SYNC and H SYNC windows  14  Figure 4 2 1 2 d Precise Timing Specifications for VGA Display Modes              16  Figure 4 2 2 1 TMDS Input Howchart   ue 19  Figure 4 2 3 1 Example of image shown in 4 bit and 8 bit color depth                 20  Figure 4 2 3 4 a NTSC and PAL Calc  for Luminance and Chrominance             22  Figure 4 2 3 4 b Method for Interpolating Chrominance Values             sesssssnnenee 22  Figure 4 3 1 OVS 33 Pin Joere  deeg gtdeeuge Eed deg ge 24  Figure 4 3 1 2 Latch control Implementation           rnnrrrrrnnnnnnnnrnnnnnrrrrnnnnnnnnrrrnnnnnnn 26  Figure 4 4 1 Data EE 27  Figure 4 4 2 2 2 Model 205 Rotary Joint for Rotary Intertaces ee 32  Figure 4 4 3 1 1 Infrastructure Ad hoc Comparson        sssessesseeeeeseeeeeerrereeereeeeee 36  Figure 4 7 1 a Software Development Life Cycle     Waterfall Model                   46  Figure 4 7 1 b Use case diagram for GU  47  eieiei ET 55  Figure 5 1 Hardware Flow Ghatt    mu  menemusmmsmmngsnmnmumigunimsmis 56  Figure 5 1 1 4a Bearing Aesembhy EEN 59  Figure 5 1 1 4b Chassis Base Assembly         rrrrrrnnnnnnrrrnnnnnnnnnvnnnnnnrrnnnnnnnnnnnnnnnnnnn 60  Figure 5 1 1 4c Chassis Base Assembly nn 61  Figure 5 1 1 6a  Simplified LED Support Frame for Torque Calculations             62  Figure 5 1 2 1a TLC5940 LED Controller Pin Out    63  Figure 5 1 2 1
4.           essssssseeeneeeeeerereeen 82  Table 5 2 1 3a  The Translate Frame Loop        2snrnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 83  Table 5 2 1 3b Range of pixel data as it is stored in Memory                 cceeeeeeees 84  Table 5 2 1 4 Header Jeteggattont  ege ee 88  Table 10  Bill of Materials                   cccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeess 124    1 Executive Summary     Persistence of vision is a phenomenon that has motivated engineers for years to  create a variety of inventions  This has not changed even to this day  There are  still devices using this visual trick being constructed with a wealth of internet  examples available to show for it  These spinning devices that utilize LEDs to  create the illusion of one solid image come in a variety of shapes and sizes from  spheres and discs  to cylinders     2 Project Description     This chapter encompasses the motivations for why we chose one of these  devices as our project  It also touches on the objectives or goals for this project   and the specifications for the device that we implemented     2 1 Motivation     The construction of these devices encompass a large spectrum of computer and  electrical engineering knowledge from embedded systems and electronics  to  digital systems processing and even electric machinery  Which our team felt  allowed us to effectively test and display our grasp of knowledge     In the case of our group project  when determining which of our grou
5.     Sensor PCB         IR LED A  Sender    IR LED B  Reciever           infrared Light Reflected Light    Reflective    Surface       Figure 5 1 4a Display Alignment Sensor Flow Chart    The microcontroller uses this signal as a hardware interrupt which is further  outlined in the software section of the project     There are two circuits we used to implement this design  The first circuit   displayed in Figure 5 1 4b  is the sending circuit  As seen in this circuit we used  the LM358 op amp to implement this circuit  In this case a 5 volts Vin and Vcc is  required to power the circuit  The minus terminal of the op amp reads about 2 5  volts  The CTRL line was connected to the rotating microcontroller and in  essence was always set to high when the device needed to align the display   This high value was around 2 5 volts or more and caused the output of this op   amp to go high  between 2 7 3 6 volts  which turned the infrared LED on and  caused it to begin sending signals     This signal as stated above was sent to an aluminum plate that the circuit passed  over and reflected off the plate and into another circuit connected in parallel with  the sending circuit  Both IR LEDs were place next to each other on the housing    mm 7    PCB so that they could better send and receive signals  The second circuit that  was implemented in our design is this receiving circuit  seen in Figure 5 1 4c     OG  O   gt   300                 A O  S S D  Ri IR LED  ik  CTRL 11  LM358 R3 e  A 2N
6.     a wall outlet which is most likely rated for 15 to 20 amps into the POV display  a  good design criterion would be to protect the POV display from potential damage  caused by surge in current  Over current can occur anytime there is a short  circuit and since we will be most likely working with a metal chassis  adequate  protection against short circuits should be taken     Currently two commonly used forms of over current protection are available   fuses and circuit breakers  One disadvantage fuses have compared to circuit  breakers is once fuses are used or blown  they must be replaced with a new  fuse  In the case of circuit breakers  the breaker only needs to be reset and not  completely replaced  However  the upfront cost of circuit breakers generally is  greater than the initial cost of fuses  Two additional advantage fuses have over  circuit breakers is their size tends to be smaller than circuit breakers and the  flexibility to easily change a fuse to a higher or lower current rating without the  need to re wire any equipment  Therefore  we would focus our research on  available fuse blocks or holders and fuses     4 1 1 1 1 Fuse Blocks and Fuses for Circuit Protection     Cooper Bussmann is a well known and commonly used manufacturer of fuse  blocks  The Bussmann Type BC and BCCM Series Class CC fuse blocks offer a  compact but reliable solution for fused circuit requirements  The BC and BCCM  series fuse blocks accept Class CC size fuses  As well  the fuse block
7.    Motor and Chassis       Microprocessor  80 MHz  5V   512K Flash  32K SRAM          Motor  DC  Permanent  201 9FHD7 Dayton Magnet  90 Volts  1 5A  1  0 49 N m Torque  1800 RPMs   Regenerative Drive Chip   115 230 AC  Permanent                               a KOPRAD   RE Magnet or Field Wound      Motors  _   Bearing  Extended Ring Type  203 noom   Master   ER  rated for 3 145 dynamic   1  load pounds and 5 000 RPMs  204 Custom KEMCO Custom Aluminum Metal to    Metal Work   Industries   include top plate  base plate    Mm 122                                                                                           and support rods   LED Arra  301 OVS 3309 Multicomp   LED  Type OVS  RGB  SMD 48  302 TLC5940 TI LED Controller  16 Channel 7  303 TLC5940NT   TI LED Controller  16 Channel 2  304   Multicomp   LED  Green 20  Components  Radio f  401   Shack Resistor  1 KQ 4  Radio    402   Shack Resistor  300 Q 1  Radio i  403   Shack Resistor  3 8 kQ 1  Radio f  404   Shack Resistor  50 Q 1  Radio    405   Shack Trimmer  10 kQ 1  Radio  406   Shack LED  Green 1  Radio    407   Shack Resistor  2 2 kQ 6  408   Vishay Resistor  100 Q 144  Radio    409   Shack Trimmer  5 kQ 1  Radio    410   Shack Switch  SPST 1  Radio  411   Shack LED  Infrared 2  Miscellaneous Equipment  Adapter  AC to DC  Variable   501   enercell 3 3 7 5V 1  502 i Ker Adaptor  AC  SPST Switch     on off  503   enercell Battery  9V 1  Radio  504   Shack DC Plug 1  Home    505   Depot Zip Ties    506 Jen Metal Clam
8.    P 2 0   P 638 0    FIN 115200   P 0 239  P 2 239  P 638 239   P 0 0   P 2 0   P 638 0    1  AA BLU   230400 _   P 0 239  P 2 239  P 638 239   AB RE P 0 240   P 2 240   P 638 240    if 345600   P 0 479  P 2 479  P 638 479   AB_GR P 0 240   P 2 240   P 638 240     IN 460800   P 0 479  P 2 479  P 638 479   P 0 240   P 2 240   P 638 240    1  AB BLU   576000   P 0 479  P 2 479  P 638 479   BA RE P 1 0   P 3 0   P 639 0    2 D 691200   P 1 239  P 3 239  P 639 239   BA GR P 1 0   P 3 0   P 639 0    2 N 806400   P 1 239  P 3 239  P 639 239   P 1 0   P 3 0   P 639 0    2   BA BLU   921600   P 1 239  P 3 239  P 639 239   BB RE P 1 240   P 3 240   P 639 240    of 1036800   P 1 479  P 3 479  P 639 479   BB_GR P 1 240   P 3 240   P 639 240    2 IN 1152000   P 1 479  P 3 479  P 639 479   P 1 240   P 3 240   P 639 240    2   BB BLU   1267200   P 1 479  P 3 479  P 639 479           Table 5 2 1 3b Range of pixel data as it is stored in memory    The TranslateAndOutput   function starts by obtaining the two pixels values  adjacent to each other in the same column  Table 5 2 1 3c shows pixel one and  two on the left side of the image  Three combined Grayscale values are then  obtained for each color  red  green  and blue from those two pixels  A combined  Grayscale value is a 3 byte data structure than contains two 12 bit Grayscale  values that have been melded together  The 3 byte combined Grayscale values  are then written to memory  stored in their appropriate bin  and following that the
9.   User Text Text Message    Input Filter    GUI OR    Formatted Output gt  Wi Fi    User Image  gt   Image Filter      Input    Figure 5 2 3 Pipe and Filter Software Architecture       The GUI was designed using Java in the Netbeans IDE  This IDE was chosen for  its robust GUI editor which allowed us to quickly create an interface before  completing any coding  Designing the interface first also helped to serve as an  outline to facilitate the implementation  Creating the first visual draft of the GUI   s  appearance was the next step in the design  We considered the detailed designs  involved in both sending a text message and sending an image in order to create  a draft of the GUI   s appearance     5 2 3 1 Text Message Input     According to the requirements there should be either a single multi line text box   or multiple text boxes to accommodate multiple lines of text entry  We chose to  have multiple text boxes  Near the text input areas we included the color options   which include preset colors as well as user defined colors  These colors will be  applied to the entire text message  The current GUI design for text input is shown  in Figure 5 2 3 1  This design takes all of the previously mentioned requirements  for text input into consideration     The text input will be stored in a character array  The character array will contain  a pre set length of characters  We chose to have 7 characters available for each  line  which means the character array sent will be 14 
10.   and Wi   Fi   Http   eee guc edu eg  Web    lt http   eee guc edu eg Announcements Comparaitive_Wireless_Standa    rds pdf gt       Digilent Inc    Atlys Spartan 6   Digilent Inc  Web    lt http   www digilentinc com Products Detail cfm NavPath 2 400 836 gt      125 E     Digilent Inc    VMOD BB   Digilent Inc  Web    lt http   www digilentinc com Products Detail cfm NavPath 2 648 847 gt       Effects of Mobile Rotational Movements in Wireless Propagation Channels    Http   ieeexplore ieee org  Oct  2008  Web    lt http   ieeexplore ieee org xpl login jsp reload true amp tp  amp arnumber 463  5902 amp url http 3A 2F 2Fieeexplore ieee org 2Fxpls 2Fabs all jsp   3Fisnumber 3D4635901 26arnumber 3D4635902 gt       HANDBOOK OF WIRELESS NETWORKS AND MOBILE COMPUTING    Http   www nettech in  Web    lt http   www easybib com cite edit 134383789490cd7ed2 3cfb 42ec   8f8c d156a560a67a gt       How Bluetooth Works   HowStuffWorks  Web      lt http   www howstuffworks com bluetooth htm gt       How WiFi Works   HowStuffWorks  Web      lt http   computer howstuffworks com wireless network htm gt       IEEE 802 11   Wikipedia  Wikimedia Foundation  31 July 2012  Web    lt http   en wikipedia org wiki lEEE 802 11 gt       ImagelO  Java 2 Platform SE V1 4 2    Docs oracle com  Web    lt http   docs oracle com javase 1 4 2 docs api javax imageio ImagelO ht    ml gt       ImageReader  Java 2 Platform SE V1 4 2    Docs oracle com  Web    lt http   docs oracle com javase 1 4 2 docs api javax 
11.   confirming its receipt  UDP is often used for real time systems where losing a  packet is preferable to waiting on it  which might make it lend itself better to our  application  This would require that we handle the scenario losing a packet  appropriately at the application level however  although ideally there will not be  any packet loss  Packet loss is unlikely because our two systems are connected  back to back via cross over Ethernet cable  and the communication is limited to  those two systems  A UDP packet consists of a header which contains the  source port number  destination port number  length  and a checksum  all of  which is followed by the actual data     4 4 2 3 1 Ethernet Software Library     The stationary FPGA would have communicated with the rotating FPGA using  Ethernet wired communications  In this section we will be considering how the  Ethernet communications work  This includes software library identification  and  protocol selection  Software library identification for the FPGA was more  challenging than expected  The Atlys board was expected to come with built in  Ethernet functionality but it seems that this is not the case  Xilinx offers software    33 BE    in the form of Intellectual Property  IP  cores to support Ethernet communications  but this core is not free  Licensing fees would cost us over  1 000  To keep the  costs of this project low we searched for alternate solutions  There is a website  opencores org which has open source    core
12.   of LEDs and wide ranges of colors  This would also allow us to create simplistic  to complex animations for the device that would draw people s attention     These devices are also extremely scalable  We wanted to make the device easily  programmed and accessible to both the experienced and inexperienced  This  would allow someone experienced with programming to make a variety of their  own custom displays and animations on the device  Someone inexperienced with  programming would be capable of inputting various functions such as text inputs  for banners  Both of these functions are excellent for sponsorship since they  allow the user to easily set the device for any advertisement they desire     Portability is obviously a concern for organizations that are advertising at booths  or displays  These devices are extremely portable and our design is to not only  make it portable but outlet friendly allowing you to plug it in to any standard  outlet     2 1 2 Skill Sets     With a group made up of two students of electrical engineering and two students  of computer engineering  we wanted a project that adequately displayed all of our  skill sets  This project not only has a significant level of electrical design in both  advanced and intermediate levels of electrical engineering but it has a significant  level of both advanced and intermediate levels of programming and computer  architecture requirements  This means that all four of the team members working  on the project woul
13.   output pointers are incremented by 3  Figure 6 1 4 6 shows how the combined  Grayscale values are stored in memory as they are output                       Pixel 1 Address   12 Bit Grayscale e i       4 e 115199  RITT L      i       And  sc  Combined GS 3 Bytes Combined GS 3 Bytes  g  TF j GsPuei 00    GSPxel 0 1   GSPuel 02    GSPuel 03   Pixel 2  12 Bit Grayscale               e i   SSS SS        g TF HEFTE   S         geen  1 Bye    Figure 5 2 1 3c Combining Grayscale values and storing in memor    me 84       GetRedCombinedGS   is used to obtain the combined red Grayscale value for  the two pixels it is called with as arguments  The red data is stored entirely in the  first byte of the pixel dat  The first byte of the color data contains the red values   Using a logical shift right function with an argument of 3  the unwanted green  data is pushed out  The process of isolating the red value can be seen visually in  Figure 5 2 1 3a     The red value is then converted to a grayscale value by calling a function to  convert the byte  The red data isolation process is then repeated for the second  pixel  and then also converted to grayscale  Following this  the two grayscale  values for each pixel are combined into a three byte structure using a combine  grayscale function which returns a 3 byte structure     Two Byte RGB color     First Byte Obtained     Logical Right Shift x 3     Figure 5 2 1 3a Visualization of Isolating Red RGB Value                   Obtaining the gree
14.  3  groups of 15 controllers for red  green  and blue  This makes for a total of 6  groups of 15 controllers  A single controller requires 192 bits and with each group  containing 15 controllers  2880 bits will be written to each group  In line 2  a loop  will be entered that will continue until 2880 bits have been written to all 6 groups   The rate at which the data can be written to the controllers is limited to 30MHz   because of this a clock interrupt will set SCLKpulse to true at a rate of 30MHz   Whenever this pulse occurs  the bits to be written for each group will be obtained  as seen on lines 4 9  and then written into memory at the addresses associated  with the A columns SOUT pins on lines 11 16  An SCLK pulse is then required so  that the LED controls read the new bit into their shift registers     ObtainBit   returns either OxFF or OxFE depending upon whether the next bit of  data was a 1 or a 0  When a logical AND is performed between that byte and the  output pin address  only the last bit will be altered  The first loop lines up a 1 bit in  the temp variable with the index we are interested in  and then a logical AND is  performed zeroing out all other bits  In the second loop  the bit we are interested  in is shifted right until it is the LSB  A logical OR is then performed on that value  and OxFE  which will guarantee the return value is either OxFF or OxFE     5 2 2 3 Outputting Data to Text Array     One design feature to be implemented is a text array whi
15.  4 07 19 12  Senior Design 1 Doc  Draft Review  Minor   07 25 12 4 07 29 12  Senior Design 1 Documentation Printing  Minor   07 30 12 1 07 31 12  Senior Design 1 Documentation Final  Major   05 27 12 67 08 02 12  Prototype Fabrication  Minor   08 19 12 14 09 02 12  Prototype Testing  Minor   09 02 12 7 09 09 12  Project Design Review from Proto Results  Minor     09 09 12 7 09 16 12  Project Design Finalized  Major   09 16 12 7 09 23 12  Procurement of Equipment  Minor   09 23 12 56 11 18 12  Fabrication of Chassis  Minor   10 29 12 18 11 16 12  Fabrication of LED Array  Minor   11 16 12 14 11 30 12  Programming of Processors  Minor   11 16 12 14 11 30 12  Assembly of POV Display  Minor   11 18 12 12 11 30 12  Preliminary Mechanical Operational Test  Minor     11 16 12 14 11 30 12  Project Fabrication Completed  Major   09 23 12 68 11 30 12  Complete Functional and Operational Testing  Major     11 30 12 7 12 07 12                7          Senior Design 1 Doc  Draft Review  Minor   09 23 12 75 12 07 12                   Senior Design II Doc  and Final Project Due  Major   12 07 12 3 12 10 12          Table 3 3 Project Schedule    4 Research     Designing is both a matter of applying the best known solution for a problem and  creating new methods when the problem   s solution isn   t well Known  In addition   many times a solution has multiple methods that fit well for solving a problem  In  these cases we need to effectively narrow down the list and determine the  solution o
16.  ACL protocol is designed to transmit general data packets on a  previously set up Bluetooth link  ACL supports Enhanced Data Rate or EDR for  increased bandwidth by changing the modulation technique  Theoretically  Bluetooth is capable of achieving 24Mbps data rates using EDR  As far as  hardware availability  the Digilent boards have a Bluetooth adapter available   There are also shields available for Arduino boards to add Bluetooth support   Adapters for PC   s are easy to find and affordable  if the PC doesn t already have  a built in solution  All modern cell phones have built in Bluetooth support     4 4 3 3 Effects of Rotational Speed     According to a research paper concerning wireless sensor networks  rotational  speed is a factor in wireless signal quality  Some of the possible effects that we  had to consider are path loss  multipath fading  the Doppler effect  and  electromagnetic noise  Path loss is when the path may become interrupted due  to line of sight differences along the path that our rotating microcontroller would  travel through  Multipath fading could happen if the microcontroller receives the  same signal from different paths at the same time  The Doppler Effect is most  known for the frequency distortion of sound waves  but would have the same  effect on electromagnetic waves as well  Electromagnetic noise could be caused  by our mechanical components such as our motor  we probably do not need to  consider electromagnetic noise for our project  Acco
17.  ADCs would be needed in total  The voltage on each pin ranges from 0  to 7 volts  With these factors considered  the ADC0801S040 seems to be a good  choice for an ADC  The ADC08015040  has an 8 bit output and operates  between 2 7 V and 5 5 V  so the input signal would have needed to be scaled  before going into the ADC It also has a maximum speed of 40MHz  and a clock  input which could be tied to the pixel clock  This ADC costs around  4  however   it seems likely that enough could be obtained with free samples     4 2 2 HDMI     mm 16    HDMI or High Definition Multimedia Interface is one of the possible inputs we had  considered supporting in our POV display project  HDMI input would have  allowed us to receive a signal in a format that is quickly gaining popularity and is  currently available on many devices  The main reason we considered HDMI  support is because Digilent has a Xilinx FPGA based board available with built in  HDMI support  and most modern DVD players and laptop computers have HDMI  outputs  This section is mainly focused on how we would have gone about  receiving the HDMI signal on the Digilent Atlys board and then translated that  signal into a format we can use to display it on our LED array     4 2 2 1 HDMI Signal Standards     The HDMI standard indicates that the term used to describe HDMI inputs is     HDMI sink     and the term used to describe HDMI outputs is    HDMI source     Our  POV display would therefore have been the HDMI sink and any devi
18.  B   R   G    1 2 3  Figure 4 3 1 OVS 33 Pin Information  4 3 2 LED RGB Control     There are several different methods for controlling RGB LEDs  Two methods that  we focused our research on were Pulse Width Modulated Controllers and using  latches with a resistor network     4 3 2 1 Pulse Width Modulation     The brightness of an LED is determined based on the amount of current the LED  receives during a sample period  Pulse Width Modulation is a form of controlling  the brightness of an LED by controlling the average current a LED receives  during one cycle or period by varying the width of a pulse  Several manufactures  offer a variety of LED controllers but during some preliminary research  it was  discovered that Texas Instruments offered the best selection and supporting  material for their line of LED controllers  Two LED controllers we focused our  research on will be the TLC5971 and the TLC5940     4 3 2 1 1 TLC5971 LED Controller     Texas Instruments TLC5971 LED Driver offers 12 Channel  16 Bit pulse width  modulated control of LEDs  TI defines the design application of the TLC5971 is  for RGB LED cluster lamp displays  The TLC5971 allows control of up to 12  LEDs broken into groups of  4   Each group containing controls for  3  LEDs or  the RGB values of each LED  Each LED has individually adjustable output with  65 536 steps  As well  the TLC5971 allows for serial data communications and  cascading of an n number of controllers together with a maximum data rate  
19.  Bits 5 10   Figure 5 2 1 1b  shows the ordering of the two byte pixel data  as well as which bit is the most  significant for each color        RED RED   GRN GRN   BLU BLU    MSB   RED   RED   RED   LSB   MSB   GRN   GRN   GRN   GRN   LSB   MSB   BLU   BLU   BLU   LSB    15 14 13 12 11 10 9 8 D 6 5 4 3 2 1 0          Figure 5 2 1 1b 16 Bit RGB Arrangement    Each pixel  although stored linearly in memory  can be referred to by an X and Y  coordinate  X will refer to the column of a pixel and Y to the row  Table 5 2 1 1  shows the arrangement of pixels in a frame and how they will be referred to  In  order to calculate the memory location of a given point P X Y   we will use the  equation Pixel_Addr   Base Frame address   2 x   2 Line Stride y     Mm 80       Arrangement of Pixel Values In a frame             Pixel   0 1 ood  0 P 0 0  P 0 1        P 639 0   1 P 0 1  P 1 1  P 639 1           2 P 0 2  P 1 2  P 639 2        479   P 0 479    P 1 479          P 639 479                             Table 5 2 1 1 Arrangement of Pixel Coordinates in a Frame  5 2 1 2 Output Format Specification     The format the RGB frames are received in must be changed into a format that  will be useful to the rotating processor which will talk to the LED array controllers   The LED controllers required Grayscale information as opposed to RGB data  A  Grayscale value is a 12 bit value between 0 and 4095 which will determine the  duration of time  and therefore the brightness  that an LED will be on 
20.  MODE  While in  TEXT MODE various commands will alter the way in which text is being  displayed  For instance scrolling text can be enabled and the speed at which the  text scrolls can be calibrated via commands being received from the stationary  controller  which received those commands via USB from the GUI interface on  the computer  The text array can also be in an off mode when it is not in use  which is simply OFF MODE  Figure 6 2 1 shows the various state combinations  the Main Array and Text Array can be in after receiving a single state change  command     5 2 2 2 Outputting Data to LED Array     The rotating microcontroller will be responsible for outputting the color data the  LED controllers  There are 180 LED controllers  90 represented an    column   and 90 representing a B column  although both columns output to the same  LEDs  Both the A column and B column will output to the LEDs at 22 frames per  second  staggered such that the LEDs will flash at 44 frames per second  Two  clock driven interrupt handlers will tell the A and B columns of LED controllers to  display at the appropriate times  After a column is displayed all of the controllers  in that column require a blanking pulse of 20ns in length  On lines 6 and 14 of the  interrupt handler pseudocode  the Column Written flag is set to false so that a  separate loop can begin writing the new pixel data to be displayed to the LED  controllers     The A column has been instructed to start displaying by calli
21.  PC application  that utilizes Bluetooth communications  If we have additional time we may be  able to include Bluetooth communication support for the PC application as well     4 7 3 1 Serial Communication Software Library     At first it seemed that Java would not have a way to access USB devices  There  are no built in methods to allow Java hardware access for serial communications     49 i    There is a library created by Sun which allows serial communications  but it is  only supported on the Linux operating system  Further research allowed us to  find a community created Java library called RxTx which supports serial  communications on multiple platforms including Windows  In order for the RxTx  library to work however  we need to find a valid USB driver that will allow  windows to recognize the connected device for serial communications  If the  Digilent Atlys board does not include USB drivers for this purpose  we have  found a driver download as well  The driver is for the Universal Asynchronous  Receiver Transmitter or UART chip that is on the Atlys board  The UART chip  allows the USB to function as a serial communication interface  With the proper  drivers installed communicating with the Atlys board using USB should be no  different than using the older RS 232 method  Once the RxTx Library is properly  added to the JDK we can than import the methods and use them for our project   There are methods in the library to handle listing the available serial  communicati
22.  RGB color data we obtain will be in    true  color     or 24 bit color  then to reduce it to 8 bit color we would truncate the Red  and Green data to their 3 most significant bits each  and for the Blue data  to its 2  most significant bits  Since we only want 8 bits for the color  Blue is picked to be  the color with fewer bits because the human eye is less sensitive to changes in  blues when compared to red and green  Figure 4 2 3 1 shows the same picture in  various color resolutions        16 colors  4 bits  256 colrs  8 bits   Figure 4 2 3 1 Example of image shown in 4 bit and 8 bit color depth  4 2 3 2 Frame Resizing     Since the possibility exists that we may not be able to receive the exact  resolution we desire for our display  we may need to resize the frames as they  are buffered  This can be accomplished most simply by truncating sections of the  frame and displaying a cropped version  In the most ideal scenario  we will  receive frames at a resolution of 640 x 480  which can then be easily cut in half  to a resolution of 320 x 240  It may also be possible to employ algorithms on the  entire 640 x 480 frame which would reduce it to 320 x 240 by using blurring  techniques  but this could have an effect on how nicely the images look on the  display  and they also come with a heavy processing cost     4 2 3 3 Frame Skipping     WW 20    Assuming there is a certain amount of image buffering and that we are receiving  frames into this buffer at a particular rate  it 
23.  Video and Signal Processing     We intended to receive a live video stream from a laptop and display this video  on our LED array  There are two primary formats that computers output video  data in  VGA and HDMI  The research into these two different formats was to be    WW ie    used to determine which format would be most appropriate for our needs and  what would be required to use that format  This section will look at various means  of video data compression and alteration     4 2 1 VGA    We considered using the VGA output available from a computer as the video  source for our display  This section will focus on the VGA signal format and will  describe how video data is transmitted via VGA     4 2 1 1 VGA Signal Standards     In order for a computer to know what types of signal a display can handle  the  computer communicates with the display through the Data Display Channel  The  protocol used most commonly today is E EDID  which has been defined by the  organization VESA  With the E EDID protocol  the computer reads a binary file in  the display to determine what signal to send  It seems possible that we would  have needed to write or edit our own E EDID or file     The EDID file is 128 bytes and contains basic information such as the vendor ID   serial number  manufacturing date of the display  and which EDID version is  being used  It also contains a Video Input Definition  which specifies analog or  digital  In the case of analog it contains several bits that speci
24.  and  image input  Image input has been designed to accept almost any image file  type  The GUI has been designed to be straightforward and agile  allowing for  easy implementation of new features that are already supported by it     The microcontroller will also be writing to the LED controllers for the RGB array  and text array  This will require 5 signals from the microcontroller  data  data  clock  blank pulse  latch pulse  and grayscale clock  Data will be written using the  controllers SPI interface  The blank  latch  and grayscale clock signals are  generated using pulse width modulation which relies on output compare to be  generated  The output compare are set up using two hardware timers  one for  blank and latch  the other for GS clock  operating at 10 MHz and1220 Hz  respectively     5 2 1 Computer Side Processing    This section will cover the various forums image processing that take place  before sending image and text data to the microcontroller  We want to handle the  various image formats that the user may try and use as input  To handle this   several java classes were used  ImagelO  Bufferedimage  and indirectly  ImageReader  Using the java ImagelO class  we open an image file by using  ImagelO read   and supply an argument of a name path  The ImagelO class on  its own will then search for an ImageReader that claims to be able to read that  type of image  and decode it  ImagelO read   will return a java Bufferedimage   from which we can easily obtain the R
25.  and secure the motor to the  base  we designed the base with an internal height of 12 inches  Taking into  account the thickness of the aluminum plate  the total height for the base is 12 5  inches  Therefore  the total size of the chassis base is 18 inches x 18 inches x  12 5 inches     5 1 1 4 Chassis Assembly     Now that we knew the required dimensions of the chassis we began to design  the assembly of the chassis  A complete chassis model can be seen in Figure  5 1 1 4c below     The first step to putting together our final design of the chassis was to determine  which rotating interface we will use to transfer the rotating power of the motor to  the LED array  As discussed in our research  we had two options  The first option  of the turntable provided the easiest solution for mounting the LED array and  base to the rotating interface  However  due to cost and no defined specification  of the maximum rotating speed  we choose to use the extended ring bearing  In  order to provide the most space for feeding the power supply cable cable through  the rotating interface  we choose to use the extended ring bearing with a one  inch shaft diameter  part number 8090T13  We then secured the bearing to the  base of the chassis by welding the extended ring portion of the bearing to the top  of the base  Although welding does not allow for easy modifications  it provided a  strong and secure method that of holding the bearing in place during operation of  the POV display  In order
26.  are  displaying at 320 x 240 resolution  our LED array will have 240 individual LEDs   and a latch will be required for each one of them     Each latch would need to be able to contain 8 bits  We can use a resistor  scheme the VGA signal was generated in section 3 2 1 2 on VGA Signal  Sampling  which would reduce the 8 bits of information down 3 lines which would  connect directly to the LEDs  In order to address each of the 240 latches  we  could have used an 8 to 256 decoder  or combination of decoders  This approach  requires 8 addressing lines from the rotating processor  and 8 data lines  as well  as a line that would be used to update the output of the latches all at the same  time  requiring 17 output lines in total  One possible way to reduce the number of  required outputs from the rotating microcontroller would have been to use a  counter to address the decoders  as seen in Figure 4 3 1 2  An 8 bit counter  would require 2 output lines from the controller  one to increment it and one to  reset it  Its output would be used to address each decoder one by one  The 8  data lines will still be required  plus the two counter lines  and one final line used  to activate the latch output  so in total 11 outputs would be required from the  processor     2 EE    8 outputs                                                           3 for Red Hain  4 outputs   3 for Green a puts  RGB  2 for Blue 8 voltages Ground  Rotating 256 Resistor    gt  pp LN  Processor Latches Network LED 
27.  array and is therefore ignored for the chassis design  We  mounted the LEDs with a spacing of 1mm between each LED  allowing us to  determine that the spacing between each LED  as measured from center to  center  is 2 85mm  Therefore  the maximum allowed total vertical length of the  LED array is 2 85mm x 128 LEDs or 365mm  Converting the total vertical length  to inches gives a final dimension of approximately 15 inches to which we  constructed the LED array to     Next  we needed to determine the diameter of the LED array  When the POV  display is running  we can simplify the LED array to cylinder  As well  since we  wanted the horizontal spacing of the LEDs to be the same as the vertical spacing  of the LEDs  we used the known pixel ratio of 128 to 384 to determine the length  required  Dividing 384 by 128 gives the ratio of horizontal pixels to vertical pixels   which equals 3 or 3 1  For accuracy  we initially calculated the required horizontal  length in millimeters  Taking the ratio of 3 1 and multiplying by the known vertical  length of 365mm we got a required horizontal length of 121 67mm  Since the  LED array can be simplified to a cylinder  we were able to find the circumference  of the LED array  Using the formula of C   277r  we calculated the radius of the  LED array which is equal to 119mm  Converting the radius to inches  we got a  final dimension of approximately 6 inches     5 1 1 3 Dimensions of Chassis Base     5 WW    Now that we knew the size of the LED
28.  array when the POV display is spinning   we were able to determine an appropriate size for the chassis base  The chassis  base serves as two purposes for the POV display  The first and most obvious  purpose is to provide an adequate foundation for the display  The second  purpose and more important than the first  is to provide a visually marker to  signify where the limit is to approach the display while it is running  This is  especially important if  for example  the display is running but not displaying an  image  Therefore  we constructed the base of the POV display to extend just past  the fast rotating LED array  Since we knew the radius of the spinning LED array   we determined that the base will needed to be at least a 6 inch by 6 inch square   We then took into account the extend size of the secondary test LED array which  will extend approximately 2 inches past the primary image LED array  Adding an  extra inch between the spinning array and the base gave us a final dimension of  18 inches x 18 inches  Since constructed the chassis out of 1 4 inch aluminum  plate  a 18 inch square base provided plenty of weight and strength to fully  support the POV display while it is running     The last dimension that was required before we were able to determine the final  design of the chassis was the physical size of the motor  Size the motor is  mounted on the base  it determined the height of the base  The overall length of  the motor was 8 8 inches  To allow room to mount
29.  available for purchase until we made a lucky break and found  one     4 5 2 RPM Requirements     Under the consideration that the human eye is tricked into seeing motion at a  rate of about twenty five frames per second and a single rotation of the device is  a frame we know we needed a motor that can handle twenty five rotations per  second  This is the bare minimum  We decided that we wanted to overshoot this  value by five frames or rotations in order to create a smoother image  Our group  thus decided that thirty rotations or frames per second would be adequate     Thirty frames per second is equivalent to one thousand eight hundred frames or  rotations per minute  This means we needed a motor that can make one   thousand eight hundred rotations per minute to accomplish the desired frame  rate  This rom value cannot vary much and must be maintained at a constant rate    WW 38    otherwise there may be distortions in the image due to the increasing and  decreasing of the delay between each flash of an LED     4 5 2 1 AC Motor Application for RPM Requirements     Through some research it became apparent that AC motors were quite capable  of reaching these rpm values required  However  the real problem came in the  control aspect of the motor  or more specifically the ability to keep the motor at a  constant rpm value  The rpm value of an AC motor can only be varied through  either the number of poles the motor is built with or through the electric frequency  of the voltage
30.  being applied to it  This can be done through an inverter also  known as a variable frequency drive  and this is a plausible solution  It is  however  an expensive solution with some inverters ranging from two hundred to  two thousand dollars  According to further research it also seemed like this  problem could be solve by just buying a DC motor since many DC motors are  actually AC motors with these variable frequency drives pre built within them     4 5 2 2 DC Motor Application for RPM Requirements     In the case of DC motors our research revealed that DC motors are generally  used for our purposes  and the rpm requirements could be met easily with these  motors  Considering DC motors are highly controllable and designed for constant  rpm output it makes for a perfect fit with our application since our device would  be running under one speed consistently and that speed must have minimal  variations     Controlling a DC motor is actually a relatively simple process  We could either  achieve it through a variable resistor albeit this can generate a lot of heat  or we  can use some form of PWM circuit to control the rpm of the motor  This left us  with some options and both were relatively inexpensive solutions     4 5 3 Sound Requirements     Considering this product is for in person advertisement uses we want minimal  obstructive noise  Especially since we planned on playing videos off the device  that include sound effects or music  This being the case there are two thi
31.  calibration for the sensor sensitivity     During this test it was found that there were two sensing locations for the sensor  circuit  One  which never changed with variation of the potentiometer  was right in  front of the sensor  The other changed slightly within a small range at a large  distance from the IR LEDs  This property was used to find the best distance at  which to place the reflective surface so as to obtain an effectively consistent    hit     indication     7 2 KBRG 212D Calibration Tests     The motor control circuit required to control the motor required three tests to  effectively use for the device  Test one was a current calibration test  which was  needed to calibrate the KBRG 212D to the specific current needed for the Dayton  motor  The second test was the speed control test  This test was used to  determine how fast we could spin the motor before overcurrent through the motor  would be an issue  The final test was the enable line  This was to determine  whether the enable line would return the motor to the specific rom value we left it  at after an off on toggle  The following subsections will discuss the process of  each of these tests  the desired result  and our actual result from the test     7 2 1 Current Calibration Test     In this test the KBRG 212D was connected as seen in Figure 5 1 1a  The only  difference is that an amp meter was connected in series with the motor  FWD CL  variable potentiometer was then set to its lowest value  while al
32.  can possibly use for  communications between the stationary FPGA and the rotating microcontroller   Programming the Cerebot board should be similar to programming the Arduino   Digilent advertises the fact that Arduino projects and code should be compatible  with their Cerebot boards  Although the Cerebot board seems to outperform the  other boards in every category it is much more expensive at  99  It may also be  necessary for us to buy additional Pmod accessories in order to access some of  the I O pins further increasing the cost  We hope to find a microcontroller for the  rotating part of our project that can keep costs to a minimum while having the  required performance needed for a live video feed  The following Table 4 8 4  shows a simple comparison between all of the previously discussed  microcontrollers being considered for the rotating part of our project        Microcontroller Comparison                                              Se Cerebot   Digilent Atlys   TI Launchpad   Arduino Uno MX7cK  rogram 64MB 2KB 31 5KB 512KB  Memory  SRAM 128MB 128B 2KB 128KB  EEPROM OB 0B 1KB 0B  I O 48 10 14 85  Frequency 500MHz 16MHz 16MHz 80MHz  Programming   Verilog HDL Assembly High level High level  Cost  199  4 30  35  99       Table 4 8 4 Microcontroller Comparison  4 8 5 Additional Microcontroller Concerns     WW 52    This project is highly dependent on sponsorship funding in order to include all of  our intended features  Video input is not normally a feature found in 
33.  could  appear in our measurements  Considering we had already determined we were  going to do a wired design it seemed like the best method for solving the issue of  tracking the apparatus  rom value instead of just the motor s rom value  In  addition  it gave us some additional control over our display and flexibility in what  we could do with it     4 6 Chassis     In the following sections we researched the requirements for the chassis of the  POV display  Two topics that required research included what types of materials  will be best suited to construct the POV display and how best to transfer the  rotational power from the motor to the POV display     4 6 1 Chassis Materials     The chassis of the POV display was where a majority of the weight is located  In  order to maintain the portability of the POV display some materials we eliminated  from our research simply because their excessive weight  However  some weight  from the chassis is required and preferred as the chassis must not twist or move  while the POV display is running  As well  strength was an important factor as the  chassis would be put through a range of forces as the display goes from  stationary to full rotation speed  Steel and stainless steel both have high strength    43 WW    values but weigh more than was desired for a portable device  Wood and plastics  would have reduced the weight of the display but did not offer the flexibility to  make a custom design that the display most likely would requi
34.  in a wooden and steel enclosure that is  also used as a mounting system for the two input switches required to control the  Dayton motor  The partial enclosing was decided so that the KBRG 212D was  capable of being easily reconfigured and so that the OL indicator light was  capable of being observed during operation  There are two simple input circuits  connected to the KBRG 212D that will be discussed further in the Control Inputs  section that are connected to the SIG   15V  COM  and EN terminals  On the  KBRG 212D there are eight variable potentiometers that can be used to  configure the KBRG 212D even further  For our purposes those potentiometers  are all set to the factory presets as outlined in Figure 5 1 3 1b  except for the    69 WW    FWD CL potentiometer which is used to set the input current into the Dayton  motor down from the 1 7A preset to 1 5A  This process for calibrating the motor  is outlined in the KBRG 212D section of the user manual        RESP FWDACC REVACC IR COMP FWDCL REVCL MAXSPD DB    Figure 5 1 3 1b Variable Potentiometer Presets       5 1 3 2 Motor Control Inputs     The KBRG 212D works on two simple input circuits  a 5kOhms variable  potentiometer and a Single Pull Single Throw switch  The Drive Chip is capable  of a variety of configurations including Unidirectional forward or reverse   bidirectional  and even an analog signal input instead of a potentiometer input   Due to time constraints an analog signal input was not used since it require
35.  logical AND on it with 1F  zeroing out any green data present  The  grayscale values are obtained using ToGrayscaleRB   and then combined   Figure 5 2 1 3c provides a visualization of the logic for isolating the blue RGB  value from the pixel data     Two Byte RGB color     Obtain Second Byte    AND with Ox1F    Figure 5 2 1 3c Visualization of Isolating Blue RGB Value                   Converting pixel data to Grayscale is accomplished using ToGrayscaleRB   and  ToGrayscaleG    The need for a separate function for green is because green  contains an extra bit of color depth  and can be mapped to a more precise  grayscale value  A grayscale value ranges from 0 to 4095  represented by 12  bits  Figure 5 2 1 3d shows the mapping of values for both Red Blue and Green     ToGrayscaleRB   ToGrayscaleG    012   15   31 012   31   63    Af I    Sisk AVN  63 127 191 2047 4095 127 255 383 2047 4095  12 Bit Grayscale 12 Bit Grayscale       Figure 5 2 1 3d Grayscale Mapping Diagram  Hm oe    The CombineGrayscale   function is used to combine two grayscale values into a  3 byte data type and then return those 3 bytes  A grayscale value is stored in 2  bytes even though it only contains 12 bits worth of information  Because of this   the first 4 bits of every grayscale value are 0b0000  which is why it would be nice  to compact 2 of these grayscale values together to eliminate the wasted bits and  decrease the overall size of the date  The CombineGrayscale   functions  behavior can be vi
36.  made larger than the diameter of the inner ring of the bearing but smaller than  the extended flange of the bearing  This allowed for the bearing to rest on the top  plate and provided a surface for the bearing to be welded to the plate  Figure  5 1 1 4b below shows a model of the base assembly  including the cut out on the  top plate for the bearing        Figure 5 1 1 4b Chassis Base Assembly    The LED array support frame was constructed from 1 8 inch square tubing  From  the calculations for dimension requirements of the LED array  we knew that the  horizontal LED array support bar  the piece that will be connected to the notched  pipe  needs to be 14 inches long  This dimension needed to be exact as it will  directly affect the aspect ratio of the display  At each end of the horizontal LED  array support bar  vertical LED array support bars were welded  We know from    PS 60    the LED array dimension requirements that the vertical support bars must be at  least 15 inches long        Figure 5 1 1 4c Chassis Base Assembly  5 1 1 5 Motor Interface     To transfer the power of the motor to the LED array  we mounted the support  pipe directly over the motor shaft  Then using a set screw we secured the pipe to    61 P    the shaft  This allowed for the motor to directly drive the LED array and simplified  to the fabrication process     5 1 1 6 Chassis Torque Calculations     Now that we have finalized our design for the POV display chassis  we needed to  estimate the torque 
37.  needs  The rotating processor would be able to  dedicate its cycles fully to reading the frame buffer and writing to the LED array     4 3 LED Array     This section of research will cover the exploring the different possibilities of not  only what type of LEDs to use but different possibilities to control the LEDs as  well     4 3 1 LEDs     There are a several available RGB LEDs all with different characteristics and  specifications  Some important unique characteristics required by the POV  display include size and mounting options  In order to reduce the appearance of  streaking when the POV display is running  the distance between each vertical  LED needs to be minimized  This eliminates the most common and popular case  style of LEDs  T 1 3 4 package  The T 1 3 4 style LEDs have a width  as viewed  from the top  of 5 9mm  Therefore  we turned to researching available surface  mount LEDs  In general  surface mount devices or SMDs offer a much smaller  package and are design for use and easy integration into printed circuit boards   One available surface mount type LED is manufactured by Multicomp   Multicomp s OVS 33 Series SMD Super Bright LED is only 2 8mm wide as  viewed from the top  This is about half the size of the T 1 3 4 style LEDs  This will  allow us to group the LEDs on the array much closer reducing the appearance of  streaking as the POV display spins  Figure 4 3 1 shows the pin information for  the OVS 33 Series SMD Super Bright LED     23 WW       6 5 4 
38.  or E EDID   This is represented by a 256 byte binary file stored in ROM on the display  Since    17 WW    we would have created the display we may have to create our own EDID data file  in order to properly have a device such as a DVD player send the correct  resolution picture  Creating a compatible EDID file may have proven beneficial to  us since it may eliminate the need for down scaling the resolution of the input  since the file would communicate to the HDMI source which resolution it should  be sending to the sink  Table 4 2 2 1 b below shows the structure and  requirements of EDID information                                Description Required  Block    O    Header Yes   ID Manufacturer Yes   ID Product Code Yes   ID Serial Number No   Week of Manufacture No   Year of Manufacture or Model Year Yes  EDID Version Yes  EDID Revision Yes       Basic Display Parameters and Features   Yes  Display x  y Chromaticity Coordinates   Yes                                        Established Timings No  Standard Timing Identifications No  Preferred Timing Descriptor Block Yes  Range Limits Descriptor Block No  Monitor Name Descriptor Block No  Other Descriptor Blocks No  Extension flag Yes  Checksum Yes       Table 4 2 2 1 b EDID Information and Requirements    TMDS or Transition Minimized Differential Signaling is an encoding protocol that  takes place for the HDMI audio and video data     Transition Minimized    means  that the number of transitions in the digital signal is reduc
39.  order to have a much  smoother stop of the LED apparatus when the motor is powered off     PEN TO COAST TOSTOF       Figure 5 1 3 2b Enable Circuit  5 1 4 Display Alignment Sensor     While our original plan was to both control the motor and align the display using a  sensor in our research this changed during the construction process and ended  up with the sensor only being needed for aligning the display  As discussed in the  research however  the best method to solve this issue was through the use of  infrared  In our case we used a pair of infrared LEDs  Figure 5 1 4a is a flowchart  of this process     The circuits we created rely on a property common to LEDs in which when    subjected to light they produce a voltage deference across their leads  However   this value is very small and can barely be detected  So in order to detect it we    71 WW    used an LM358 op amp to detect these small voltage changes  The intention was  to send an infrared signal to a reflective surface and receive it     In order to create a signal spike in the sensor an aluminum plate was mounted  on the top surface of the Chassis that reflected the infrared beam back to the  receiving LED  This beam caused a voltage difference in the LED  this difference  in voltage on the LED causes the voltage difference within the op amp to show a  voltage on the output of around 2 7 3 6V  This is instead of the usual voltage on  the output which is very small and considered as zero by the microcontroller    
40.  our administrative plan was to develop and follow a schedule   which included major and minor milestones  to be a guide for keeping the  production of the project on time and finished by the due date     Major milestones will be defined as events or task that must be completed before  the project can continue  A complete list of major milestones for the project is  below    Senior Design   Documentation Due   Prototyping Completed   Project Design Finalized   Project Fabrication Completed   Testing   Senior Design II Documentation and Final Project Due    SNK    Minor milestones will be defined as events or task that are less critical on an  individual basis but must be completed before a Major milestone can be  completed     Wo       Project Research    SN    Documentation Completed     Prototype Fabrication  Prototype Testing    Fabrication of Chassis  Fabrication of LED Array  Project Assembly    NNN    Senior Design I Documentation Review    Project Design Review from Prototype Results    Preliminary Mechanical Operational Test  Senior Design II Documentation Review    Project Preliminary Design Review  Prior to Senior Design      Finally  as seen in Table 3 3  a completed schedule was put together  The  schedule contains all predefined major and minor milestones as well as    completion by dates                                                                 gt    rt Duration Finish  Project Research  Minor   05 27 12 46 07 12 12  Project Design Review  Minor   07 15 12
41.  text and offer the user  multiple color choices  There should also be color options that the user can use  to select the color of the entire message and possibility of individual letters  The  text message input is discussed in more detail in the design section for the GUI     The image input will only accept the correct format and resolution images to  display  If the selected image file is smaller than the maximum size than it will still  be accepted and the image will display centered in the LED display  This can  possibly be done by analyzing the size of the input image and calculating where  to put the image so that the space to the left and right of the image is equal  and  the same for the space above and below the image  If time permitted we may  have been able to further increase the functionality of our software to properly  scale images that are too large to be fully displayed  This would be a simple  algorithm that simply picks and chooses every other pixel to display or something  similar  The image input  like the text input  is also discussed in more detail in the  design section for the GUI  A simple use case diagram is shown in Figure 4 7 1 b  to highlight the main requirements of the GUI     WW 46    System      extends   e  __     Color Options      extends      d  SS    extends             De    Formatting      extends      User NS  Send Image       Figure 4 7 1 b Use case diagram for GUI  4 7 2 Programming Language     We must choose a programming langua
42.  to secure the LED array to the bearing  we inserted a  aluminum pipe through the inner ring of the bearing  The pipe was then secured    WW 58    to the bearing using the two set screws that come installed on the bearing  This  allowed for the POV display to be easily disassembled when moving between  locations  Using this designed allowed us to use the pipe to mount the slip ring  for electrical power transfer  Lastly  we notched to top of the pipe to allow the  LED array support bar to be secured to the pipe  Figure 5 1 1 4a below shows a  model of the bearing and pipe assembly  The chassis base and LED array  support frame are removed for clarity        Figure 5 1 1 4a Bearing Assembly    Next we designed the chassis base  As discussed  the chassis base needed to  be 19 inches x 19 inches x 12 5 inches  The base was constructed out of two 1 4  inch pieces of aluminum plate creating a top plate and a bottom plate  The two  plates were secured together by four solid aluminum rods  one in each corner   cut to 12 inches lengths  The plates had counter sunk holes drilled in each  corner  three inches from each side  The rods were drilled and tapped in the    5 BE    center to accept a 1 4 20 screw  The rods and plates were assembled by  screwing the plates and rods together  The counter sunk holes on the plates  allowed for the screws to be flush with the surface  In order to mount the bearing   a hole was cut out from the center of the top plate  The diameter of the hole was 
43.  tried them which verified that our  hardware was working properly     105 PS    7 5 Software Testing     The prototype LED array has been used to test numerous aspects of the POV  display while sitting stationary  and can be seen in Figure 7 4  These tests  include LED manipulation  brightness levels  displaying various RGB colors  and  updating the controller at the fastest frequencies possible  In addition to testing  the capabilities of the LED controller itself  we also used to test programs  designed to display entire images and text  The prototype was also involved in  compatibility tests which were used to help integrate the use of Micro SD  Memory  Wi Fi  and Sensor Input when combined with the LED array        Figure 7 5 Prototype LED Array used in testing     7 5 1 Prototype LED Array Capabilities Testing     Basic Cycle Test  The basic cycle test was used as a baseline to determine that  without any possibility of programming error  the hardware configuration was  wired correctly and that the behavior of the LED array was as expected  In this  test  each LED would be lit up one by one in sequence  with only one LED on at  one time  After reaching the last LED  the first LED would be the next one to light  and this would continue in a loop endlessly  A one second delay between each  cycle was used causing the lit up LED to chance once per second     Speed Cycle Test  This is a modification of the Basic Cycle Test  This test simply  increases the speed at which the 
44.  we wanted our  program to accept virtually any image file format that is common  The primary  information we needed from the image are the RGB values contained within it so  that we can format an output file that our device will understand  Each image  format is different and must be decoded via some method in order for us to  obtain this data     Mm 48    In order to handle the various image types that the user could select  we had to  determine that functions within the java library would be able to handle this   Several java classes would be used in order to do this  ImagelO  BufferedImage   and indirectly ImageReader  Using the java ImagelO class  we open an image  file by using ImagelO read   and supply an argument of a name path  The  ImagelO class on its own will then search for an ImageReader that claims to be  able to read that type of image  and decode it  ImagelO read   will return a java  Bufferedimage  from which we can easily obtain the RGB values by calling the  function Bufferedimage getRGB   and supplying an x and y coordinate  Using  this library the user will not need to be concerned with the image file format  and  we will not need to code the tedious functions that would be required to decode  the many image format possibilities     Another concern involved image resizing  Using the simplest solution we would  require that the user resize the image manually using image editing programs  before trying to upload it  However  because the Bufferedimage class
45.  will tell us  the size of the image that has been selected by called Bufferedimage getHeight    and Bufferedimage getWidth    we could handle the scenarios where the image  is too small or too large in specific ways  In the case where it   s too large  we  could simply truncate the image  or offer various methods of cropping the image   If the image is too small  it could be padded and centered  depending on user  specifications     4 7 3 GUI Communications to Microcontroller     The program will have to communicate with the microcontroller in order to get the  correct image to display on the LED array  The communication should either be  the wireless communication that we choose to use  WiFi or Bluetooth  or it  should be through a USB cable  The preferred method of communication would  be through WiFi or Bluetooth since this is also supported by android devices and  would allow us to send images to be displayed on the LED   s with our mobile  phones  It would be very convenient as well if we did not have to connect a  laptop to our display with any wires  If we use WiFi we will have to use the ad   hoc mode of networking since it would not be very practical for this project to  require a wireless router as well  If Bluetooth had been used then Bluetooth  would be the communication method when using the mobile application  but  when using a PC a cable will be required  This is because most PC   s do not have  Bluetooth built in so it would be counter productive to develop a
46. 106 00  The sensor circuit included 2 High Output  Infrared LEDs for  2 19 each  It also required 1 LM399 at  2 29  We purchased a  large pack of varied resistors to handle any possible application we would need  them for during the project at  9 99    The total cost associated with this project was about  1031 59  As seen in Table  3 1  a detailed summary of the budget and distributed cost can be complied                                      Description Qty Cost  Each  Price  RGB LEDs 48  1 51  72 48  Green LEDs 16  0 27  4 32  LED Controllers 8  2 52  20 16  Motor 1  35 00  35 00  On Board Controller 1  34 99  34 99  Wireless Chip 1  49 99  49 99  Chassis 1   Donated  IR LEDs 2  2 19  4 38  9V Battery 1  4 99  4 99                5                               LM339 1  2 29  2 29  Copper Pipe  Slip Ring  1  6 99  6 99  Misc  Equipment      150 00  Prototyping      200 00  PCB 4 E  339 99  Motor Driver Chip 1  106 00  106 00  Total   1031 59                Table 3 1 Project Budget  3 2 Finance     The second portion of our administrative plan is to determine where the financial  backing will come from to support the design and development of our POV  display  Our goal was to be sponsored and we luckily did gain one sponsor  during the course of our work  Kemco fabricated and donated to us our Chassis  for the project  As for the rest of the costs associated with this project the cost  was split among the group members     3 3 Schedule and Milestones     The final portion of
47. 2      lt http   www ikalogic com ika tach  gt       99 000 RPM Contact Less Digital Tachometer   JKALOGIC  N p   n d  Web   01 Aug  2012   lt http   www ikalogic com 99 000 rpm contact less     digital tachometer  gt       Infra Red Proximity Sensor Part 1   IKALOGIG  N p   n d  Web  01 Aug   2012   lt http   ikalogic cluster006 ovh net infra red proximity sensor     part 1  gt       Carl Pisaturo   Electrical Notes  Slip Rings   Carl Pisaturo   Electrical Notes   Slip Rings  N p   n d  Web  01 Aug  2012      lt http   www carlpisaturo com  EINo SLIP htmi gt     Lighting and Display Solutions   TLC5940  Texas Instruments    N p   n d  Web  01 Aug  2012   lt http   www ti com product tlc5940 gt     Lighting and Display Solutions   TLC5971  Texas Instruments    N p   n d  Web  01 Aug  2012   lt http   www ti com product tlc5971 gt       Low Cost Slip Ring   Model 205  Mercotac     129 BE    N p   n d  Web  01 Aug  2012      lt http   www mercotac com html 205 html gt      130    
48. 212D Manual     The KBRG 212D has a very thorough user manual that describes the various  settings and features and how to use them  This section will discuss only the  features and settings used for the purposes of this project  It is recommended  that before use of the KBRG 212D you follow the current calibration process  outlined in the testing section and the user manual of the KBRG 212D chip   especially after prolonged disuse of the chip and Dayton motor     There are two major control inputs for the KBRG 212D for the purposes of this  project  The first is the speed control dial featured in Figure 8 1 on the left  This  dial controls the speed at which the motor is running at  Turning the dial counter   clockwise decreases the speed of the motor  while turning the dial clockwise  increases the speed of the motor  The motor speed can be raised to the  maximum point on the potentiometer  though this is not recommended due to  overcurrent in the motor  It is recommended that if the OL light indicator turns on  while increasing the motor that the speed of the motor be decreased until the OL  indicator turns off so as to prevent damage to the motor        Figure 8 1 KBRG 212D Input Switches    The second control input for the motor is the ENABLE switch featured in Figure  8 1 on the Right  The ENABLE switch is used to turn the motor off during  reprogramming of the onboard microcontroller or start up  lt is recommended that  the user turns the ENABLE switch off before turni
49. 2222  R2   7  ik    Figure 5 1 4b Display Alignment Sending Circuit    The receiving IR LED is in an off state during operation of this circuit  When the  reflected infrared light hits this LED it reads a potential difference along its leads  and causes the output of the LM358 to go high  The positive terminal has a  potentiometer that was preset to read 2 5 volts on the positive terminal of the  LM358 comparator  This potentiometer allowed for the receiving circuits  sensitivity to be either increased or decreased by changing the voltage entering  the minus terminal of the LM358  When the infrared LED was hit by the beams of  its sister LED it created a voltage drop on the LED  This deference caused the  positive terminal to fall lower than the minus terminals signal and forced the  output of the op amp high  When the op amp goes high it sends a voltage drop  around 2 7 3 6 volts to the microprocessor  Since we are using infrared lights and  this whole process is invisible to the human eye we used a Green LED as an  added indicator to the circuit  This indicator blinks when a    hit    is read in the  receiver allowing us to see whether the sensor is working or not for trouble  shooting purposes     73 WW     5V    10k Trimmer                            R3   gt    Te         R1   D2  1k LM358 R5 eC  a 4 NJ  a oe LA  A   3 8K Green LED  Out    R2 pity 5    1k    ES    2     m  U  N    Figure 5 1 4c Display Alignment Receiving Circuit       The Eagle board layout of this entir
50. 6   13 33   11 75   O ms 3 8 3 4 3 8 13 328 11 765   P ms   0 064   0 064 0 08 0 671 0 064 0 056   0 05 0 044   Q ms   1 048 1 08 0 427 0 578 0 448 0 503 0 466   0 524  15 25   12 71 11 09 11 17   R ms 3 1 128  3 128 9 12 795   11 183   S ms 0 318 0 413 0 027 0 023 0 021 0 019 0 017   0 015   Pixel M  25 17   28 32   Clock   Hz  5 2 31 5  36 49 5   56 25   78 75   94 5   HSYN   C     Neg Neg Neg Neg Pos Pos Pos Pos   VSYN   C     Neg Pos Neg Pos          Figure 4 2 1 2 d Precise Timing Specifications for VGA Display Modes    4 2 1 3 Analog to Digital Conversion     In order to display frames transmitted through VGA on our LED array  we would  have needed to first obtain the signal in a digital format and build each frame   This is because the VGA format transmits data in horizontal lines and our display  needs the data in vertical lines  After each frame is constructed  the data must  then be retransmitted a single column at a time  Additionally  this would have  allowed us to perform processing on each frame  which might include cropping  and resizing  Pre buffered data can also be accommodated easier if we convert  the signal to digital because the VGA stream and pre buffered frames would be  able to use the same output to the LED array     For these reasons  ADCs would have been required  From timing diagrams in  Section 4 2 1 2  we can see that the pixel clock runs at 25 175 MHz at a  resolution of 640x48  At each of these pulses the analog RGB lines need to be  read so 3
51. Any  2 outputs   Increment Counter Enable line  Reset Counter  Address 8 to 256   __   Counter Decoder  8 outputs                       addressing bits    Figure 4 3 1 2 Latch control Implementation    The resistor network would have used the 8 outputs from each of the latches   which are 8 voltages  and would have converted the 8 bits of data into 4 lines  with specific voltage and current for the RGB and Ground connections LEDs  have  Overall this scheme involves the huge dilemma of wiring all of these  connections  In total there are 240 resistor networks which convert the 8 bits  down to 4  and then 4 240  960  connections to the LEDs  Additionally  there are  240 connections from the decoder to the latches  and an 8 bit data bus which  must connect to each of the 240 latches     4 4 Communications     Since one of our objectives with this POV device was to send a signal encoded  with an image or frame of a video  we needed a way to transfer data from the  stationary side of the device to the rotating side of the device  For obvious  reasons the simple solution of a wire was not applicable without some special  configurations  There are two options we came up with to solve this issue  a co   axel wire that is strung through the point of rotation with a rotatable joint or  wireless transmission via a medium like Wi Fi or Bluetooth     The following sections will cover our findings for both methods  and a comparison  of both methods and their pros and cons for our specifica
52. D memory  In the  microcontroller  we then read the data from memory and output the data to the  prototype LED array  This verified that the computer generated processed image  was formatted correctly  and that our code for displaying an image from micro SD  was also behaving correctly     Figure 7 5 7a Test Image used for reading from Micro SD memory    Letter A Test    This test was designed to test the code related to displaying a  single letter of text  It was also a test of the persistence of vision effect on our  display since this was the first shape displayed that had a predefined and  expected form  This test did not include the sensor  Wi Fi  or micro SD code and  was a separate program  The letter A displayed in a verity of positions and  moved around because of the lack of the sensor  This test verified that we would  in fact need the sensor to act as a trip for when to start displaying  A second  version of the letter A code was designed which implemented the sensor and it  was at this point that we could see the first letter of text being clearly displayed  and with minimal shifting from side to side  It was noticed that the spacing  between columns of the letter seemed wider than desirable  We deduced that  this was because of the processing time involved with updating the grayscale  data array that is written out to the controllers  Because we were using a set  function designed to set a specific 12 bit value at a specified index  a lot of  calculations were t
53. GB values by calling the function    79 WW    Bufferedimage getRGB   and supplying an x and y coordinate  Using these  library the user will not need to be concerned with the image file format  and we  will not need to code the tedious functions that would be required to decode the  many image format possibilities  Having obtained the raw RGB data from the  image  we will need to format so that the microcontroller can use it efficiently     5 2 1 1 Image Buffer Format     The frame buffer will begin receiving frames starting at the Frame Base Address   The frame will be stored linearly starting with the pixel in the upper left hand  corner  going from left to right  and then down  Each pixel contains two bytes of  color data  Figure 5 2 1 1a shows the arrangement of pixels in memory  The size  of a single frame in memory can be calculated by multiplying the number of  pixels by the number of bytes per pixel  480 640 pixels frame   2 bytes pixel    614400 bytes frame        Pixel   0 1 210639   0 0 1 2 3 a00   TATS 1279  1 1280 1281 1282   1283         2558 2559  2 2560 2561 2562   2563         3838 3839                                                 479   613120   613121    e       614398   614399       Figure 5 2 1 1a Arrangement of Pixel Values in Memory    Each pixel is stored in memory as two bytes  containing the RGB color data  Red  and Blue both have a color depth of 5 bits  stored in Bits 11 15  and Bits 0 4    respectively  Green has 6 bits of color depth  stored in
54. LEDs cycle by decreasing the delay  The delay  value could be sent via Serial Monitor allowing for real time modification of the  speed of the cycling  The Serial Monitor allows for communication with the  program via USB interface     Basic RGB Test  The prototype LED array included 4 RGB LEDs which were  used to test displaying various composite colors  In this code  we manipulated  only the first RGB led  which uses 3 inputs from the LED controller  The code    mm 106    was designed to cycle very rapidly through 4096 colors values by using a triple  for loop  Each RGB value was represented by 24 bits  which is considered true  color and near the limit the human eye is capable of distinguishing two colors at   Each color with 24 bit color had 8 bits of color depth     Timer Qutput Compare Test  The purpose of this test was to determine the  maximum frequencies that data could be written to the LED controllers  The  PIC32 microcontroller contains 2 hardware timers that are available to be set   Timer2 and Timer3  Timert cannot be changed and operates at 80 MHz  the  clock speed of the PIC32  In addition to the timers  5 output compare modules  are available and are used to generate the Blank  Latch  and GS Clock signals   The grayscale clock needs to operate as fast as possible so that the full  brightness of each LED can be obtained very rapidly  Tests have indicated that at  20 MHz the microcontroller puts out a very clean signal with clear rising and  falling edges  Addi
55. The section prototype  used 6 RGB LEDS  5 of which were fully functional while the last one could only  light up the red color     6 2 1 Scaled LED Array Hardware Prototype Design     The design for the LED array prototype was similar to the full scale LED array   The only difference was that none of the controllers were cascaded  they were  single arrays  For the prototype version of the LED array did not need any    99 WW    controllers cascaded  Although this did not help with testing the speed at which  we could address the cascaded controllers  f sclk   this did provide a test of the  grayscale clock  f gsclk      7 Testing     Since like any project it is unlikely to work exactly like we designed it the first time  we turn the device on it was best to create some testing procedures to fully  experiment with certain software and hardware features of the device that could  prove to not model exactly like the theoretical design  These testing procedures  helped us calibrate certain components of the device so that they worked more  effectively     In the following sections of this chapter there are a series of tests that were  implemented with the prototypes described in the prototype chapter before  Each  test will identify the objective of the test  the prototype being used for the test and  a short paragraph of the results of the test     7 1 Display Alignment Sensor Testing     This section will cover the hardware and software test required to verify the  correct and d
56. University of Central Florida    Department of Electrical Engineering and Computer Science    3D Persistence  of Vision Display    Group 8    Senior Design II Documentation    Aaron Burlison  Patrick Srofe    Antonio Ortiz  Timothy Egan  Summer 2012   Fall 2012       Table of Contents    1 Executive Summary    d deed Eder 1  2 PO R 6    9  Lae 1  SE TT 1  CAN BEE Je EE 1  E ER 2  CN E GEN eee 2  2 NENNE 3  220  Fe PE Laverne maa 3  2 2 2 Computer Interfacing  4 aodenste  siduidsmidu em 3  GC ER e let 3  222  Ge e EEN 3  2 2 5 P  rammadkLvvs i dex cweciesdedenadedadenedeledenadededavadededewsdatedencdededensdensds 3  2 3 Ee ee e 4  3 Administrative EE 4  Sl BOP vr 4  32 le 6  3 3 Schedule and Milestones        ssmeessnssssesenssenndenssenedenssenndenesenedenssenedenesenee 6  EE KE 8  SEL  IP OWGE SUD eege eegene 9  ET Fl 9  TI Girc  it Protection  EE 9  4 1 1 1 1 Fuse Blocks and Fuses for Circuit Protection                 00 10   4 12 AC to DC Converter  10  Fel MR Je 11  te 12  4 1 2 3 Potentiometers and Variable Resistors                     cceeeeeeeeeeeees 12  4 1 2 4 Capacitors  EE 12    4 2 Video and Signal Processing          rrrrnnnnnnnrnnnnnvrrrnnnnnnnnnnnnnnnrrrnnnnnnnnnernnnnnnn 12    e iene wane eae 13  4 2 1 1 VGA Signal Standards  Lmummeisemmienssepnuseseunsmbejnutenketvdet 13  4 2 1 2 Signal Sampling  ENEE 13  4 2 1 3 Analog to Digital Conversion         rrnrrrvvvnnnnnnnnnnnnnrrrrrnnnnnnnrrrnnnnnnr 16   422 EE e eree EE Ee EEan E sE 16  4 2 2 1 HDMI Signal Gtan
57. a POV  display  Our research has indicated that the reason for this may be the costs  involved  The Atlys board described above is absolutely necessary for us to  consider live video input for our POV display but there are other considerations  that must be addressed as well  At first we decided that our secondary  microcontroller which will spin along with all of the LED   s need not be as complex  and expensive as the Atlys board  After much research it became apparent that  although we do not need an HDMI input on the rotating board  we do need a  substantial clock frequency in order to properly sample the large amounts of data  required for a live video feed  In previous sections we have mentioned possible  data rates that would be required to be sent through communications between  the two microcontroller boards  Regardless of the communication method we  choose  we must not consider if these microcontrollers can properly sample the  data at the required speeds to display a live video feed  Table 4 8 5 shows  possible resolutions we may consider for our display and the required data bit  rate necessary  The values in the table assume that the video data is not  compressed                       Resolution Data Rate  640x480 73 728 Mbit s  320x240 18 432 Mbit s  160x120 4 608 Mbit s  80x60 1 152 Mbit s  40x30 0 288 Mbit s                Table 4 8 5 Possible Resolutions and Corresponding Data Rates    The data rate values in table 4 8 5 a are calculated using the simple for
58. aking place that were not necessary  We could instead just  transverse the array one time  setting bytes to either the values OxFF  OxFO   OxOF  and 0x00  This optimized code was designed specifically for being able to  display text quicker and cause the displayed text to appear in higher resolution   After implemented the optimized code we could see improved clarity in the  displayed text     Column Test  In this test we have edited the    Letter A    program to print two  separate letters  one on top of the other  so that a column of letters would  appear  This was a step towards being able to display multiple lines of text  The  sensor was not initially implemented for this test and was added after the logic  appeared to be correct  Having then implemented the sensor  we could see  clearly two letters displayed  one below the other  and holding their position  without moving side to side     Mm 112    Word Test    After successfully displaying a single letter on each line we decided  to try displaying a word on each line  We stored the values corresponding to the  font table entries in an array for each line  For line one the array contained data  for the word    HELLO    and line 2 contained data for the word    WORLD     When we  ran this test the words successfully appeared but they were appearing in  inconsistent locations and the letters were lowercase instead of the intended  uppercase  After double checking the values in the font table and comparing  them with the v
59. al wire to complete the  circuit  Power was effectively applied to the copper washers from the wires as the  device rotated  There the power traveled from the washers to the RGB LED  arrays to support their operation  Figure 5 1 5 3a is a visual representation of the  design of a single slip ring  In this design you can get a basic idea of how we  planned out the slip ring   s construction  This image was created in DraftSight     Snare    Wire    Copper  Washer          Figure 5 1 5 3a Slip Ring side and top view    The actual slip ring  depicted in Figure 5 1 5 3b had a lot more requirements to it   As seen in the picture two aluminum hoops were used to elevate both the contact  wires and mounted by being threaded through a cable mounting piece and  attached to the aluminum hoops  These hoops were fashioned to the motor itself  to prevent movement  The wires that were threaded through the cable mounting  pieces were then attached to a relay via a lug attached to the stranded wire   s  end  This relay was where the DC power would be transferred to via the AC to  DC adapter  Between both copper washers electrical tape was wrapped to  prevent the wires from contacting the pipe and causing the pipe to become live   or shorting both elements     In order to prevent the aluminum hoops from being contacted also both wires  were wrapped in electrical tape from the point that they tied to create the hoop  that was wrapped around the shaft  This helped reinforce the contact around th
60. alues we were reading  it was determined that we were sending  the unmodified ASCII values  We changed to code to send modified ASCII  values which consist of the original ASCII value less 32 to index the proper part  of the font table  The letters also seemed to have a large gap between them but it  was hard to see with the words displaying in a different position every time  We  decided to include the hardware driven interrupt from the sensor in order to  ensure that the words would display in the same location each rotation     Word Test with Sensor Test  When we added the functionality of the sensor  circuit the word test became much more legible  It also became clear that there  were large spaces in between each letter which did not look very good  We tried  optimizing the way that the microcontroller communicates with the LED  controllers by directly manipulating that data that is sent to them  This new  method of sending the data to the LED controllers replaced the functions we  were using from the TLC library  We knew that the optimized code should run  faster than the previous code but for some reason there were still large gaps  between each letter  We eventually figured out that the reason for the gaps was  due to serial communication being attempted  We had some serial print  statements to help with debugging which would send serial data to the PC over  USB  This allowed us to read messages and see where in the code the board  was currently executing  but it also 
61. and  control chip  feature in Figure 8 3  This switch can be used to turn off and on  power to the motor without pulling the AC adaptor  this switch should also be  used as an emergency off switch instead of the ENABLE switch outlined in the  KBRG 212D manual     The second adaptor is an AC to DC variable adaptor and should be set to its  lowest setting 3 3V  The variable adaptor is designed such that if the user  decided to increase the number of RGB array modules they could also increase  the power required to power them  The final power supplier is a 9 volt battery  with a DC adaptor for plugging into the regulated port of the Chipkit  microprocessor  This is stationed on the rotating side and when replace should  be fashioned to the armature with the supplied zip ties  The 9 volt battery should  be replaced after about an hour to two hours use        Figure 8 2 KBRG 212D Power Switch       8 4 GUI User Manual     When executing the GUI the first screen that appears is the text message tab   This is the screen that will allow you to send text messages to the POV display in  real time  The text message tab can be seen in Figure 8 4     The first option is    Display     this option lets you choose which LED array to  display the text on  The text display is the only option that is currently  implemented in this version  The next two options are    Color     and    Animation      Color cannot be changed when the text display is selected since the text display  only uses gree
62. ata is sent and received correctly  We will look  at each of these features individually for testing  If each one is tested individually  and verified to be working correctly  then the application as a whole will be  considered complete     me 108    The first test of the GUI involved seeing how the data would look like that is to be  sent  This was done by organizing all of the data into an array and printing the  contents to the console  No networking code was used for this test  The data  printed to the console corresponded to the text contained in the text fields for line  1 and line 2  We performed this test for multiple text combinations and also for  blank text boxes  We also verified that symbols and spaces had the correct  output as well     The final test for the GUI will be the integration test which involves sending text  messages through the network  After adding the network code we use the TCP  echo server on the microcontroller to act as a way to verify our data  The  microcontroller receives the bytes of the text entered in lines 1 and 2  then echo s  the text back  After this simple test we added more functionality by saving the  text for line 1 into an array and the text for line 2 into a separate array  These  arrays were then used for the echo back to verify that they contained the proper  information  After this test was completed we were confident that our GUI worked  properly and should send the proper text messages to the microcontroller  The  next ste
63. ate at 850 nm or 1300 nm wavelengths and have a larger core size than  single mode fiber cables  However  due to the larger size of the multimode core   multimode systems suffer from high attenuation can therefore cannot operate at  the same distance as single mode systems  One advantage the larger core size  of multimode systems is the high capacity and transmission data rates   Multimode systems can transmit data at rates of 10 Mbs to 10 Gbs  As well  in  general  the cost of multimode fiber systems is less than the cost of single mode  fiber systems     Upon reviewing the differences between multimode and singe mode fiber cable   the research on fiber to Ethernet conversions will focus in multimode fiber  communications only  The difference in transmission length between multimode  and single mode is negligible for the application of the POV display as the  maximum transmission distance will not exceed more than ten feet  As well  the  higher cost and lower transmission rates of single mode fiber cable make  multimode fiber a clear choice for the application and use of the POV display     Various Ethernet to fiber solutions exist on the market today  Ethernet to fiber  converters or media converters are used in various industries from substation  communications to bringing internet to homes across the nation  Several  manufactures provide fiber to Ethernet solutions all within the design criteria of  the POV display  Table 4 4 2 1 1 below list a few available solutions inc
64. b LED Controller Wiring AAA 65  Figure 5 1 3   Motor Control Flow Chart 2  mmeseessmemmsmmssiesinsemsessimesenesnngedngevnse 66  Figure 5 1 3b The KBRG 212D Regenerative Drive Chip         rrrrrrrrrnnnnnnnrrrnnnnnnr 67  Figure 5 1 3c The Dayton 9FHD7 geeteeieeiteeegegie ue gegeeee gege gege ege ebe 68  Figure 5 1 3 1a Motor and Power Connection        arnnrrvvrnnnnnnnnonnnnnrrrrnnnnnnnrrrrnnnnnnn 69  Figure 5 1 3 1b Variable Potentiometer Presets           snnnssennseessessrerrrrreeserrrrrree 70  Figure 5 1 3 2a Speed Control Circuit EEN 70  Figure 5 1 3 2b Enable Circuit sicissiccicciinsusinnscncntutenducisdiaudineneuctidutestieaituieuencicucntnentxanteesee 71  Figure 5 1 4a Display Alignment Sensor Flow Chart  72  Figure 5 1 4b Display Alignment Sending Ciroun  73  Figure 5 1 4c Display Alignment Receiving Circuit          rrnnnnnnrnnnnnrrrrnnnnnnnnnrrnnnnnnn 74  Figure 5 1 4d Display Alignment PCB Layout  75  Figure 5 1 4e Sensor With Reflective Gurtace EE 75  Figure 5 1 5 3a Slip Ring side and top VIEW        rrrnnnnvrrrrnnnnnnnnrnnnnnrrrrnnnnnernrrrnnnnnn 77    Figure 5 1 5 3b Slip RINGS iodine hentntrorcncedicn diay indy denen cbidmenstatdadndwsaditnenitincaitns 78    Figure 5 2 1 1a Arrangement of Pixel Values in Memory        urrrrrrnnnnnrrrvnnnnnnnnnnnn 80  Figure 5 2 1 1b 16 Bit RGB Arrangement  80  Figure 5 2 1 3c Combining Grayscale values and storing in memory                    84  Figure 5 2 1 3a Visualization of Isolating Red RGB Value       ssessseeeeeeeeesse
65. blem and allow us to  connect wires to any of the I O s  but this will increase the cost of an already  expensive board     4 8 2 TI Launchpad  Rotating Microcontroller      TI offers a very cheap microcontroller that we may be able to take advantage of   The MSP EXP430G2 or Launchpad is a development board for the  MSP430G2XXX series of microcontrollers  The board only costs  4 30 and  includes two MSP430 microcontrollers  and a USB cable  The board will allow us  to program the microcontrollers using the USB interface  This microcontroller has  very widespread support  documentation  and example projects  Possible  limitations include the limited number of I O ports  2KB of program memory  and  128B of SRAM  The microcontrollers that come with the Launchpad board only  have 10 available I O pins  If we were to purchase a separate higher end  compatible microcontroller we can increase the number of outputs to 16  The low  number of I O pins may require us to use more than 1 microcontroller  but as  stated earlier the Launchpad comes with 2 of them already  and the higher end  MSP430 controllers with 16 I O ports are less than  2 each     4 8 3 Arduino Uno REV 3  Rotating Microcontroller      The Arduino Uno board is another alternative to the TI Launchpad  This board  comes with an ATmega328 microcontroller on it  The Arduino Uno board takes  care of the USB interfacing and programming  This board is more expensive than  the TI Launchpad at  35  The higher price may be justi
66. brary to use  There did  not seem to be a visual GUI editor for C   available  and it seems that for most  GUI applications  C   is not the language of choice  We believed it was safe to  say that C   should not be the language we use to build our communications  GUI application  Even though C   was not the best choice for developing the    47 E    GUI  C   may be better suited to interface with the hardware for USB  communications     Visual Basic is a programming language that is specifically designed to allow  agile development of GUI applications  The IDE  Visual Studio  has a visual GUI  editor for programs using Visual Basic  It is very easy to drag and drop text  boxes  labels  buttons  etc  onto each form of the application  Programming the  functions of the elements placed in the form becomes as simple as double  clicking that item and the IDE will jump to the code that controls it  This could  have been a good choice for quickly developing a GUI based application  but  only one member in our group is familiar with this programming language which  may not be adequate  It would most likely be more efficient to have more than  one group member to assist in the development of this application and having to  learn a new language may decrease productivity     The Java programming language was the best language for both developing a  GUI for a PC and for an android device if we had enough time to implement it   The Netbeans IDE has a built in visual GUI editor for Java whi
67. button is pressed  a special clear instruction is sent to the microcontroller   This is done by sending a unique clear signal that will have the microcontroller  overwrite all pixels with black values     5 2 3 3 GUI Wi Fi Communications     In this section we will consider how to communicate with the microcontroller  using Wi Fi  We will also be considering how to properly format the user input so  that the microcontroller has all of the necessary data to update the display  We  used the built in Java networking classes to perform Wi Fi communications  between the PC and the Chipkit uC32 board  The first step in Wi Fi  communications is manually connecting the PC to the    POV Display    wireless  network and entering the correct security key     95 EE    5 2 3 3 1 Wi Fi Communications Class     Wi Fi communications were handled in a separate WiFiConnection class  This  class has methods to connect to the POV display  assuming the PC is already on  the correct network   and send data  The constructor initializes a new  WiFiConnection class and sets the IP address and the port number  When the  connect method is called it will take the IP address and port number  and create  a new socket to establish the connection  The send method was designed to for  multiple input possibilities  We use a char array as an argument  which is the  case for when two lines of text are being sent     5 2 3 3 2 Wi Fi Communications I O     The Wi Fi communications UO operations take place within 
68. ce  connected to our display would have been the HDMI source  HDMI has two  separate communication channel protocols that we must become familiar with   DDC  and TMDS  Another important signal that must be considered is the TMDS  clock signal  HDMI provides content protection capabilities through HDCP or  High bandwidth Digital Content Protection  HDCP will not be necessary for our  project so we will not consider it in our research  HDMI is also capable of sending  control signals in both directions  allowing the connected devices to send  commands to each other  We would have most likely not taken advantage of  HDMI control signals  Our main focus for HDMI signal standards will be on the  DDC and TMDS communication channels  The pin configuration for an HDMI  cable is shown in the following Table 4 2 2 1 a                                                  PIN   Signal Assignment   PIN   Signal Assignment  1 TMDS Data2  2 TMDS Data2 Shield  3 TMDS Data2  4 TMDS Data1    5 TMDS Data1 Shield   6 TMDS Data1    7 TMDS Data0  8 TMDS Data Shield  9 TMDS Data  10   TMDS Clock    11   TMDS Clock Shield  12   TMDS Clock    13   CEC 14   Reserved   15  SCL 16   SDA   17   DDC CEC Ground  18   5V Power   19   Hot Plug Detect          Table 4 2 2 1 a HDMI Pin Configuration    DDC or Display Data Channel provides a way for the display to communicate  which resolutions are supported to the graphics output device  HDMI uses a  DDC protocol named Enhanced Extended Display Identification Data
69. ce for communicating with our device we need to know the best way of  going about creating it  Would it be better to create it in C language or Java   What classes  functions  and variables will we need to implement the project   Section 4 7 will further discuss these concepts answering these questions and  more     4 1 Power Supply     Just like any machine  the POV display required a source of power to operate  As  discussed in the motivation  the POV display needed to be portable to require  movement between events and shows  However  due to the size of the POV  display and the power requirements of the motor  to operate the POV display  from a battery supply would require a significantly large battery  A large battery  deters from the portability of the POV display  As such  the power supply  research was focused on utilizing power from an AC outlet     4 1 1 AC Input     As previously stated  the POV display would draw all of its power from a standard  AC outlet  In the United States  the standard power for an outlet is 120 Vac at 60  Hz  In addition  the standard wiring practices for AC power in the United States  for wiring of a 120V system is for the black wire to be the hot or line  the white  wire to be the neutral and the green or bare cooper wire to be the ground     4 1 1 1 Circuit Protection     One additional design requirement for the AC input to the POV display that would  require research is circuit protection  Since we would be accepting 120V AC from    o E
70. ch consists of 16 RGB  LEDs controlled by 3 LED controllers  This would in essence be a miniature of  the full miniature LED array  The addition of this display required modification of  the pin I O s available to the full array  specifically the loss or XERR input  This  also requires that we use the A and B array columns latching signal which both  pulse at 7040 Hz to be combined into a separate output pin that pulses at 14080   14080 Hz allows the text display to be flashed at 22 frames per second     In order for this implementation to work  the interrupt handlers displaying column  A and column B of the primary array would effectively also be flashing the text  display at the same time  In the primary loop which handles writing to each    PS 90    column  the text display would also need to be written to and made ready before  each of the display interrupts occur     The text display will be capable of displaying text with various settings  such as  scrolling text left or right at different speeds  and color alteration  Allowing the text  to scroll involves incrementing certain pointers into memory while always keeping  track of the base pointer for the text data  After a certain amount of rotations of  the POV display  a pointer that points to the text data is incremented and  becomes the new reference base pointer  When writing the data  the reference  base pointer is incremented and a modulo operation is performed to wrap it back  around to the true base address of th
71. ch greatly  simplifies GUI design and implementation  The Netbeans GUI editor allowed us  to develop a GUI application in a similar way that Visual Basic would have  allowed us to  Java is a high level object oriented language and has many built in  classes to support agile development  There are also many open source Java  libraries available for download to provide further features and functionality  We  were also already familiar with the Java programming language  Java was the  obvious choice for a high level programming language that we already possess  enough knowledge to code in and had enough built in features and tools to allow  us to rapidly build the tools we need for our project  The only drawback to using  Java was the limited functionality when it comes to accessing connected  hardware  This could have been an issue for us since we were planning on using  communications through USB  or a connected wireless adapter  In order for us to  implement USB communications using Java we would have had to find a suitable  driver for our desired operating system and find a Java library that is capable of  interfacing with that driver  Since we found such a driver and software library  combination it was safe to say that we would be using java for our GUI  application development     4 7 2 1 Image Format Conversion and Resizing     Our GUI would allow users to select an image to be displayed and load it onto  the rotating processor  Without being too restrictive on the user 
72. characters long  This  information will then be sent to the microcontroller using Wi Fi  The information  that the microcontroller needs to receive is simply the ASCII value for each  character  The microcontroller is able to interpret each ASCII value and match it  with a font table that is stored in flash memory in order to display the message     93 WW    Image    Text      Display  o Text display Main display       Color  Red    Green Blue Custom    Animation  None    LINE1    line2    Send Text   L Clear Text      Figure 5 2 3 1 Text Input Tab             5 2 3 2 Image Input     The image input option allows the user to select an image from the hard disk to  display  The Image input appears on the GUI as a button that will then open the  file chooser dialog allowing the user to select an image from the hard disk  Any  common image format is acceptable  The only image formats that should be  restricted are the ones that the built in ImagelO Java class is not capable of  parsing  The options for images include whether or not to crop the image  when  the image is too large   If the crop option is selected then only the portion of the  image that can fit on the screen will be shown  otherwise the image will be  shrunk to fit  Another option for image input is the position where the image is  displayed  this is for images that are too small  There are nine choices available  in a box shape from top left to bottom right  The current version does not fully  support image messag
73. ck  DDC data  and DDC  return  which allows the display to comminute with the PC and determine which  display mode will be used to transmit the data  Figure 4 2 1 2 d shows the timing  specifications of various video modes defined by the original IMB standard and  VESA standards     As seen in Figure 4 2 1 2 c  a row of pixels is transferred in the time specified by  length A  which is the distance between the front edge of each HSYNC pulse  B  specifies the width of the HSYNC pulse  C and E are the front door and back  door times  respectively  which surround the HSYNC pulse signal  D is the time  during which actual pixel data is transmitted  The vertical timings can be  interpreted similarly to the horizontal timings  O being the time for a full frame  P  the VSYNC width  Q and S the front and back door times  and R the actual time it  takes to transmit the frame     Horizontal Vertical       Video Video                1024x  768  85Hz    E 53 67  NC Z 9 9 37 5  9 5 4 60 023   68 677  31 77   31 77   26 66   23 11   21 33   18 63  A us  8 7 7 1 3 1 16 66   14 561  B us   3 813   3 813   2 032   1 556   1 616   1 138   1 219   1 016  C us   1 907   1 907   3 81 2 222   3 232   2 702  2 235   2 201  25 42   25 42   20 31   17 77   16 16   14 22  D us 2 2 7 8 2 2 13 003   10 836    15 EE             E us  0 636   0 636   0 508   1 558   0 323   0 589 0 203   0 508                F_VSY 70 08 85 00 85 06   NC Hz   59 94  7 75 8 75 1 75 029   84 997  16 68   14 26   13 33   11 7
74. cked and the reasoning for the  choice  Finally  in the last two sections we will discuss the process of controlling  the motor we chose     4 5 1 Torque Requirements     As will be discussed further in the chassis design section it showed that we  needed about 0 4 Nm to get the motor to just initially spin the LED apparatus   After that the torque requirements were much lower  This however  is actually a  pretty large requirement for motor standards considering most cheap motors are  rated for far lower ranges  somewhere in the 1 35 to 1 9 horse power range  This  proved to be a bit of an issue since that means we needed a high torque motor  that also could maintain our revolutions per second value     4 5 1 1 AC Motor Application for Torque Requirements     AC motors are perfect for this sort of activity  Our research showed that AC  motors tend to be used for high torque requirements and specifically maintained  high torque requirements     4 5 1 2 DC Motor Application for Torque Requirements     DC motors however  capable of getting high torque at start up but did not  maintain them as effectively as AC motors  This did show though that both  motors could be used for the application we desired it just seems that the DC  motors needed for this application were rather costly  These motors can range  from anywhere between two hundred dollars to a few thousand dollars  Used  motors that reach these requirements were difficult to acquire  with none at the  local Skycraft store
75. com  Web      lt http   voip about com od mobilevoip p wifi htm gt       Wi Fi   Wikipedia  Wikimedia Foundation  08 Jan  2012  Web    lt http   en wikipedia org wiki Wi Fi gt       WIRELESS NETWORK COMMUNICATIONS OVERVIEW FOR SPACE  MISSION OPERATIONS   Public ccsds org  Web    lt http   public ccsds org publications archive 880x091 pdf gt       Wireless Sensors on Rotating Structures  Performance Evaluation and Radio  Link Characterization   Http   dl acm org  Web    lt http   dl acm org citation cfm id 1287770 gt       AG Motor   Wikipedia  Wikimedia Foundation  30 July 2012  Web  01 Aug   2012   lt http   en wikipedia org wiki AC_motor gt       MICROMO   Micro Drive Systems  Brushless  Coreless  amp  Linear DC Motors   N p   n d  Web  01 Aug  2012   lt http   www micromo com  gt       DC Motor   Wikipedia  Wikimedia Foundation  24 July 2012  Web  01 Aug   2012   lt http   en wikipedia org wiki DC_motor gt       DC Motor Calculations  Part 1     Developer Zone  N p   n d  Web  01 Aug   2012   lt http   zone ni com devzone cda ph p id 46 gt       Go Green  Go Electric   DC Motor Speed Controller PWM 0 100  400Hz   3khz Freq   N p   n d  Web  01 Aug  2012     Mm 128     lt http   www masinaelectrica com dc motor speed controller pwm 0     100 400hz 3khz freq  gt       Passive Infrared Sensor   Wikipedia  Wikimedia Foundation  30 July 2012   Web  01 Aug  2012      lt http   en wikipedia org wiki Passive_infrared_sensor gt       IKA TACH   IKALOGIG  N p   n d  Web  01 Aug  201
76. d  In software  we have set up a hardware  interrupt which looks for a rising edge on the pin for sensor input  When the  interrupt is generated  a flag is set to true and allows the display code to execute   The display code sets this flag back to false upon completion and then waits for  the flag to be set true once again     5 2 2 Microcontroller Software Design     This section will cover the software design requirements for the rotating  microcontroller board  Software requirements include reading the preprocessed  data and image frames arriving at the board via Wi Fi connection  and outputting  this data to the LED array     WW op    5 2 2 1 Modes of Operation     The controller has various modes of operation and is receiving various data and  commands via Wi Fi from the stationary controller  Data includes processed  frames  which are to be stored in a frame buffer  processed still images  and text  data which will be displayed on a small text array  Sensor data is also received  and is used to determine when to start displaying the device  Additionally   commands will be received that change the operation modes of the POV display     The main LED array displays data that corresponds to a single image that has  been stored in memory  The main array output can either be in IMAGE MODE   or OFF MODE  In the case of OFF MODE the main LED array will not display  anything  however the text array could still be in use     The text array is in use  it will be operating in TEXT
77. d  isolation from the circuit due to the fact that both of these inputs are not isolated  from the AC power taken in by the circuit  However  these portions of the circuit  means that the device can be scaled up to a digital input allowing for much more  control over the motor speed and even possible wireless control of the motor   The enable input of the circuit can also be used in this method allowing for a  digital on off signal      15V SIG  15V TACH COM EN    MAIN SPEED  POTENTIGMETER       Figure 5 1 3 2a Speed Control Circuit  ma 70    For our purposes we used the simplest method of a potentiometer and a SPST  switch  For the potentiometer we used the forward configuration shown in Figure  5 1 3 2a  In this configuration the motor s speed can be increased or decreased  by turning the electromechanical trimmer dial counter clockwise  decrease  speed  or clockwise  increase speed   The positive terminal of the potentiometer  is fed into the  15V terminal while the trimmer terminal is fed into the SIG  terminal     The neutral terminal is fed into the COM terminal along with the neutral terminal  of the enable circuit  The switch as just mentioned has its neutral terminal in the  COM terminal and its live terminal fed into the EN terminal  this connection is  shown in Figure 5 1 3 2b  As seen in this image the J7 jumper is placed into the  CTS position  The KBRG 212D is capable of both a regenerative stop and a  coast to stop setting  we chose the coast to stop setting in
78. d find adequate amount of both familiarity and challenge  within the project     2 1 3 Creativity     To be completely honest  if you are not interested in a project it is very difficult to  work on it  This is a very true statement and most of our group members wanted  a project that was entertaining enough to really keep their attention in addition to  test their knowledge  This project seemed entertaining to our team  It is as simple  as that  Not only would we be developing our skills as engineers but we would  also get to flex our creativity by programming and designing a variety of  interesting displays for this device  The final product would be bright  exciting   and interesting to see once it was complete  which our team was very excited to  experience     Mm 2    2 2 Objectives     While in concept a persistence of vision device is good we needed to put to  words specifically what our objectives for this device were  Since we had some  ideas of what we wanted when choosing this project we also had a variety of  features we wanted to add besides the basic features these devices generally  come with  The following sections identify and describe these features in further  detail     2 2 1 Frame Rate     Since human vision is tricked to perceive motion around the rate of twenty five  frames per second we needed a device to spin at a rate capable of recreating  this illusion  Since twenty five was the bare minimum we decided to overshoot to  thirty frames per second  thi
79. darde  AAA 17  4 2 2 2 Signal Sampling  Luse nonkendedvntrnttmnine 19   4 2 3 Video Processing  Stationary Controller  19  4 2 3 1 Color Depth Heduchon  en 20  CC Ce RE 20  4 2 3 3 ee KEE 20  4 2 3 4 Video COMPRGSSION NEE 21   43 RE 23   43 ER ea 23   4 3 2 LED RGB 2    3   RE 24  4321 Pulse Width Modulation  secccc deeiseccdepcceusdauscersdeniisncdeviaexedevibexeded 24   43211 TLC5971 LED Controller vs jsnesmmmnisemssnetisiantene 24  4 3 2 1 2 TLCO5940 LED CGontroller AAA 24  4 3 2 2 Latch COMMO Sects cerecucd ceo ctedocnetke crested ommattnd anecidnomeseasdene 25   4A Ge 01010101 ee 26   AAA et 26   4 42 Wired CGommuncatons 28  4 4 2 1 Fiber Optic Communications         anorrnnnnnnnnnnnnnnnnrrrrrnnnnnnnnrrnnnnnnr 28   4 4 2 1 1 Fiber to Ethernet Conversion          rnnvrrrnnnnnnnnnrnnnnnnrrrnnnnnnnnrnnn 28  4421 2  Fiber Optic Rotary JOS  sn  cscctecccncsteansenctwectneetnerseantncnsocenies 29  4 4 2 2 Coaxial Copper Communications 30  4 4 2 2 1 Coaxial to Ethernet Conversion                 ccccceeeeeeeeeeteeeeeeeees 30  4 4 2 2 2 Coax Rotating Jomt  ANEN 31  4 4 2 3 Ethernet Protocols  33    4 4 2 3 1 Ethernet Software Library         arnnnrnnnnnnnnnnonnnnnnrrrrnnnnnnnnvnnnnnnnn 33    4 4 2 4 Microprocessor Ethernet Hardware 34  4 4 3 Wireless Communications        rrrrrnrrrrrrrrrrrrrrrrrrrrrrrrerrrrrrrrrrrrsrrrrrrrere 34  EE D AWIR EE 35  4 4 3 1 1 WiFi ele EN 35  2132 Be 0    9 emer aini iiai aii EAEE 36  4 4 3 2 1 Bluetooth Protocols  A 36  4 4 3 3 Effects of Rotationa
80. e     Wi Fi and LED Array Testing  This was a test designed to find any compatibility  issues in using the Wi Fi library and LED array library simultaneously  Both  libraries are using the SPI interface in order to communicate with the  microcontroller  The test consisted of running the basic cycle code at the same  time as a server is running and echoing the text sent to it  It was discovered  during this test that the libraries conflicted and were not sharing the SPI interface  properly  One cause of the problem was the use of Pin 10 by the LED array    Mm 110    library  as that pin is also used as the slave select line for the Wi Fi chip   Because of this issue  we needed to move the blank signal required by the LED  array off of pin 10 and onto a different pulse width modulation pin  This involved  simply using a differed output compare module since each one is associated with  a particular pin  Having moved the blank signal from pin 10 to pin 5  we resumed  compatibility testing  A second conflict involving the SPI interface also existed   and this problem was related to the SPI settings themselves  Wi Fi uses its own  data clock setting  and our array uses a different data clock setting  Because of  this  we implemented in the LED array library a way to restore its own SPI state  in a similar way that the Micro SD library maintains its own state  Having added  this restore SPI settings function to the LED array library  all issues were  resolved and we moved onto imple
81. e  hoop and was used to thread through the cable mounting piece which helped  insulate the mounted wire from the aluminum hoops     D       Figure 5 1 5 3b Slip Rings    WW 78    5 2 Software Design     There is a significant amount of software which had to be designed for this  project  We will be focusing on the software design for each individual part of the  project here  There are two primary software entities  the computer side GUI  which accepts user input and the microcontroller which receives commands and  data and writes to the LED controllers     In the GUI design we will be discussing the design section of our software  development lifecycle  This section will focus on organizing the set of  requirements and specifications  deciding on a suitable architecture  and visually  designing the GUI  No implementation will be done here  This section serves as  a plan of action for the implementation and to answer all questions that may arise  during development  An effective design will make all of the decisions that need  to be made in order to make implementation straightforward and agile     The microprocessor will receive data via Wi Fi from a computer which has  connected to the server running on it  This data includes ASCII values for live  updating of the text display  as well as commands to turn the display on and off   change what is being displayed  and to store data in Micro SD memory  User  input is received through computer side GUI and includes text messages
82. e additional array of 16 LED   s for prototyping this came out to a total of  72 48   The text display will require 16 green LEDs each at  0 27 for a total of  4 32  In  addition to the LED s  we needed to procure some way to control the LED s  We  used seven controllers total each costing  2 52 per controller with one extra for  prototyping  This came out to be about  20 16     WW 4    The POV display must be capable of rotating at 25 30 RPS  though we only  achieved 15 20 RPS  This required a sizable motor to insure we can operate at  the required toque values  As well  we required a chassis or frame to support the  LED array and on board controllers  The motor came out to be  35 00  while the  Chassis was donated to us     In order to processes the incoming signals and display the image on the LEDs  we needed an onboard microcontroller  In addition  we needed a way to  communicate with this microcontroller during operation so a wireless chip was  also needed  The microcontroller came out to be  34 99  and the wireless chip  for the controller came out to be  49 99     In order to tie the on board controller to the LED array we needed to procure  PCB boards  We also needed to procure additional wire and cable to make all  the miscellaneous connections required  The PCB boards came out to about   339 99 while the wires and cables came out to be around  89 98     The final piece of the budget was the motor control and sensor circuit  The motor  control chip turned out to be  
83. e circuit that was used for the PCB of the final  circuit can be seen in Figure 5 1 4d  In this layout you can see the input and  output terminals on the left side that include the two inputs Vcc  and CTRL  Just  below that is the OUT terminal  and then finally the GND or common  Everything  is connected directly to the microcontroller on the rotating side  though the Vcc is  capable of being connected to an external power supply as long as the GNDs are  common between the microcontroller and this external Vcc  The Vcc required to  run the device is 5 volts  Also noticeable in this board layout are the two adjacent  IR LEDs  These through hole LEDs were solder into their ports with a little length  left on their leads  This allowed us to choose either to read from the z axis   Coming out of the board layout  or the positive x axis of the board by bending  the leads to reface the LEDs     In addition Figure 5 1 4e is a photographic image depicting the Display alignment  sensor and the reflective surface used in the final design of the product  In the  image you can see how the sensor would traverse over the reflective surface and  trip  The surface used as stated was a sheet of aluminum metal that was  attached to the surface of the chassis top with permanent double sided tape  The  sensor as seen in the image was mounted to the bottom of the aluminum bar that  was rotated  It was mounted there with three screws and washers that created a  tight sandwiching effect preventing t
84. e text data  The speed at which the text will  rotate depends on how many rotations of the POV device are required before the  pointer is moved     5 2 2 4 Microcontroller Wi Fi Communications     The microcontroller receives communications through the attached Wi Fi shield   This board will act as a server waiting for a client to connect  Header information  will have to be deciphered on this board so that this board knows where to send  the data  There is a single byte variable assigned to hold the header data  Once  the header has been received it is analyzed and the microcontroller is able to  decide where to send the rest of the data it receives  If a control signal header is  found then the data that is sent is considered an instruction to perform  If the  instruction is something the microcontroller recognizes then the proper action is  taken  For example  if the cycle signal is sent the microcontroller will begin  cycling through the LED   s until a new message is received that requests the  microcontroller to take a new action  The text messages were greatly simplified  by using a font table that we hard coded in the flash memory of the  microcontroller  There is a two dimensional byte array that holds all of the column  data for each letter and for most symbols  This font table uses standard ASCII  values less 32  For the main display the text signal is very similar  it still uses the  font table but we had to skip to every third LED since each RGB LED contains  thr
85. eader  We will actually just send the first byte with our header data which  will be assigned the following possible values shown in Table 5 2 1 4     7 WW                   Header Bits   Data Type  000 Text Small   001 Text Main   010 Image  011 Command                Table 5 2 1 4 Header Information    The small text data is meant to appear on the secondary smaller display which  will give the effect of text on top of the current main image  The header simply  decides which display to send the data  Each data type has a fixed size that is  expected to be sent  For the small text display the expected size is 15 bytes  on1  byte is the header and then each character is one byte for a total of 14  characters  We are currently allowing 7 characters per line  The image data type  will be a single frame that will be displayed constantly on each rotation  Lastly  a  command signal can include commands to clear the main screen image or the  text screen image  We are also currently able to use a command signal to have  the microcontroller run the cycle test code which cycles through each LED in  order  A simple Wi Fi transmission is shown in Figure 5 2 1 4  The figure  assumes the appropriate header is added from the PC              PC GUI Header Added Wi Fi                            Figure 5 2 1 4 Wi Fi Transmission Flowchart  5 2 1 5 Display Alignment Sensor Software     An IR sensor is being used as input into the microcontroller  The sensor  generates a high voltage when trippe
86. ed as low as possible   This means that the transition from 0 to 1 or vice versa will happen as few times  as possible in the transmitted signal  The reason for this is to minimize the  chance of the signal degrading along the transmission line     Differential  Signaling    means that there are two different signals being sent  one on each  cable in a twisted pair  One of the signals is the audio and video data  and the  other signal is the inverse of the first  The receiving end compares the first signal  with the second and calculates the difference between the two  this data is then  used to make corrections when possible  There are three TMDS channels in an  HDMI cable  each channel has its own twisted pair  There is also a TMDS clock    is    signal  which itself is not a TMDS signal  but simply a digital signal to help  synchronize the TMDS signals and allow for the differential calculations needed  for error correction  The following Figure 4 2 2 1 shows a simple flowchart of how  we will be handling the HDMI TMDS signal with the HDMI input on an FPGA     Red  7 0   TMDS Red  Green  7 0        Aux2  3 0     DE  TMDS Clock  VDE    Figure 4 2 2 1 TMDS Input Flowchart      Red  7 0       Green  7 0     TMDS  Green   VSync    er Atlys HDMI ome  nput Decoder    Aux2  3 0       4 2 2 2 Signal Sampling     If we were to use an HDMI input we would have used the Atlys board by Digilent   The Atlys board is based on the Xilinx Spartan 6 FPGA  and has built in HDMI  inputs and o
87. ed as such  If we create our own method of  using the output pins for the RJ 45 connector we may have been able to simplify  communication greatly  We would have created our own header for the data  being sent to identify what is being sent  We would have most likely used a clock  speed of 200MHz for a 100Mbit s data sampling rate     4 4 2 4 Microprocessor Ethernet Hardware     A possible component to implement Ethernet communication on our boards  could have been the Arduino Ethernet Shield  which would have required that we  use Arduino boards for the rotating and stationary controllers  The board has a  16 kilobyte buffer and has a connection speed of 10 100 Mb  The board supports  both TCP and UDP connections as well as simply transferring single bytes at a  time without any protocol  The board contains a library of functions including a  server class  client class  and an EthernetUDP class  as well as the main  Ethernet class and IPAddress class which allows you to assign the board an IP  address     4 4 3 Wireless Communications     We considered wireless communications in order to send information from the  stationary FPGA to the rotating microcontroller  The wireless communication    me 34    must support a high enough bit rate to send a 320x240 color video signal  The  color video signal would have had 256 possible colors per pixel  so 8 bits per  pixel would have been needed  We would have also liked to transmit 30 frames  per second  The minimum required bitrate t
88. ee individual LED   s  The image header will signal an image of a fixed size  The  PC takes care of the image formatting and the microcontroller simply receives  the bytes and stores them in order to be displayed  Figure 5 2 2 4 shows a  simple flowchart detailing Wi Fi communications on the receiving end     1 E    Image  Header  Found    Wi Fi Header OR Text Header  Analysis Found    Command  Signal  Found        p           gt        OR    Figure 5 2 2 4 Wi Fi Receiving Flowchart       5 2 3 GUI Design     Main  Display    Small Text  Display    The GUI was implemented on a windows PC using Java  The following bulleted  list will show a formal enumeration of the requirements which were implemented  in the final application  Most of the items in the list are repeated from the  requirements analysis in the research section  Some of the requirements are new  and have been discovered while executing the design     Intuitive user interface   Multiple line text message entry   Color options for text messages   Animation options for text messages   Image import with simple image processing  Image positioning   Image cropping option   Image clear button    A pipe and filter architecture was used for this application  The user input should  be either the text message or image which will then pass through a software  filter    before being output in the proper format  The following architecture  diagram in Figure 5 2 3 better illustrates the pipe and filter model we used     WW 92  
89. eed the motor to be highly controllable just stainable  The device only  needed to spin at a constant speed so there was no very high or very low speed  requirements for the device  just the ability to spin our apparatus and to spin it  consistently at the desired rpm value     Mm 40    PWM was quite capable of doing this and had very low heating effects on the  system as long as you find the right components for the circuit  The biggest  drawback to this method however was the noise  When using PWM there is a  chance of causing mechanical noise within the system  or a humming sound     4 5 5 3 Variable Resistance and Pulse Width Modulation Motor  Control Method Comparison     In the end  though we wanted to limit the noise  and while the PWM was capable  of doing far more then we needed the controller to do  It did cut back on heat  dissipation and we decided that this was the best method  With the motor  spinning at a high rpm value heat dissipation was a concern and this would help  minimize any additional heat factors within the circuit  In addition  for the sake of  scalability having the motor more controllable then our original purpose would  leave the device open to any future upgrades to the system that might desire a  stricter control system     4 5 5 4 Sensor Reading Applications for Motor Control     The final concept we needed to think about for motor control though was actually  tracking the rom values of the motor so we could send a signal back to our  controll
90. eft free  we turned to an online distributor  McMaster Carr  McMaster   Carr offers a wide range of industrial products at reasonable prices  One such  product  and the first feasible solution for rotating the POV display  was a plain  bearing turntable  Turntables allow for the rotation of devices mounted on top  while working on the device  One particular turntable  part number 8700K1   rotates with the center free and available to be used by the wired  communications joint  The 8700K1 turntable can support loads up to 337 pounds   well above the weight requirements of the POV display  As well  there are 8 inner  ring mounting holes and 8 outer ring mounting holes providing an adequate  surface to mount not only the rotating display but also station supports  However   the turntable has two downsides that make it a less than desirable solution  The  first downside was the cost of the turntable at about  215  The second downside  of the turntable was there are no posted maximum rotating speeds  This meant  that the turntable may be capable of rotating at the required speed of the POV  display but no document exists to support it either way     mm 44       The second feasible solution from McMaster Carr  and more promising than the  turntable  was an extended ring steel ball bearing  Type ER  The extended ring  ball bearings have an extended inner ring making installing the bearings easier   Although the extended ring ball bearing did not have any inner or outer mounting  hol
91. ennn 85  Figure 5 2 1 3b Visualization of Isolating Green RGB Value          rnnnnnnrnnnnnnnnnnrnn 86  Figure 5 2 1 3c Visualization of Isolating Blue RGB Value         rrrnnnnnnrrrnnnnnnnnnnrn 86  Figure 5 2 1 3d Grayscale Mapping Diagram                 cccceeeeeeeeeeeeeeeeeeeeeeneeeeeeeees 86  Figure 5 2 1 3e Visualization of Combining Grayscale Values             sessssssseeee 87  Figure 5 2 1 4 Wi Fi Transmission Flowchart AAA 88  Figure 5 2 2 4 Wi Fi Receiving Flowchat AAA 92  Figure 5 2 3 Pipe and Filter Software Architecture                   cccsesseeceeseesserteeteees 93  Figure 5 2 3 1 Text Input Tab iets csat carts oictsisstonestiacteleaderieuineitbdalesdetbtnibabetaldstpldsbedagndeoadebsd 94  Figure 5 2 3 2 Image Input Tab E 95  Figure 5 2 3 3 2 WiFiConnection Sequence Diagram         rrrvnnnnnnnnnnnnnnrrrnnnnnnnnnnnnn 97  Figure 5 2 3 4 Class Diagram for eo  98  Figure 7 1 Power Transmission Prototype Aen 99  Figure 7 5 Prototype LED Array used in testing                    eceeeeeeeeeeeeeeeneeeeeeeees 106  Figure 15 10  Text Display cress tiancetiecnnisiatantenatadidasisaditausiuadaatediaanabenngagabae 114  Figure 7 5 7c  RGB Text Array displaying alternating color text    115  Figure 7 5 7d  RGB Text Array red letters           erusrnovrnrrannnvvnnrnonnnvnennnnnnnenennennn 116  Figure 8 1 KBRG 212D Input Switches AEN 117  Figure 8 2 KBRG 212D Power Swilchuamememnadummaanegemeidbddsnn 118  Figure 8 4 POV GUI Text Message Tab      rrrnnnrnnrnnnnnvnnnnnnnnnennnna
92. ent Atlys  boards  one which will remain stationary to receive the video input  and the  second one to spin with the LED   s and send all of the data to the LED controllers   Only the 500MHz clock on the Atlys board would be able to effectively sample  the high amounts of data associated with uncompressed high resolution video     5 POV Design     The persistence of Vision device required two major areas of design to  successfully create  The first section was our hardware design  which would  make up the Chassis  motor control circuit  motor  power supply  and display  alignment sensor  Each of these sections that we designed has subjections  within them that also needed to be designed for the project  The second major  section was the software design of the project  This section encompassed the  Wi Fi server and connection processes  the image processing for both the text  and RGB arrays  the data structures for all the code  the handling of all the  hardware inputs such as the display alignment sensor s output  and finally the  GUI that was needed to integrate many of these elements into a more user  friendly format  The following subsections will discuss the overall design of these  sections  including design elements that were thrown away during the testing  phase  Such elements that were thrown away for better methods will be indicated  both within this section and the testing sections as well as why the better  methods were chosen  Figure 5 is a photo graphic image of 
93. er to vary the input and adjust the speed of the motor to keep it constant   This was very important and had to be particularly accurate so that there were no  distortions created within the image due to an increase or decrease in the rpm  value and the predicted display rate  We had a couple of things to consider when  deciding what form of sensing we were going to do to keep track of any changes  in the rotation speed     The first being the structure of the device itself or in other words the chasse  If  the actual apparatus that we rotated was directly pivoting on the motors shaft  then the rom value would sync closely with the motor and there would likely be  minimal lose in rom value  However  if we had decided a gearbox was required to  rotate it  such as in the case of using a wired transmission process  we would  have lost some rpm value in the translation between the motor and the gearbox   If this was the case then our sensing side would have to be able to measure the  rpm value of the apparatus and not the actual motor itself     The second consideration was our sampling rate  Sense we are taking in a  snapshot of this device   s motion we are going to want to know how frequently we  want to take that snapshot  This is very important because we need to measure  the rom value rather frequently so that within one second we don   t lose or gain  information  To put it in perspective one second is thirty frames and if we are  losing even one percent of those we are lo
94. ered  the LED array would cycle rapidly through each of its 16 outputs     7 5 6 Integration Testing     109 E    LED Array and Micro SD Testing  This test was to determine if writing to the LED  array and also reading from Micro SD Memory at the same time would cause any  conflicts  Both devices are using the SPI interface for communications and share  data lines  and data clock signals  This test involved simply reading and writing  various strings to micro SD memory while executing the basic cycle code  intermittently  The SD library properly handled sharing the SPI interface with the  LED array  The SD library accomplishes this by storing the current SPI settings  on a stack  loading in its own  and then restoring the previous settings once  compete     Wi Fi and Micro SD Testing  We had many problems during the Wi Fi server  testing when including the SD card  At first the Wi Fi server would work correctly   but when it came time to write to the SD card  it was unable to open a file  We  were able to verify that the SD card initialized properly but for some reason a file  could not be opened  At first we suspected that the order that the libraries were  included may make a difference  so we tried including the SD library first  The  order of the library includes did not seem to make a difference so after much  online searching and troubleshooting we found some advice to initialize the SD  card before initializing the Wi Fi connection  Again this did not seem to make a  d
95. es  The file chooser is available and the user can choose  an image  The selected image is then converted into a file that has the RGB data  from the image organized by column to be displayed on the POV display  but the  image is not sent to the microcontroller  The RGB LED array does not allow us to  use Wi Fi communications so we cannot send an image at this time  Figure 6 3 2  shows a draft of the GUI design for the image input  The final GUI design will    EE oi    contain a combination of both the text input tab shown in figure 6 3 1 and the  image input tab in Figure 5 2 3 2            Crop   Select Image    Position        Clear Image            Figure 5 2 3 2 Image Input Tab    The Images are read using built in classes and methods for image handling   These classes include ImagelO  Bufferedimage  and ImageReader  We used an  ImageReader to interpret the image format and translate it  This allowed ImagelO  to read the image into a Bufferedimage  We then used the get RGB method of the  Bufferedimage class to get the pixel color values  The pixel color values were  very easy to convert to our format so that we can send the image using Wi Fi   Any blank pixels  no image data  are represented with a special value that lets  the microcontroller know not to overwrite any previous value in the flash memory  for that pixel  This allows us to overlay multiple images if they are small enough   This is also the reason for the clear image button in the GUI  When the clear  image 
96. es  it did have two knurled cup set screws on the extended inner ring that  could be used to secure the rotating side of the POV display to the bearing  As  well  the bearings have a dynamic load capacity of 2 860 pounds and more  depending on the part number selected  All Type ER extended ring bearings  have a max operating speed of 5 000 rpm  far exceeding the requirements of the  POV display  As well  the cost of the bearings started at about  30 and go up to  about  80 depending on the part number and size  Table 4 6 2 below shows  some available extended ring ball bearings  there size and cost                       Bearing   Shaft OD Wd  Load Part   Cost  No  Dia    ER10 5 8  1 85  1 7 32  2 860 Ibs   8090T11    29 67  ER12 3 4  1 85  1 7 32  2 860 Ibs   8090T12    32 61  ER16 1  2 05  1 3 8  3 145 Ibs   8090T13    33 79  ER24 1 1 2  3 15  115 16    6 535 lbs   8090T17    59 40                         Table 4 6 2 Extended Ring Ball Bearings  4 7 Graphical User Interface     We developed a GUI for use on a PC and researched the possibility of also  having one for an android device which would allow us to send either a text  message or image to be displayed on the POV display  When sending an image  to be displayed the image had to be in the correct resolution and format  If time  permitted we would have been able to have the software handle some basic  image formatting  First we will discuss the requirements of the application and  the method of communication  Last we wil
97. esired operation of the display alignment sensor     7 1 1 Sensor Hardware Test     There are a few things that we needed to determine about the sensor   s hardware  that required testing to insure that it would best align the LED display so that we  could better control the location and spacing of the image  The objective of the  first test was to determine if the sensor would correctly show a voltage pulse  when it registered a movement change  The second test s objective was to  determine if varying the CTRL signal to the sending circuit would have an impact  on the efficiency of the sending and receiving process of the infrared LEDs  The  third test s objective was to determine whether the output of the receiver circuit  had a noticeable enough pulse or change in voltage  Finally the fourth test   s  objective was to determine what effects the potentiometer had on the sensor  circuit     For all four of these tests we needed to use both circuits of the infrared sensor  outlined in the design section for the display alignment sensor  Section 5 2  The  circuit was left disconnected from the microprocessor for the purposes of these  tests     E 100    7 1 1 1 Sending Receiving Signal Hardware Test     This test encompassed both the first and third test requirements  For this test a  voltmeter was connected to the OUT location on the PCB design figure 5 2d  We  then connected a voltage source to the CTRL pin  This source was used to turn  on the sender circuit  The IR LEDS we
98. et  an idea of how much power was being supplied to the rotational side  To begin  we started with a power input of around 55 watts DC and begin rotating the  device with the prototype circuit connected to the rotational portion of the device   We then gradually increased the DC power supply until we got the light to just  turn on and recorded this value  Since the bulb required 60 watts to power the    Mm 104    difference between the 60 watts and what it took to power the bulb should be  close to the dissipation through the slip ring     The desire of this test is to have the slip ring handle the physical and electrical  demands of the device with minimal power loss  The result of the test showed  that the slip ring could handle turning on the light bulb at the exact watt  requirements being sent over  So in other words 60 watts sent over had no  dissipation  or so minimal that it was not enough to prevent the bulb from lighting   What was learned however  from this test was that the slip ring had contacting  issues and would cause the bulb to flicker on and off a little  This required us to  change our wire connection design from being just a straight contact to being tied  around the shaft creating a hoop around the shaft that the shaft scrapped  against     7 4 Wi Fi Communication Testing     The Wi Fi communication testing verified that the PC is able to communicate with  the microcontroller successfully  This testing required us to have a simple server  program on the 
99. f samples in order to prevent  too many of these errors  This may mean we need more than one infrared sensor  in order to prevent these errors such as two or four sets of them     As an added bonus  the use of this method is great for these projects for other  reasons  Since we would be using infrared sensors to create trip points along the  devices rotation we can use these trip points for other things besides just  calculating the apparatus    rom value  We can also use this method to predict  points within its rotation and create finite starting points to our image  allowing us  to split the image where ever we want  This means we aren t just floating the  image anywhere the LED happens to start turning on in its trajectory  Uses of this  include splitting the    screen    of the device into two separate sides  or drifting  images or text in the opposite direction of our rotation     4 5 5 4 2 Hall Effect Sensor     The Hall Effect method for measuring and calculating the rom value of the motor  is very efficient for this application  This process is both relatively inexpensive  and easy to implement and from our research seemed to also have a very small  error rate  There are however  a few issues with this method based on how we  decided to use it     The first issue with this sensing method is its motor limitations  If we decide to  use this on the motor side  such as in the case of direct motor apparatus rotation     WW 42    it is limited to motors that have a rotatin
100. fied by the increased  performance and memory of the microcontroller included  The ATmega328 has  31 5KB available for program memory  0 5KB is used by the boot loader   2KB of  SRAM  and 1KB of EEPROM  The ATmega328 also has 14 I O pins  6 of which  can be used for PWM  Another feature that may be useful is IC support  17C will  allow us to have serial communications to possibly another IC that will expand  the number of I O   s available to us  This board is also widely available and    51    supported  There are many hobbyist projects with open source documentation  and examples for helping us get familiar with programming this board  The  additional program memory and RAM may not be necessary  but the additional  outputs that this board provides may make a difference  Another thing to  consider is the programming language  The Arduino Uno board allows the use of  a C like language to program the ATmega328 microprocessor  If we were to use  the Tl Launchpad we would have to use assembly  It may be easier and more  time efficient to use the Arduino Uno board     4 8 4 Digilent Cerebot MX7cK  Rotating Microcontroller      The Digilent Cerebot MX7cK development board has a 32 bit PIC32  microprocessor  This is an expensive choice for the rotating microcontroller but it  has a much higher clock speed of 80MHz  This higher clock speed may be  required for our project if we are to process full motion video in real time  This  board also has a built in Ethernet interface which we
101. for one of  its colors  Three Grayscale values can be correlated easily from the RGB color  data     There are 4 groups of 45 LED controllers  for a total of 180  Each of those 4  groups is responsible for displaying the output of various sections of the screen   Within each section of 45 controllers  15 are dedicated to the Red outputs for that  section  15 for the Green  and 15 for the blue  Table 5 2 1 2a shows the  arrangement of each of these sections  referred to as AA  AB  BA  and BB          Arrangement of Sections    Pixel   0 1 2 3       638   639  0  1                AA   BA   AA   BA         AA   BA          239  240  241             AB   BB   AB   BB         AB   BB                                     479       Table 5 2 1 2a Arrangement of Frame Sub divisions    81 EE    It would be ideal if each section of controllers had all of the data that it needs  stored in order in memory as to minimize having to move any pointers around   Because of this  12 output bins will be created where the processed data will be  stored  which will allow the data to be accessed in a sequential manner  Table  5 2 1 2b shows these 12 bins and their starting and ending memory addresses  relative to some base address  The size of each bin can be calculated by first  determining the total size of a Grayscale frame  For each pixel  there are 3  Grayscale values  each of size 1 5 bytes  Size of frame in Grayscale   480   640    3   1 5   1382400 Bytes  The size of one of the 4 sections wo
102. fy which types of  syncing the display supports  as there are several ways of doing this  A section of  bits specify which of 16 predefined standard modes the display supports   Detailed timing information is contained within the last section  The second to last  bit is a flag indicating whether or not there are any extensions to the file     4 2 1 2  Signal Sampling     The video frames to be transmitted via VGA first start in a digital format on the  PC and are converted to analog though the use of DAC   s  Figure 4 2 1 2 a shows  the pin configuration for the VGA DB15 connector and a summary of each pins  function  The pins for Red  Green  and Blue  1 2 and 3  each carry a signal that  ranges between OV and 7V referenced from their respective ground pins  6 7 and      Red 6   GND R 11 NC    Green 7 GND G 12   DDC Data    Blue 8   GND B 13   H SYNC     NC 9 NC 14   V SYNC    DDC Return 10 GND SYNC 15   DDC CLK    13 Hi       Figure 4 2 1 2 a VGA DB15 connector and pin assignment    Figure 4 2 1 2 b shows how the red voltage value could be generated from 4 bits   allowing for 16 distinct voltages and therefore 16 colors of red  Combined with  Blue and Green  this allows for the representation of 2   different colors  There  are many color modes  each with varying amounts of bits defining red  green and  blue  The voltage range does not change  and when each RGB pin is read at the  same time  a single pixel   s color is defined        Figure 4 2 1 2 b Resistor circuit providi
103. g magnetic pole within  This means AC  motors or certain DC motors are a better fit for this sensing method  Since we  have already ruled out AC motors because of the expense associated with  controlling them among other issues  this left us with a limited number of DC  motor types that can be applied to this sensing method  The most obvious type is  a brush less DC motor  This however  is not actually that hindering to our design  since brush less DC motors are actually good for this application and are  generally very silent running motors     The second Issue with these sensors was kind of alluded to with the above  paragraph in that they require a moving magnetic pole to measure  This means it  would be difficult to implement this sensing method in the case of a gearbox  design  We would have to create some form of moving magnetic pole on the  rotating apparatus side that would cross the Hall Effect sensor in its rotation  This  is possible but there are some unforeseen issues that could occur with the  introduction of a moving magnetic field on the rotating side that is not being  produced naturally by the components that are there     4 5 5 4 3 Motor Sensor Comparison     After looking at both sensing methods and our over arching design it seemed like  the most effective form of controlling our motor would be through infrared  sensing  While the accuracy of this method could prove to be an issue  with  enough sample points we would be able to make up for any errors that
104. ge to build the communication  application  We should consider multiple programming languages and choose  the best one suited to our task and also choose one which we are familiar with   This application will have a user friendly GUI and allow simple serial  communications  All of the requirements listed above must be considered when  choosing the appropriate language  In order to efficiently create a GUI the  language will be required to have built in libraries that support agile GUI  development  The IDE should provide tools that will allow most of the  development to focus on coding the core functions of the application and not on  the GUI   s appearance and layout  We considered C    Visual Basic  and Java     The C   programming language is something that we are all familiar with  C  programming is where we started our programming education and is where C    is derived  This is an object oriented language with wide support and plenty of  documentation  We had no experience creating a GUI in C   so further research  was needed in order to determine whether or not C   would be worth  considering for the user friendly application that we were striving for  After some  research it was found that there are GUI libraries available to assist in developing  a GUI in C   but there are multiple GUI libraries to choose from  Multiple choices  for a GUI library further complicated things since further research would have be  conducted in order to determine which would be the best li
105. gest  challenge is going to be figuring out how to process the video input     Our rotating microcontroller will be considerably cheaper  this microcontroller  does not have any special requirements other than having enough outputs to  service the latches and LED   s  For our rotating microcontroller we will focus on a  combination of cost  and ease of use  Ease of use is a factor because we do not  have the same experience working with microcontrollers that we do with FPGA  devices  We would want a microcontroller that will be easy to learn and easy to    m 50    work with  Because of the large number of LED s we plan on using  we may also  have to consider the number of outputs that each microcontroller is able to  support     4 8 1 Digilent Atlys  Stationary FPGA      The Xilinx Spartan 6 FPGA available on the Digilent Atlys board  The Atlys board  has onboard HDMI input  The main reason for choosing this board is for the  HDMI input which will allow us to receive a video input in order to display it on the  LED array  The HDMI input on the Atlys board will automatically take care of the  TMDS decoding for us  We will have to figure out how to represent the video data  in such a way that our secondary microcontroller will be able to split up the data  and send it to the proper latches to control the LED   s  The Atlys board does not  seem to have built in pins in order to connect directly to the FPGA   s I O   s  There  is a VMOD peripheral that would take care of this pro
106. hat we would have needed in order to  achieve the desired frame rate would have been 320x240x8x30 which is  18 432Mbps  We considered a 480 LED array supporting a 640x480 resolution  If  we had used the higher resolution then our bandwidth requirements would be  640x480x8x30 which is 73 728 Mbps  Both WiFi and Bluetooth are capable of  these speeds so we considered both technologies  Generic RF communication  was not considered because we did not believe that it would support the  bandwidth that would be required for real time video  We also researched if the  rotation of the microcontroller would hinder wireless communications     4 4 3 1 WiFi     WiFi is the common name for the IEEE 802 11 wireless communication standard   This technology most often uses a 2 4GHz frequency  A large advantage to using  WiFi for our wireless communications is that all modern laptop computers have  built in WiFi communication capabilities  It was possible for us to write software  for a PC that allowed direct WiFi communication between a PC and the rotating  microcontroller in order to send text messages or images to be displayed     4 4 3 1 1 WiFi Protocols     The specific WiFi protocol we considered is 802 11g  Devices that use this  protocol are commonly available and are capable of up to 54Mbps data transfer  rates  which is more than enough for our application  WiFi has two possible  modes of operation  infrastructure and ad hoc  Infrastructure is the most  commonly used mode  but it req
107. he board from shifting     me 74       TRIMMA  I INTIVIIVI                   Figure 5 1 4d Display Alignment PCB Layout       Figure 5 1 4e Sensor With Reflective Surface    5 1 5 Power Supply   7    While our original plans for the device were to entirely power the motor and the  rotating side via an AC outlet there were two major issues that appeared during  the construction process of our original design  First was powering the motor   Our original PWM circuit effectively controlled the motor but being able to supply  90V and 1 5A without the power supply blowing due to the motor s sudden  spiking during operation turned out to be a very difficult thing to do without extra  expenses we were unable to commit to  The second problem that showed itself  was that our slip ring had some inconsistencies in power transmission  While it  effectively transferred the power with little dissipation  even during rotation  it  would sometimes loose contact to the slip ring and fail to send any actual power   This would have effectively repeatedly reset the microcontroller and caused  unforeseeable consequences to the lifetime of the device  Because of these  issues we altered our design slightly in the power transmission department  but  heavily in the motor control department  These changes are outlined in the  following subsections     5 1 5 1 Stationary Power Supply     The stationary power supply was only needed for the Dayton motor and was  completely controlled by the KBRG 212D as 
108. he device when a new line should be displayed  so we should  add two bits for an end of line message and a beginning of line message  For the  sake of discussion and since it is better generally to overestimate then under  estimate we will say two bits  This means we need to multiply the seventeen bit  word by four hundred eighty LEDs and add two bits to the end of that to get the  total bits needed for a single vertical line  In other words we need 8162 bits to  display a single vertical line of our frame  Now to display the full frame we need  to multiply this word by six hundred forty  since this is our horizontal dimension   This brings the data we need to transfer up to about 5 3 megabytes  We aren t  done yet since we also need end and beginning of frame bits for this word  which  brings us up two more bits  This is just a single frame and we need to display  these frames reliably at thirty frames per second  This means we need to send  the above frame data thirty times per second  This means in one second we are  sending a little over a hundred fifty six megabytes  or more specifically   156 710 460 megabytes     This means no matter what form of communication we choose to use it has to be  at minimum capable of sending this much information reliably  That being the  case would have probably wanted a data transfer rate a little higher than this   maybe even twice as high as this to make it reasonable that with errors we would  have still been able to maintain a steady 
109. however  but we were still able to find a  far less expensive motor then the one outlined in the design  However  with these  cuts it did not spell the end for scalability of the device  Since even with the  reduction in hardware features there are still a vast amount of room for software  features to more than make up for the loss of the instantaneous streaming of the  display device     For the future of this device there are a variety of possible additions that can be  added to it  First the Driver chip can be modified to include a digital way to control  it  allowing for integration of a Wi Fi chip on the stationary side also  This would  allow the user to turn the device on and off  and even vary the speed of the motor  all from the same program that is controlling the image processing  The LED  arrays are designed such that with a more powerful power supply and  microprocessor more arrays can be added to create a larger device with better  resolution  The processor could also be programed with additional functionality     10 Bill of Materials     As seen in Table 10  is a list of major items required to build the POV display   Some components with a         mark for part number were bought in bulk variety  packs and thus did not have any sort of Part number  In addition  some materials  were marked with         quantity did not have unit prices and instead were bought in  bulk packaging  thus a quantity used could not be established     Microprocessor  101 uc32 Chipkit 
110. ia for wired communications would have been  to evaluate cost benefits between coaxial cable and fiber optic cable  Below a  summary of the design criteria is listed and was a guide for determining the  vitality of each type of wired communications     v Rotating Speed  1800 RPM s   v Transmission Rates  10 100 1000 Mbs  v Little to no induced interference   v Cost    4 4 2 1 Fiber Optic Communications     In the following section we researched the requirements for using fiber optic  communications to transfer the data from the stationary side of the POV display  to the rotating side of the POV display     4 4 2 1 1 Fiber to Ethernet Conversion     The first portion of research on fiber optic communications was to determine the  requirements for converting Ethernet communications to fiber communications   Fiber optic communications use either single mode or multimode fiber cable   Therefore  in addition to determining how to convert Ethernet to fiber  a review of  single mode verse multimode was required to determine which is preferred for  Ethernet communications     WW 28    Single mode fiber optic communications have a smaller core size than multimode  fiber cables and  as the name implies  single mode fiber cables only operate with  one optical light  Generally  most single mode fiber systems operate at 1300 nm  or 1550 nm wavelengths  As well  single mode fiber systems require very strict  mechanical connections due to the smaller core size  Multimode fiber systems  oper
111. iable resister  Therefore we focused our research on  determining what varieties of parts are available and their characteristics  In  particular  we researched diodes  resisters  variable resisters and capacitors that  have a maximum operating voltage of at least 150 volts and for the diodes  a  power rating of at least 1500 to watts  The equation below  where Vr equals the  ripple voltage and Vm equals the maximum voltage output  was used to  determine the ripple voltage of the rectifier circuit and help to determine the  correct combination of resistance and capacitance     Va Vm  T  Seen    4 1 2 1 Diodes     1 E    As previously stated  the diodes required for the AC to DC converter was needed  to operate at a maximum of 150 volts and 1500 watts  This design criterion was  allowed for a maximum of 10 amps to flow through the diodes and provide  adequate power to the motor and other circuits  One such diode is the MUR  Series diode manufactured by Multicomp  The diode was designed with the  purpose to be used in inverting and rectifying circuits  Part number MUR1560  has the maximum ratings of 420 Vrms and 15 A forward current  The diode  comes in TO 220A case allowing for easy integration into bread boards or PCB  boards  As well  the MUR1560 is readily available with over 3 000 available to  ship at a cost of less than  1 00 each     4 1 2 2 Resistors     The voltage requirements of the converter do not necessarily directly apply to the  resistor  The most important cha
112. ice  Bluetooth also works on the  2 4GHz frequency  and with the v3 0 specification can achieve data rates of up to  24Mbps  All modern cell phones have built in Bluetooth communication  capabilities and allow us the option of creating a mobile application to interface  with our POV display  If we could have found suitable Bluetooth hardware  compatible with our FPGA and microcontroller then this would most likely have  been our preferred method of wireless communication     4 4 3 2 1 Bluetooth Protocols     Bluetooth protocols are divided into two categories  controller stack and host  stack  The controller stack protocols are protocols built into the Bluetooth  module  The host stack protocols are what we will use to deal with our video data  to be sent  We looked at both the controller and the host stack protocols relevant  to our project in order to help facilitate communication programming during the  design phase  First we considered the relevant controller stack protocols which  are  Link Management Protocol  LMP   and Asynchronous Connection oriented  Logical transport  ACL   The LMP protocol s function is related to the name of the  protocol  it manages the links  More specifically the LMP protocol deals with how    WW 36    Bluetooth devices can scan and discover each other and set up a link in order to  exchange data  Once a link has been set up  a new protocol can take over  communications between the devices  in our case this would have been most  likely ACL  The
113. ifference  Our next guess was that the SPI bus was not being shared properly   Our searches for information online seemed to point out that the SD and Wi Fi  libraries are supposed to handle sharing the SPI bus on their own  but since we  are unable to open a file while using the Wi Fi echo server  we suspected  otherwise  Our next attempt at fixing the problem included us finding out exactly  which registers store the SPI bus settings so that we could make sure they did  not get corrupted  We wrote functions to save and restore the SPI state which  allowed us to ensure that the SPI settings were not being corrupted at any point   Unfortunately this also did not work  We were running out of ideas regarding why  we were unable to open a file  but we knew that according to multiple forum  postings the libraries were successfully working together without any problems   Since the SD card example program worked by writing to a file named    test txt     we decided to match the file name for this integration test  Previously we were  using the filename  smalllmage bin     after switching the filename to    test txt    the  problem seemed to have been fixed  We were now somehow able to write and  read from the SD card in conjunction with running a TCP echo server via Wi Fi   This test  although extremely time consuming and frustrating showed us that the  SD card library only supports a small file name length  We are now using Sl bin  for the small image and LI bin for the large imag
114. ill be processing two columns of    WW 82    the frame each pass through the loop  The columns include all for pixel sections  AA  AB  BA and BB     The first inner loop handles the translation of pixels P X 0  P X 239   which are  sections AA and BA  The second inner loop handles the translation of pixels  P X 240  P X 480  which are sections AB and BB  Within each inner loop   TranslateAndOutput is called on the current P X Y  pixel and P X Y 1  pixel  In  the first inner loop P X Y  is always part of section AA and P X  Y 1  is always a  pixel from section BA  Table 5 2 1 3a shows what section of the frame each look  handles                                               Pixel 0 1  Inner Loop  1  0  AA BA  239  Inner Loop  2  240  AB BB  479                Table 5 2 1 3a  The Translate Frame Loop    Similarly  TranslateAndOutput is twice called in the second inner loop for each in  pixel  each call corresponding to a pixel in section AB and BB  The inner loops  increment by 2 because each call to TranslateAndOutput will look at two pixels at  a time  which will be described in more detail in the description for  TranslateAndOutput    Figure 6 1 4 6 shows which inner loop L is responsible for  building up the contents of the bins  and what pixel data ends up in those bins                                StartAddr  L S Grayscale Data  AA RE P 0 0   P 2 0   P 638 0    1 W   0 P 0 239  P 2 239  P 638 239   3 WW                                                          AA GR P 0 0
115. imageio ImageRead    er html gt      Mm 126    Jeffay  Kevin   Coding and Compression Basics   Http   www cs odu edu  Web      lt http   www cs odu edu  cs778 jeffay Lecture3 padf gt       The New Wi Fi Protocol   Suite101 com  Web      lt http   suite 101 com article wifi protocols a42024 gt       NXVGA   Digilent Inc  9 Nov  2006  Web    lt http   www digilentinc com Data Products NXVGA NXVGA_rm pdf gt       RGB Video Out   Eecg toronto edu  Web      lt http   www eecg toronto edu  tm4 rgbout htmI gt       A Robotic Wireless and Sensor Network Testbed   Cs utah edu  Web      lt http   www cs utah edu flux papers robots infocom06 pdf gt       Serial Port on Atlys   Danielbit com  Web      lt http   www danielbit com blog microblaze serial port on atlys gt       Serial Programming Serial Java   En wikibooks org  Web      lt https   en wikibooks org wiki Serial_Programming Serial_Java gt       VGA Video   MIT edu  Web    lt http   web mit edu 6 111 www s2004 NEWKIT vga shtml gt       VGA Video Signal Format and Timing Specifications   Javier Valcarce s  Personal Website  Web    lt http   www javiervalcarce eu wiki VGA Video Signal Format and Tim    ing Specifications gt       VGA   Wikipedia  Wikimedia Foundation  24 July 2012  Web    lt http   en wikipedia org wiki VGA gt      27 ME    Westrelin  Roland   TCP and Real time   Blogs oracle com  Web      lt https   blogs oracle com roland entry tcp and real time gt       Wi Fi  The Most Commonly Used Wireless Technology   About 
116. in programming could also program to the processor and create their own    3 EE    custom images and animations  This would allow for a lot of space for user  development which seemed desirable to someone looking to advertise with the  device     2 3 Specifications     The following is a list of specifications that we have come up with based on both  our research  assumptions  and components that we have chosen during the  development of this product     32 RGB LEDs   16 Green LEDs   256 colors per LED   60 Hz refresh rate for LEDs   15 20 rps   61 cm diameter  cylinder    80 cm height  cylinder    12 15 Ibs   Operates on 120V AC and a 9V DC battery  2Mbits s data transmission    SS Se Se    3 Administrative Content     Having a strong plan for administrating the budget and making due dates is  essential for completing any project successfully  Our senior design project is by  no means an exception  Our goal was to layout an administrative plan to govern  and guide our project through the various stages and be the foundation that  supported our work  Our administrative plan was laid out in three sections    budget  finance and schedule and milestones     3 1 Budget     Understanding the cost associated with any project helps separate what is  feasible from what is unrealistic  As stated in our specifications section  the POV  display required 32 LED s each with a 256 color range  This required us to  procure 32 RGB capable LED s which came out to be about  1 51 each  With  on
117. is possible that we may receive more  frames than we need and might need  Our display is intended to show 30 frames  per second  and most video modes provide frames at around 60 Hz  In this  simple case we receive frames at twice the frequency we need them  we could  simply use every other frame  A more complicated frame skipping algorithm may  be needed frequency at which frames are buffered can   t simply be cut in half     There is also the possibility of increasing or decreasing the rotation speed of the  display  which determines our number frames per second  to a value such that  that it even divides evenly with the frequency of frames being received  As an  example  if the video mode we are in is providing frames at 70 frames per  second  we could display this nicely if we changed our rotation speed to 35  frames per second and then simply used every other frame  It seems likely  however that we can receive 60 frames per second and display at the desired 30  frames per second     4 2 3 4 Video Compression     The real time requirement of transferring the frames between the stationary  board and the rotating board is of some concern  Calculations for the required  data rate seem to suggest that the amount of data we are transferring is small  compared to the bandwidth  if it does become an issue due to overhead from  various transfer protocols it would be good to have an efficient solution for  minimizing the amount of data that needs to be transferred     Video compres
118. l Speed                sesssesesnnrenenseerrerrnnnnesserenne 37  EN e 37  4 5 1 Torque Requirements  e 38  4 5 1 1 AG Motor Application for Torque Requirements              00000snn  38  4 5 1 2 DC Motor Application for Torque Requirements              000sseenn  38  4 5 2 RPM PiGQUINGNIOINS a xicectsensnisltvantnndneintnctienesdvaninmubnedte ntvedeaubnmmmnntennd 38  4 5 2 1 AC Motor Application for RPM Requirements           nnnnnnnnnnaneaaa 39  4 5 2 2 DC Motor Application for RPM Requirements                      00 39  453 eine Re UE 39  4 5 4 AC and DC Motor Comparison       rrrrrnnnnnnnnnnnnnnnrrrrnnnnnnnnnrrnnnnnrrnnennn 39  255  Motor Control   essssssssnnennneooeeeeeeeeennnenerererrerrrrerrrrrrrerrrrrrrrrreerrrrrereeenn  40  4 5 5 1 Variable Resistance Method to Motor Control  40  4 5 5 2 Pulse Width Modulation Method for Motor Control 40  4 5 5 3 Variable Resistance and Pulse Width Modulation Motor Control  Method Keiler ME 41  4 5 5 4 Sensor Reading Applications for Motor Control 41  LISA   INAS SEM SOM EEN 42  4 5 5 4 2 Hall Effect Gensor 42  4 5 5 4 3 Motor Sensor Comparison                  cccceeeeeeeeeeeeeeeeeeeeeeeeeeeee 43  e ernennen RR R RERS 43  4 6 1 Chassis atelier 43  4 6 2 Chassis Rotating Intertace  Au 44  4 7 Graphical User Intertace  AE 45    4 7 1 Required Functions  ccidtccecncciienndesitacsunsccniendentdndnenendncodncindwcennsutueaductions 45    4 7 2 Programming Language  gCeCHeSN Ee EeE 47  4 7 2 1 Image Format Conversion and Resizing        a
119. l consider multiple programming  languages that will allow us to create the application effectively and efficiently     4 7 1 Required Functions     Part of the research for the GUI was the identification of the requirements  The  requirements must be identified before the design can begin  We are going to  use a simplified waterfall model for our software development life cycle  We are  going to list the requirements  design the software  and then finally implement  and test the software  In this section we will focus on the requirements  identification only  The design and testing portion will be discussed in the  corresponding section later in the paper  The following Figure 4 7 1 a shows a  diagram of the simplified waterfall model we researched using for developing the  GUI     45 B          Requirements    i    Design             Implementation           Testing                  Figure 4 7 1 a Software Development Life Cycle     Waterfall Model       The GUI must provide an easy to understand and user friendly interface  The  interface should have very few elements to avoid confusion  The GUI should be  operable by anyone and not require any technical knowledge of our display  No  training should be necessary  and everything in the GUI should be properly  labeled and intuitive  The only functions necessary were to allow the user to  enter a text message to display  and to allow the user to select an image file to  display  The text field should support multiple lines of
120. l other  potentiometers were set to the factory conditions shown in Figure 5 1 1b  Then  the KBRG 212D was turned on and the FWD CL was quickly raised up until the  amp meter read 1 5 A  This should be done as quickly and accurately as possible  since damage to the motor can occur if the motor shaft is locked for too long     The desired result of this was to test calibrating the motor for the Dayton  The  actual result was close to desirable though we found that the FWD CL was very  sensitive and prone to not being consistently accurate  This resulted in the FWD  CL needing to be recalibrated every so often in order to prevent overcurrent in  the motor     7 2 2 Speed Test     Mm 102    In this test the KBRG 212D was connected as seen in Figure 5 1 1a  In addition   the LED apparatus frame was attached to the motor so as to get an accurate  speed assessment of the motor when rotating  The potentiometer was connected  in the forward setting as shown in figure 5 1 2a  The KBRG 212D was then  turned on and the potentiometer was raised from its lowest setting to its highest  setting slowly and back down again  Then the sensor circuit was turned on and  the microcontroller was set to count the number of hits in one second and store  the value  repeating this three times and then averaging the rps     The desired result was to obtain an rps value between 25 30 rps and to be able  to control the motor speed from 0 100  of its rated value  This turned out to be  false on both accoun
121. lers into the  microcontroller outputs and the built in latch control we choose to control the LED  array using the PWM controllers  In particular  we used the TLC5940 16 channel  LED driver  The reason for choosing to use the TLC5940 is due to its high data  transfer rate of 30 MHz as well as allowing us to individually control each LED   Additionally  the TLC5940 controllers allowed us to wire the controllers together  to cascade the serial communications required to write to each controller     5 1 2 1 TLC5940 Pin Out and Wiring     After selecting which method we wanted to use for controlling the LEDs  the next  step was for us to determine the pin out and wiring of the LED controllers  The  pin out information for a TLC5940 in a NT case can be seen in Figure 5 1 2 1a  below  Table 5 1 2 1 below shows all pins and their functions              d OUT   PIN 1  OUTO  PIN 28      d OUT2  PIN 2  VPRG  PIN 27  p  d OUT3  PIN 3  SIN  PIN 26  p  d OUTA  PIN 4  SCLK  PIN 25  p  d OUT5  PIN 5  XLAT  PIN 24      d OUTS  PIN 6  BLANK  PIN 23  p  d OUT7  PIN 7  GND  PIN 22  p  d OUTS  PIN 8  VCC  PIN 21      d OUT9  PIN 9  IREF  PIN 20  p  d OUT10  PIN 10  DCPRG  PIN 19  p  d OUT11  PIN 11  GSCLK  PIN 18  p  d OUT12  PIN 12  SOUT  PIN 17      d OUT13  PIN 13  XERR  PIN 16      d OUT14  PIN 14   OUT15  PIN 15  p  TLC5940NT       Figure 5 1 2 1a TLC5940 LED Controller Pin Out       Pin   Name Description                1 Out 1 Current Output to LED       63 WW                            
122. let and output 3 3V DC and 2A  This DC  power was then transferred directly through the slip ring to the RGB array  circuits  Due to time constraints and issues with regulating the DC power    WW 76    transferred over the slip ring  a 9V battery connected using a DC plug was used  for the microcontroller to prevent damage to it via fluctuations caused by the slip  ring  The Text display LED array was powered directly off the microcontroller  while the RGB array was powered via DC transferred over the slip ring  This  design was chosen because the microcontroller could be damaged when  attempting to supply the 1 5 2 0A that the RGB LED array was capable of pulling  during sustained operation     5 1 5 3 Slip Ring Design     In order to transfer power to the rotating side of the device we needed two slip  rings  These rings consisted of two copper washers attached to the shaft of the  bottom section of the LED apparatus  Here two lengths of stranded copper wire  were mounted on the motor and wrapped around the shaft of the LED apparatus  but not attached to the shaft directly  An insulating material used for cable line  repair was placed between the copper washers and the shaft of the LED  apparatus  Two wires were soldered to the copper washers and wired through  the Apparatus    center via a hole drilled through it  These wires were then lead up  through the Apparatus   s center to the control side of the LED apparatus and  connected to the RGB LED arrays as a live and neutr
123. luding  product specifications and cost                    Part Supported   Fiber Ethernet   Number IS Data Rates   Connector   Connector SS  B amp B 10 100   EIR102 MT Electronics   Mbps MM ST RJ 45  199 00   FCU    1008C Aaxeon 200 Mbps   MM SC RJ 45  62 00  Support   ME 1600  10 100   MM2 ST EE Mbps MM ST RJ 45  69 50                      Table 4 4 2 1 1 Fiber to Ethernet Converters  4 4 2 1 2 Fiber Optic Rotary Joints     Fiber optic rotary joints or FORJs are used to make the junction between a  stationary fiber cable and a rotating fiber cable  As discussed in the main section     29 WW       the fiber optic rotary joints must be capable of rotating at speeds of 1800 RPM s  while not inducing a significant amount of inference  Several fiber optic rotary  joints are available on the market  One company providing a wide range of fiber  optic rotary joints is the Moog Components Group  Almost all available rotary  joints can support both multimode or single mode fiber cable and a wide  wavelength range  Therefore  the research on fiber optic rotary joints was  focused on the maximum rotating speed and minimum induced noise into the  signal     Although Moog provides a variety of fiber optic rotary joints  the manufacture  however does not provide any FORJs that have a maximum rotating of 1800  RPMs or higher  Fortunately  other manufactures do provided FORJs that can  operate at the rotating speed required for the POV display  One alternative to  Moog is Princetel and thei
124. menting live update features via Wi Fi     Wi Fi SD Array Testing  This integration test includes all devices that are sharing  the SPI interface for communication  In this test we wanted to see that we could  display on the LED array  receive data via Wi Fi  and store it on the Micro SD  Memory chip without any interference  In a previous test we added a restore SPI  settings function to the LED array code  which allowed it to use the SPI when it  wanted to  and let the Micro SD and Wi Fi libraries handle restoring their own  settings  We determined that data was being received accurately and was being  written to the Micro SD Memory accurately  all while displaying the basic cycle  code in addition to other LED control programs  We did find that while using the  Wi Fi communication junk data would occasionally be written into the LED array  and cause a slight flickering  This issue was reduced somewhat by restricting the  amount of Wi Fi communication  In addition  the visual artifacts were minor and  uncommon  which did not necessitate further debugging    speculate that if we  were to hold the blank signal high  driving all LED outputs off  during Wi Fi  updates  all visual artifacts would be eliminated     Wi Fi SD Array Sensor Testing  This was the final integration test  which used  Wi Fi  Micro SD  LED array  and sensor input all simultaneously  The only  additional feature in this test as opposed to the previous was the addition of the  sensor  The sensor uses two pi
125. microcontroller  and a client program on the PC  These testing  procedures were done with the microcontroller and the PC concurrently since in  order to test one we must communicate with the other  We tested the  effectiveness of our protocol and made adjustments to our design as necessary   The main focus for the Wi Fi communications was reliability since dropped  packets may mean artifacts appearing in the image     Our first test consisted of a simple TCP echo server over Wi Fi  The code for this  test came from the example code provided with the Wi Fi library for the Wi Fi  shield  In order to test this echo server we wrote a simple TCP echo client in  Java  In the Java application we set up the IP address and port number  according to the settings in the server  The first sign that the echo server was  working correctly was the appearance of the    POV Display    SSID on the PC  We  connected to the network before running the Java application  The Java  application was designed to receive a text input from the user and then send the  text through the network to be received on the server  The server receives the  text from the client and sends the same text back to the client  The client then  receives the text from the server and displays it  A working echo server should  appear to display whatever is typed in which means that the information was sent  successfully through the network and back again  The echo server and client  programs worked correctly the first time we
126. mula HP  x VP x BPP x FPS where HP is Horizontal Pixels  VP is Vertical Pixels  BPP its  Bits Per Pixel  and FPS is Frames Per Second  According to the data sheet for  the ATmega328 microcontroller  the maximum data rate that the microcontroller  is capable of sampling with its 16MHz crystal is 2Mbit s  This means that the  Arduino Uno and TI Launchpad development boards would only be able to  support a display with a resolution up to 80x60  The calculation to determine the  maximum data rate given the frequency of the microcontroller is given in the data  sheet for the ATmega328  The formula is shown next for reference     BAUD   ke     Although formula above came from the ATmega328 data sheet it can still be  used as an approximation for the capabilities of the other processors too  The  baud rate for the ATmega328 is measured in bits per second which is why the  maximum data rate for the ATmega328 mentioned previously was in the units of    53 WW    Mbit s  Using formula 3 8 4 1 for an 80MHz clock frequency it can be said that  the maximum practical data rate that the Cerebot MX7cK microcontroller should  be able to effectively sample should be about 10Mbit s  The higher clock speed  allows for a much higher data rate  The maximum resolution that we are  considering that can be implemented with 10Mbit s maximum data rates is  160x120  This leads us to the conclusion that if we intend to implement any  resolution higher that 160x120 then we will have to use two of the Digil
127. n  classes from the built in Java libraries including Socket  BufferedReader  and  PrintWriter  A class diagram showing these classes and their relationships to  each other is shown in Figure 6 3 4  It should be noted that either a text message  is sent or an image message is sent  but not both  Also the multiplicity shown for  each class is one  because only one of them should exist at a time  If multiple  messages are to be sent  the same class will be used with different values     97 E                  TextMessage           WiFiConnection   ip     port   povSocket Microcontroller     line1   line2   line3   alignment1   alignment2   alignment3    POVGUI rcolorR    RE  colorG  d iFiConnection  colorB   ip    port  Send                                    stream       ImageMessage     image   position   crop       Fiqure 5 2 3 4 Class Diagram for the GUI       6 Prototyping     In order to determine if our design worked under our specific conditions we  needed to test them  We expected them to work theoretically but theory doesn t  always work practically  This being the case we created a variety of prototypes of  each section of the device that we felt may be prone to failure  These prototypes  were used in the test procedure chapter to create and describe both the process  and the purpose of the tests that were applied to each of these prototypes     6 1 Slip Ring Power Transmission Prototype     While testing the slip ring we needed a prototype circuit that could be used 
128. n mono color LED   s        Display  9 Text display Main display    Color  Red   Green Blue Custom    0  Animation  None    LINE 1    line2    Send Text Clear Text            Figure 8 4 POV GUI Text Message Tab    The Animation option is not fully implemented and may not work as intended   The text boxes which say    LINE1    and    line2    are where you should enter the text  that you wish to send to the display  If you wish there to be a blank line  simply  delete the text from the text box before sending the message  After you are done  editing the contents of the two text boxes  pressing the    Send Text    button will  wirelessly send the data to the POV display  The last button available is the    119 ME       Clear Text    button  when this button is pressed it is the same as sending two  blank lines of text to the POV display  which means nothing will be displayed  If  sending a text message does not seem to be received by the POV display   ensure that the PC running the GUI application is connected to the    POV  Display    wireless network  and that you are using the correct WEP key  The     Image    tab was designed for sending an image to be displayed on the color  main display  but this has not been implemented since the main display cannot  support Wi Fi communications     8 5 Switching Between RG and Text Array     Our POV display has two hardware configurations for displaying either from the  Text array or from the RGB array  In order to switch between these 
129. n pixel values entails a little more effort since its values are  spread across two bytes  The first byte of the pixel is obtained  which is then has  the logical AND performed on it with 0x07  which zeros out any red data in that  byte  The first byte is then shifted left 3  so that its three LSB are zero and able to  be combined with the 3 bits of green data from the second byte  The second byte  is obtained in a temporary variable and shifted to the right by 5  Combining the  first byte and the temp variable with a logical OR operation gives the complete  green data  Figure 5 2 1 3b gives a visualization of the logic used to isolate  green     The color isolation process can then be repeated for the second pixel  The two  green RGB values are then converted to grayscale on lines 8 and 16  Following  this  they are combined into a single 3 byte structure that is then returned on  lines 18 and 19     Two Byte RGB color         First Byte Obtained in Temp     85 EE    AND with OxF8        o  o  o  o  o een                Logical Left Shift x 3                          0 o0 0  0  0             Obtain Second Byte in Temp2        Logical Right Shift x 5        0 10  O 10 10                   Combine Temp1 and Temp2 with AND                0  O          Figure 5 2 1 3b Visualization of Isolating Green RGB Value    The blue color data can be obtained from the second byte of the pixel data   Because blue is already completely to the right  isolating it is as simple as  performing a
130. ng  DisplayAColumn    A pulse is sent on the XLAT pin for the A column of duration  20 ns  which moves the data written in the controllers shift register to the  grayscale register  The controllers now require the GSCLK signal to tick 4096  times at 30 MHz  The values in the grayscale register will determine how long the  outputs from the LED controllers to the LEDs stay on  effectively determining the  color that will be displayed  On lines 2 and 13  XLAT is pulsed  and on lines 3  and 14 a grayscale counter is initialized  A loop is then entered that the program    89 WW    will remain in until pulseGS has been set to true 4096 times  A clock interrupt  handler sets pulseGS to true at a rate of 30MHz  and each time it s true  the  GSCLK for the column is pulsed for 16ns     A loop will be running which writes the data to the LED controllers after each time  a column is displayed  because that column now requires new data  Lines 2 and  6 of this pseudocode check the Column Written flag to see if new data has been  written since the last flash of that column  If the new data has not been written  yet  a function is called on lines 3 and 7 which will write the new data to the LED  controllers  The Column Written flag is then set to true     The Write Column functions handle writing data to the controllers one bit at a  time  There are 90 controllers in total used in column A  This is divided into two  groups  AA and AB  each with 45 controllers  AA and AB are each divided into
131. ng  on separate systems  TCP allows a program to request the transmission of data  with a single request and then takes care of segmenting it into IP sized packets   which contain a sequence of bytes and a header  TCP handles the scenarios  such as out of order transmission  duplicate packets  and lost packets  Out of  order packets are rearranged and lost packets and be requested to be resent   Reassembly of the stream of bytes is handled by the TCP receiver  which then  passes the data to the program  The TCP protocol favors the accuracy of the  data over timely delivery  and uses positive acknowledgement to guarantee  reliability  In positive acknowledgement method  the receiver sends an  acknowledgement for each packet it receives  and the sender expects to receive  the acknowledgement within a certain amount of time  or it will resend the packet  because it may have been lost or corrupt  The favoring of accuracy over  transmission speed makes TCP generally a poor choice for a real time  application     Another protocol option is to consider is UDP  UDP doesn   t use any handshaking  and does not guarantee that data is in order and not missing  Any reliability and  accuracy checking  as well as error handling must be performed at the  application level if it is a concern  In our case we could probably implement these  checks at the application level  For instance after each frame is transmitted to the  rotating board we could send a UDP datagram back to the stationary one
132. ng 16 colors from 4 inputs    The VGA signal transmits pixels one by one  starting in the top left of the frame   going from left to right  and then down  This process is timed using two  synchronization pulses  HSYNC and VSYNC  The HSYNC pulse indicates the  start and end of a row of pixels being transmitted  and the VSYNC indicates the  start and end of a frame     In addition to the VSYNC and HSYNC pulses  there are periods of time in which  no pixel data is transmitted  which are known as the blinking and blanking  intervals  As can be seen in Figure 4 2 1 2 c  these occur starting just before the  VSYNC and HSYNC signals and last longer  making them a little wider  The  period of blinking blanking time before the SYNC signals is referred to as the  front door  and the period after the back door     orizo ntal Horizontal Vertical One Vertical    One Line One Frame    Figure 4 2 1 2 c VGA timing for V SYNC and H SYNC windows    The VGA signal was designed to be displayed on CRT monitors  which is the  reason the blinking and blanking intervals exist  giving the monitor time for its  electron gun to realign itself  Additionally  because RGB values transmitted    mm 14    through VGA are a continuous waveform after the initial DAC from the PC  the  number of horizontal pixels displayed by the CRT must be determined by a pixel  clock  The clock timing is determined based on which video display mode is  currently being used     There are 3 other important VGA pins  the DDC clo
133. ng AC power off and not re   activate the ENABLE switch until ready for the motor to actually start running  It is  highly recommended that after setting the speed to the desired level the user  does not excessively mess with the speed dial and only uses the Enable switch  to control the operation of the Dayton motor  It should be noted that the KBRG   212D should be handled with care during operation since no portion of the  KBRG 212D is isolated from the AC power     8 2 Display Alignment Manual     The display alignment sensor has four terminals used for operation  The Vcc  requires a constant 5V DC that is connected directly to the Chipkit  microprocessor s 5V pin  The CTRL line can be plugged into any of the output  terminals of the Chipkit microprocessor and requires a 2 5V constant signal that  is used to turn on the sensor  for our purposes we used the pin 8 terminal  The  OUT terminal can be plugged into any input terminal on the Chipkit    117    microprocessor and will read a high value when the sensor receives a hit from  passing over a reflective surface  for our purposes we used the pin 7 terminal   The GND terminal should be plugged into any of the GND terminals of the  Chipkit microprocessor     8 3 Power Supply Manual     There are two AC adaptors and a 9 volt battery required for operation of the POV  display  The First AC adaptor controls the KBRG 212D drive chip and also has a  built in single pole single throw switch for purposes of turning off the motor 
134. ngs that  can cause large amounts of obstructive sound and that is either the motor or  improper weighting  In the case of improper weighting the torque created by the  motor alone causes rattling since the device is not properly balanced or  fashioned down  This can be solved through the design of the chassis  However   we still had to watch out for our motor being rather loud  Our research showed  that in this case DC motors trumped AC motors  AC motors tend to be much  louder than DC motors of all makes and models     4 5 4 AC and DC Motor Comparison     39 WW    With the above considerations reviewed it seems that a DC motor was the best  fit  An AC motor  while capable of reaching the rom values we need would have  drastically increase our costs in order to control the speed of the motor  A DC  motor is much easier and cheaper to control requiring only a simple variable  resistor or PWM circuit  An AC motor also leans to the noisy side of the spectrum  of motors  which is something we wanted to limit within our device  As for the  torque requirements it seems that both would have passed the needs of our  device  but with two thirds of the issues being solved either cheaper or better it  comes down to a DC motor being a better choice for our application     4 5 5 Motor Control     Since we decided that a DC motor was the best fit as a solution to our  mechanical needs  we needed to look further into the methods of controlling the  motor s rom value  Luckily our needs for 
135. nnnvnnnnnnnnnenennennn 119  Figure 10 a Infrared Sensor Reference Circun     EE 124    at viii    Table of Tables    Table 31 Project Blees ee EE 6  Table 3 3 Project Schedule         rnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 8  Table 4 1 1 1 1 Type LP CC Fuses and Current Ratings        rrnnnnnnnnnnnnnnnnnnnnnnnnnn 10  Table 4 2 2 1 a HDMI Pin Configuration          srnnvvrrrrrnnnnnnnrnnnnnrrrrnnnnnnnnrrnnnnnrrnnnnen 17  Table 4 2 2 1 b EDID Information and Requirements            essssssssennnereeserrrrrrne 18  Table 4 4 2 1 1 Fiber to Ethernet Converters 29  Table 4 4 2 1 2 MJX Part Numbers      rrnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 30  Table 4 4 2 2 1 Coax to Ethernet Converters        rrrnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 31  Table 4 4 1 2 2  Coax to Ethernet Converters        rrrrnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 33  Table 4 6 1 Typical Aluminum Pieces and Weg    44  Table 4 6 2 Extended Ring Ball Bearings EEN 45  Table 4 8 4 Microcontroller Comparison         sssssssseesssesenerrnrreeseerrenrrnnnnesseerrrrnnnn 52  Table 4 8 5 Possible Resolutions and Corresponding Data Rates          00000 0101  53  Table 5 1 2 1 TLC5940 LED Controller Pin Information          rrnnnnnnnnnnnnnnnnnnnnnnnnnn 64  Table 5 2 1 1 Arrangement of Pixel Coordinates matrame 81  Table 5 2 1 2a Arrangement of Frame Sub divisions         ssnssonnenoeeeeeeeeeeeeee1eeeeee 81  Table 5 2 1 2b Memory locations of the 12 output BinS
136. nnrnnnnnrrrrnnnnnnnnrrnnnnnrrnnnnnn 101  7 1 1 3 Sensor Sensitivity Test    102    BE    7 2 KBRG 212D Calibration Tests 102    7 2 1 Current Calibration TS icc ccieisecisets niin eee pk 102  dE  gt  000 REE 102  7 2 3 Enable Disable Switch Test    103   E Slp RE bana tea nate oaieemn estes  103  Zil  Slip Ring Durability JEE  eguergugeeerreeseetebeugreue ENEE gege 104  7 3 2 Ideal Power Transfer Test         rrrnnrnnnnnnnnnnnrrnnnnrrrrnnnnnnnnnnrnnnnnrrnnnenn 104  7 3 3 Rotational Power Transfer and Thermal Dissipation Test              104   7 4 Wi Fi Communication Testing  ee 105  7 5 Software TESE E 106  7 5 1 Prototype LED Array Capabilities Tesimg  106  Toe MICK SD Testing srna deeg 107  7 5 3 Wi Fi Communications TESINYLLauasmmesbmsehonveuj  108  754  GU TESME EE 108  7 5 5 Sensor Input Testing  eesieuegetereegegegiruegriegeegecegiedegebegiggecegiegegeierieegeeg 109  7 5 6 Integration JTeen  itsogteeries  ur  egegegeteggeg eege 109  7 5 7 Feature Implementation Testing  ee 111   8 User Manual  Segigegieegt  ege tie geed 116  8 1 TE AE RN KEE 116  8 2 Display Alignment Manual 117  8 3 Power Supply Mandal  4sv4aavmnsssmmmeem sm i  ensisn 118  8 4 GUI User Manual  EE 119  8 5 Switching Between RG and Text Amay    120   2 GE 116 OL EE 121  10  Bild EE 122  OT  FADO E 124  2 IEN ee 125    mi    Table of Figures    Figure 4 1 2 Full Wave Rectifier Circuit           rrrrrrrnnnnnrrrrrnnnnnnnvnnnnnvrrrrnnnnnnnrrrnnnnnnn 11  Figure 4 2 1 2 a VGA DB15 connector and pin assignment
137. ns from the microcontroller  once which provides  a Vcc  and another on a pin which can generate a hardware interrupt when  receiving input from an external device  Strangely  we found that the sensor was  causing difficulties with the Wi Fi initialization  and after a bit of research we  discovered that the Wi Fi module uses an assortment of pins in addition to the  pins used for SPI communication for various reasons  and one that we had  selected to use for the sensor was conflicting  By simply switching the sensor to  pins that the Wi Fi chip does not interact with  we were able to resolve this  compatibility issue  At this point we were able to display test code which included  sensor influenced code  while reading and writing from SD and receiving Wi Fi  updates  as well as displaying the basic cycle code on the LED array     7 5 7 Feature Implementation Testing     111 i    RGB Data from SD Test  The goal of this test was to determine whether or not an  image which has been preprocessed on the computer and stored in SD is lighting  the LEDs as expected  To determine this  a test image was created that was 16  LEDs tall and 384 wide  This test image is seen in figure 7 4 2  It contains a  rainbow of colors as the start and end of the image  seconds of solid red  and  sections of red and blue  In addition to this  the very last row of the image  contains a rainbow of pixels going horizontally for a short section  This image  was processed on the computer and loaded into S
138. nsisted of a simple TCP echo server over Wi Fi  The code for this  test came from the example code provided with the Wi Fi library for the Wi Fi  shield  In order to test this echo server we wrote a simple TCP echo client in  Java  In the Java application we set up the IP address and port number  according to the settings in the server  The first sign that the echo server was  working correctly was the appearance of the    POV Display    SSID on the PC  We  connected to the network before running the Java application  The Java  application was designed to receive a text input from the user and then send the  text through the network to be received on the server  The server receives the  text from the client and sends the same text back to the client  The client then  receives the text from the server and displays it  A working echo server should  appear to display whatever is typed in which means that the information was sent  successfully through the network and back again  The echo server and client  programs worked correctly the first time we tried them which verified that our  hardware was working properly     7 5 4 GUI Testing     There are two basic main requirements that we will address  text message  formatting  and communications  The formatting of the messages will focus on  verifying that the user input is properly transformed into the proper data   Communications will be tested by connecting the computer to the microcontroller  using Wi Fi and verifying that the d
139. olution for  each of these problems     The forth issue was communications  Since this device has two sides to it  a  stationary side and a rotating side  we need to determine how we are going to  send the above signal across these kinetic state changes  Is there a wired  solution for this problem  Would wireless be an effective solution to this  problem  Are there issues with wireless when dealing with a rapidly rotating    WW 8    receiver  Section 4 4 discusses these issues and compares each of these  communication solutions     The fifth issue is the motor itself  None of us had much experience with motors  so we needed to research specifically which motor would work best for our  purposes  Would a DC motor bet best or an AC motor  What is the most  effective way of controlling the motor for our purpose  How can we minimize the  noise commonly associated with motors  Section 4 5 discusses these topics and  compares both motor types  and which method of controlling the device is best  for our purposes     The sixth issue is the actual structure of this project  This device is going to rotate  at a very fast rom value and that means it needs to be both very stable and  balanced  What material is best suited for this project then  How do we balance  it  What will be the torque requirements of this device  Section 4 6 discusses  these questions and determines the best solution to each of them     The seventh and final issue is our GUI  Since we want to develop a user  interfa
140. on ports  The library will then allow us to choose an available port  and use it for communication  Input and output streams will need to be declared  in order to send and receive data  Overall the library seems to make it rather  easy to send and receive serial communications  More details on how the serial  programming works are provided in the design section     4 8 Microcontrollers     There are many microcontrollers available with many different feature sets  This  research will focus on the different microcontrollers available and which ones we  should use in our POV display  We are going to need two microcontrollers  one is  going to have to deal with the video input and remain stationary in order to be  able to plug in a device such as a laptop or DVD player  The other  microcontroller will rotate along with the LED   s and provide all of the information  to the LED controllers so that they can send the PWM signals to each LED     The stationary microcontroller is most likely going to be an FPGA since this has  been the only solution we have been able to find regarding a board that accepts  HDMI input  The cost of the FPGA is going to be considerable since it is a board  designed to take HDMI input and possibly process that video signal  HDMI is  most likely a high definition signal and therefore would require a powerful board  in order to effectively process that amount of data efficiently  We all have  academic experience programming an FPGA using Verilog so our big
141. ons of 10 Mbps  100  Mpbs and 1000 Mbps  Although the PL3302 allows for Ethernet communications  up to 1000 Mbps  the Ethernet bridge will require DC power on both the  stationary and the rotating side of the POV display  Another downside to the  PL3302 is its size  The PL3302 dimensions are 6  wide x 1 75  high x 4 75   deep  Table 4 4 1 2 1 compares the differences between all converters                    Part Mfr Supported Coax Ethernet   Number   Data Rates   Connector   Connector   EIR102 MT   EnConn 10 Mbps BNC RJ 45   EOC  10 100   AN IN EnConn Mbps MM SC RJ 45  Pulse 10 100 1000   PL3302 Link Mbps MM ST RJ 45                      Table 4 4 2 2 1 Coax to Ethernet Converters  4 4 2 2 2 Coax Rotating Joint     Once the Ethernet is converted to Coax  just like with fiber  the coax will require a  rotating joint to make the bridge between the stationary side and the rotating  side  Although extensive research was done  only one practical solution was  found  Mercotac manufactures a variety of rotating joints and slip rings  Included  Mercotac s product line is a two conductor Model 205 high speed  low torque    31 E    rotating joint  The joint is not explicitly design for coaxial communications but due  to the extremely low electrical noise induced by the joint and the fact that a  coaxial cable can be simplified to two conductor cable makes the Model 205 a  feasible solution for transmitting the coax cable from the stationary side to the  rotating side  Some other advan
142. outlined in the motor control section   AC power was transferred to the control circuit directly via an AC outlet plug with  a built in single pole single throw switch that turns the power transferred through  the plug off  this is primarily needed as an emergency off switch for the motor  controller     The KBRG 212D has a built in power supply that can be used for a variety of  motor types  The settings we used are specifically for our motor selection  which  is on the lower end of the control circuits capabilities and could be scaled up with  a far more powerful motor if desired  Using the 115AC input configuration  J1   and the 90V  J4   1 7A  J3  output configuration we are capable of adjusting the  1 7A down to the 1 5A via the FWD CL variable potentiometer and thus power  the Dayton 9FHD7 with little difficulty  In order to get an exact measurement of  the current we plugged an amp meter in series with the motor and locked the  motor shaft  Then turning on the Driver Chip we quickly adjusted the FWD CL  potentiometer until the amp meter read around 1 5A  The KBRG 212D can be  scaled up to 230AC power setting and run both permanent magnet  as we are  doing  or field wound motors  It is also capable of running an 180V permanent  magnet motor     5 1 5 2 Rotating Power Supply     The rotating power supply consisted of three things  an AC to DC variable  converter plug  a slip ring  and a 9V battery  An AC to DC converter was used to  plug directly into a standard wall out
143. p from this point is integration testing including the microcontroller  displaying the message that it receives     7 5 5 Sensor Input Testing     Hardware Interrupt Test  The IR sensor provides a high signal when it is tripped   and we wanted to use this signal to generate an interrupt in our program so that  a flag could be set indicating that it is time to display  The PIC32 has several pins  which can be used as hardware interrupt inputs  and ISRs can be created which  monitor the status of that pin and allow for various modes of triggering  The  supported modes by the PIC32 libraries are rising edge and falling edge  triggering  We set up an ISR with rising edge triggering and simply printed out a  statement to the serial monitor each time the sensor was triggered  We also  tested that using a volatile int as a flag would work properly without creating any  errors  The sensor worked flawlessly and provided hardware interrupts without  any need for sensitivity calibration to the sensor     Program Flow Test  In order to see the sensor influencing the program flow in  some way  we created a test program where triggering the sensor would change  the behavior of the LED array prototype  This test demonstrated that the sensor  hardware interrupt was working correctly  and that the behavior of the display  could be properly influenced by the triggering signal  The test code involved a  onetime cycle through all of the LEDs with very short delay  Each time the sensor  was trigg
144. p s ideas we  wanted to tackle we found that the group had a split in interests  While some of  the group wanted to create something that displayed a level of creativity other  members wanted something within the scope of the group s skill sets  Finally  we  all desired a project that was either inexpensive enough for the group to fund on  their own or a project that was capable of acquiring sponsorship to fund it for us   After some deliberation we all agreed on the persistence of vision project as the  best fit for all these concepts  The following sections help elaborate on why this  project was such a good fit for our group     2 1 1 Sponsorship     As mentioned above our team was seeking a project that was inexpensive or  capable of sponsorship  Since there are a variety of groups or organizations that  rely on public advertisement and these displays require attention getting  gimmicks our team felt that a persistence of vision device is a perfect fit  These  devices have adequate levels of scalability  visual attractiveness  and portability  that make it perfect for such a use     A persistence of vision device is incredibly visually attractive with its various  colorful and active displays  They are great at pulling people s attention and  keeping it and in a scenario where a group is seeking to be both noticed and  remembered it is quite a useful device  In the case that we were adequately  funded we could make this device extremely attractive through high resolutions
145. ps  medium 2  epot  507   mome Aluminum Plate  Small 1  Depot  508   Home Aluminum Plate  Medium 1                   123 E                                                 Depot  509   Ker Electrical Tape    510   ed Wire  Stranded  18 gauge    511   ee Wire  Solid  18 22 gauge f  512   Ra Aluminum Sheet Metal    513   Au Permanent Double sided tape     eu   ai Wood Plank  515   Ad Lugs    516   Al Copper Pipe 1 5    Diameter 1       Table 10  Bill of Materials    11 Appendix     ae    a   MX  X    D  A   MX UA       IR PROXIMITY SENSOR    www IKALDGIC COM DESIGNED BY IBRAHIM KAMAL    Fiqure 10 a Infrared Sensor Reference Circuit       Mm 124       12 Bibliography      802 11 Wireless Standards   About com  Web    lt http   compnetworking about com od wireless80211 80211 Wireless S    tandards htm gt       Arduino   Ethernet   Arduino cc  Web      lt http   arduino cc en Reference Ethernet gt       BIT DEPTH TUTORIAL   Cambridgeincolour com  Web      lt http   www cambridgeincolour com tutorials bit depth htm gt       Bluetooth   Wikipedia  Wikimedia Foundation  30 July 2012  Web    lt http   en wikipedia org wiki Bluetooth gt       Bufferedimage  Java 2 Platform SE V1 4 2    Docs oracle com  Web    lt http   docs oracle com javase 1  4 2 docs api java awt image Bufferedl    mage htmI gt       Color Depth   Wikipedia  Wikimedia Foundation  08 Jan  2012  Web    lt http   en wikipedia org wiki Color_depth gt       A Comparative Study of Wireless Protocols  Bluetooth  UWB  ZigBee
146. r line up of available FORus  In particular  Princetel  offers the MJX series product line  The MJX series fiber optic rotary joints are  capable of rotating at speeds up to 2000 RPMs  In addition to a maximum  rotating speed of 2000 RPMs  Princetel s MJX series fiber optic rotary joints have  an insertion loss of less than 2 dB  less than 0 5 dB typical  with an insertion loss  ripple of less than plus minus 0 25 dB     It is evident that the MJX series fiber optic rotating joint met and exceeded all  design criteria for the POV display  Depending on what fiber connector and  wavelength is required to connect to the Ethernet convert  Table 4 4 2 1 2 below  shows available MJX rotating joints and their respective part number                       Part Number Fiber Connector Wavelength  MJX 850 ST ST 850  MJX 850 SC SC 850  MJX 131 ST ST 1310  MJX 131 SC SC 1310             Table 4 4 2 1 2 MJX Part Numbers    4 4 2 2 Coaxial Copper Communications     In this section we researched the requirements for using a copper coaxial cable  to transfer the data from the stationary side of the POV display to the rotating  side of the POV display     4 4 2 2 1 Coaxial to Ethernet Conversion     Coaxial to Ethernet conversion is the back bone to modern cable modem  internet  Coaxial communications relay on a single copper core that is shielded  by an equal but opposite current  This provides one fundamental advantage over    Mm 30       fiber communications  the ability to conduct power ove
147. r the device had been powered down the slip ring was checked for  damage     The desire of this test was to have the slip ring capable of handling the maximum  possible revolutions per second that the motor could obtain and any variations in  this rotational speed  The test results proved just that with no damage to the slip  ring from the stranded wire     7 3 2 Ideal Power Transfer Test     This test required only the power supply  the slip ring shown  and a voltmeter   The slip ring was connected to the power supply on the outside  and the  voltmeter was connected to the wire of the slip ring that was expected to be  threaded through the shaft of the LED apparatus  The power supplies voltage  was varied from a low to high DC value while the amount on the voltmeter side  was recorded     The desire of this test was to see that all or a majority of the power applied to the  non rotating side was seen on the side that would be rotating  This test proved  that there was almost exact power transfer through the slip ring when not being  rotated with only a very small resistive loss     7 3 3 Rotational Power Transfer and Thermal Dissipation Test     For this test we needed the motor control circuit  the motor  the slip ring design  and the prototype circuit in Figure 6 1 of the prototype section  In this test the slip  ring was connected to the power supply  Since we don t have a way to directly  measure the rotational side during its rotation we used this prototype circuit to g
148. r the same line as the data  signal  This allows the conversion of signals to coaxial using simple in line  converters that do not require any additional power supply  One such in line  convert is provided by EnConn  The EnConn EOC IN B Ethernet over Coax  allows for the transmission of Ethernet of coaxial cable at transmission rates up  to 10 Mbs  As stated early  the EOG IN B is an in line or passive device  This  means the EOC IN B does not require any additional power  In addition  the  EOC IN B is a compact design allowing the device to be installed using less  space not only on the stationary platform but the rotating chassis of the POV  display  However  the EnConn EOG IN B only supports Ethernet  communications up to 10 Mbs  In the case that the communications to the LED  array will require a higher bandwidth additional research is required to determine  the best alternative     One alternative from EnConn is their EOC AN and EOC IN Ethernet over Coax  extender allows for transmission of Ethernet at rates of 10 Mbps up to 100 Mbps   The EOC AN converter requires a DC power input of 12V but the EOC IN does  not require any power input  This means we could use the EOC AN converter on  the stationary side of the POV display and power the converter from the power  supply  We would then install the more compact EOC IN on the rotating side of  the POV display  Another alternative would be Pulse Link s PL3302 Ethernet over  Coax bridge  The PL3302 allows Ethernet communicati
149. racteristic of the resistor will be the power rating   Although the power rating for the resistors is less critical than the diodes  we still  required resistors with a power rating of at least 5 watts to allow for proper heat  dissipation  Vishay  a well known resistor manufacture  provides a type RS  resistor that is wirewound with axial leads that would work well with the bread  boards and PCB boards  One example of a complete resistor part number is  RS00510K00FE12  which is a resistor rated for 10 kohm  5 watts and a tolerance  of     1 percent     4 1 2 3 Potentiometers and Variable Resistors     After during some initial research  it was discovered that potentiometers and  variable resistors do not come readily available at the power ratings required for  the converter  Therefore  we used fixed valued resistors similar to the type RS  resistor previously discussed     4 1 2 4 Capacitors     One available capacitor that meets the required specifications is manufactured  by Vishay  Vishay offers an aluminum electrolytic type 53D capacitor that can  operate at 200 Volts  Although the tolerance is only     10   the capacitor is  available at rated capacitance range of 15 uF to 220 000 uF  Just like the  resistor  the capacitor has axial leads to allow for easy integration into bread  boards and PCB boards  Once again  the exact capacitance requirements are  not know at this time  but an example of a completed capacitor part number rated  for 350 uF is 53D351F200JL6     4 2
150. rary also includes functions for seeking to a specific byte  location in the file  The library also provides functions for checking to see if a file  exists  and when attempting to open a file that does not  it will create it  In this  test  all of these functions are tested one at a time with serial print outs used to  verify the success of each individual sub part of this function     Additional SD Testing  In order to further test the behavior of each of the  functions provided by the micro SD library  we performed additional tests    107 i    involving file creation and manipulation  The seeking function was given a more  rigorous test by finding specific known data within a large text file  We also tested  the behavior of the library when reading a non text file  such as a binary file   which behaved exactly as expected     7 5 3 Wi Fi Communications Testing     The Wi Fi communication testing verified that the PC is able to communicate with  the microcontroller successfully  This testing required us to have a simple server  program on the microcontroller  and a client program on the PC  These testing  procedures were done with the microcontroller and the PC concurrently since in  order to test one we must communicate with the other  We tested the  effectiveness of our protocol and made adjustments to our design as necessary   The main focus for the Wi Fi communications was reliability since dropped  packets may mean artifacts appearing in the image     Our first test co
151. rding to the research paper   electromagnetic noise generated by mechanical components is usually in  frequency ranges less than 1 5GHz  We used WiFi and could have used  Bluetooth  both of which operated at the 2 4GHz frequency  It is safe to conclude  that any electromagnetic noise introduced to our system from the mechanical  components should not interfere with our wireless communications     4 5 Motor     In order to create the illusion of motion through the phenomena known as  persistence of vision it comes to no surprise that we need some sort of motor   This motor needs to be able to rotate whatever apparatus we designed that  housed the LEDs  processor  and any other circuit elements we needed to  implement the system  It also needed to be able to rotate at the rom needed to     trick    the brain into seeing motion  In addition  under the considerations that this  project was designed for the use of advertisement we would also like to find a  motor that is as silent as possible so as to not be discomforting to those who  either work around it or potential customers whom are attracted to it    There are a variety of motors available for such a use but for the most part the  motors fall into two categories AC and DC motors  In the following sections we    37 WW    will not only discuss the above design considerations but also discuss the pros  and cons for both the AC and DC motors for each consideration  This discussion  will eventually lead to which motor type we pi
152. re  As well  wood  and plastics may have been more susceptible to twisting and moving while the  display is running  Therefore  we focused our research on aluminum as it  provides the best mix characteristics to meet the requirements of the chassis   Table 4 6 1 below list several commonly used aluminum pieces  the type of  aluminum and their weight  The information in Table 4 6 1 was used to calculate  the torque requirements of the POV display during the design phase of the  chassis                       Type of Aluminum Weight   1 4  Plate  Type 6061 T6  1 764 lbs per square ft   1 4  x 1 4  Square Tubing  Type 6061 EXT    0 294 Ibs per lineal ft   1  Solid Rounds  Type 6061 EXT  0 924 Ibs per lineal ft        Table 4 6 1 Typical Aluminum Pieces and Weight  4 6 2 Chassis Rotating Interface     The most challenging portion of the chassis design was determining the best  solution to rotate the POV display  If we had used wired communications  the  center point of rotation would have been left available to allow for the mounting of  either the fiber rotary joint or the coaxial rotary joint  Wireless communications  did not require the center of rotation to be left available but was not hindered  from operation with the center left available  Therefore  we researched options to  allow for high speed rotation using some form of a bearing allowing free access  to the center of rotation     To research possible solutions for rotating the POV display with the center of  rotation l
153. re placed in such a way that it was  directed toward a surface with some reflectivity  an aluminum plate which was  the same surface that was used as the trip in the final design  Then the CTRL pin  was increased slowly until a hit was registered on the receiving circuit  This was  observed by tracking whether the LED turns on or off and whether a voltage was  registered on the voltmeter  Once a hit was received we then removed the  reflective surface and watched to see if the LED turned off or stayed on and  whether the voltage dropped or rose on the voltmeter     The desired result of the test was to have the LED turn on when the CTRL was  turned on and reached a voltage of about 2 5 volts or larger  a value that would  be higher than the minus terminal of the op amp  then to have the LED turn off  immediately upon removal of the reflective surface  The test was successful and  the sensor was extremely responsive to the reflective surface and most any other  surface in general  The only two things that the sensor was not responsive to  was a black surface or an abundance of distance between the sensor and the  surface  In addition  the voltage pulse on the OUT of the circuit proved to be  noticeably observable  In other words  if there was a reflective surface the OUT  read a clear 2 7 3 6 volts and while there was no reflective surface the voltage  was down in the low millivolts range     7 1 1 2 CTRL Signal Calibration     This test encompassed the second test requirement
154. re the  electromechanical potentiometers that can be used to calibrate the KBRG 212D  chip and will be discussed further in this section  The power terminals and the  motor terminals can be seen on the top left of the picture where the four screws  can be seen     As for the Dayton 9FHD7 you can see both the aluminum hoops used to mount  the stranded wire to the slip rings  Both of these are mounted to the motor with  two screws and washers to keep them in place  The relay that is also attached to  the motor is where the AC adaptors and the wire contacts for the slip ring will be  attached to     67 EE       Figure 5 1 3c The Dayton 9FHD7       5 1 3 1 Motor Control Elements     The control elements section deals with the KBRG 212D chip and the Dayton  9FHD7 DC motor  The KBRG 212D is a regenerative driver chip for both  permanent magnet and field wound motors  This chip was used to both power  and control the Dayton 9FHD7 motor  Figure 5 1 3 1a shows visually these  components as placed within the final design     The Dayton 9FHD7 DC motor is directly connected to the KBRG 212D via the  M1 and M2 terminals on the chip  The L1 and L2 terminals are connected to the  AG adapter  The M1 and M2 terminals supply 90V and 1 5A to the Dayton motor  as described in the Stationary Power Supply Section  The Dayton motor was  then mounted to the main Chassis  inner section     Mm 68       GROUND   earth     Figure 5 1 3 1a Motor and Power Connection    The KBRG 212D is partially enclosed
155. requirements  To simplify the torque calculations we used the  simplified LED frame shown below in Figure 5 1 1 6a     5 R1 R2 2    M1 M2    Figure 5 1 1 6a  Simplified LED Support Frame for Torque Calculations    We then used the values and equations shown below to estimate the torque  requirements of the POV display when operating at 15 RPMs  The mass M1 and  M2 were derived from the linear weight per foot of the aluminum square tubing  used to fabricate the LED support frame     M1  mass of primary LED array    0 15 kg  M2  mass of secondary LED array    0 15 kg  R1   0 35448 m and 0 0875 kg  R2   0 40752 m and 0 1125 kg    Im   M1 x R1     0 15 kg x 0 35448     0 0188 ko  m   Ima   M2 x R2     0 15 kg x 0 40752     0 0249 ko  m   In   1 3 x MRI x R1     0 333 x 0 0875kg x 0 35448     0 00366 kg   m     Ino   1 3 x MR2 x R2     0 333 x 0 1125kg x 0 40752     0 00622 ka  m     K     Im   Ty   Tp   IS   0 05358 kg s m           0 05358 kg    m     TAKA ge  TTOXOxQDA        T  YI xa 0 402N m    Our final calculated torque requirements came out to be 0 402 Nem which is  under the maximum torque of 0 49 Nem provided by the motor     WW 62    5 1 2 LED Array Hardware Design     As discussed during the research section for the LED array  we had two options  for controlling the LEDs  One option was to use a latch control system and the  second option was to use pulse width modulation LED controllers manufactured  by Texas Instruments  Due to the easy integration of the LED control
156. rnnnrrrrnnnnnnnnnrrnnnnnnr 48  4 7 3 GUI Communications to Microcontroller           xnrrrrrrnrnnnnrrnnnnnrrnnnnnn 49  4 7 3 1 Serial Communication Software Library         aannnvrrrrnnnnnnnnornnnnnnr 49   48  eet siioni nannaa eseina aas 50  4 8 1  Digilent Atlys  Stationary EPOGAI 51  4 8 2 TI Launchpad  Rotating Mierocontrollert  51  4 8 3 Arduino Uno REV 3  Rotating Microcontroller            eorrrrrnnnnnrrrnnnnre 51  4 8 4  Digilent Cerebot MX7cK  Rotating Microcontroller                  0000 52  4 8 5 Additional Microcontroller Concerns         uxarrrnnnnnvrrrnnnnnnnnnnnnnnnrrnnnnen 52   S PO PEN AA 54  51 Hardware DN  rede 55  5 1 1 Chassis Hardware Design  EE 57  5 1 1 1    CHASSIS DIMENSIONS eerieegegeegeegeberiegercieuieegeiegiegeiegeeegebaituger  ee 57  5 1 1 2 Dimensions of LED Array   c c cccccecsccccdccwcrenteesencduenecenteenersecuceden 57  5 1 1 3 Dimensions of Chassis Base  EE 57  5 1 1 4 Chassis Aesembhy ee 58  5 1 1 5 Motor Interface  Lunn viv sete sscnmetiannnaptenpenedtnentanntenscenstens 61  5 1 1 6 Chassis Torque Calculations           rernnnnonnnnnvrrrrnnnnnnnnnnnnnnnrrnnnnne 62  5 1 2 LED Array Hardware Design  sasssrmvsmm  nsmeiemidnnnsijvunje 63  5121  TLC5940 Pin Out and Wiring  mumemmmenbeemmesmaml td  63  5 1 2 2 LED Array for Text Display    66  5 1 3 Motor Hardware Design  66  5 1 3 1 Motor Control Elements    68  5 1 3 2 Motor Control EE 70  5 1 4 Display Alignment Gensor EE 71  SS POE SIA vvs 75  5 1 5 1 Stationary Power SUP DIY  Lummmnsaema
157. s    available for FPGA   s  Cores are  FPGA software packages that program the FPGA to function like a certain  hardware design  We were able to find a core which implements a 10 100  Ethernet MAC on the FPGA  Using this core we would have been able to use the  Ethernet ports on the FPGA   s for communication  If we used the Ethernet core  then we would have used the UDP protocol because flow control and  acknowledgements are unnecessary for our application  A live video feed cannot  afford to retransmit packets  It makes more sense to simply drop any lost packets  and continue transmitting the next frames     Another alternative may have been to use the Ethernet ports in a non standard  way  We could have used the pins on the RJ 45 connector to send the data using  our own design  If we picked that route we would not have been using any  Ethernet protocols but simply sending raw data through a wire  This would have  been the simplest method to design and implement because it would not have  required any complicated software library or IP cores  After looking at example  code using the Xilinx Ethernet MAC core it was obvious that many hours would  be required just to understand the example  The core available through the  opencores org website was even more complex because it lacked documentation  and examples  Another fact worth mentioning is that the cores do not work in a  straightforward way like C programming  They are actual hardware  implementations and should be view
158. s  For this test the set up  was the same as the test in section 7 1 1 1  After the circuit was set up and the  tachometer was directed away from the reflective surface  the voltage supply  connected to the control pin was slowly increased  Starting at OV the voltage  from the power supply was increased by 0 5 volts up to 5V  During each increase  in voltage the reflective surface was passed in front of the infrared sensor slowly   The voltage change on the voltmeter was observed during each increment     The desired result of this test was to determine that the strength of the CTRL  signal is irrelevant when it comes to the effects of the strength of the receiver    hit     signal  The result proved that below 2 5 volts the sensor did not register any  value and the CTRL signal had not effect on the sensor  However  once the  CTRL signal reached the 2 5 volts further increases to the CTRL line had some  impact on the OUT signal increasing its value slightly  This increase however   required substantial increases in the CTRL signal in order to make an impact on  the OUT signal  The difference turned out to be around a 1 volt change in the  CTRL line amounting to a few millivolts change in the OUT signal     101 i    7 1 1 3 Sensor Sensitivity Test     The final test for the sensor was the sensor sensitivity test that used the  potentiometer  This test was setup exactly as the first test  In this test the  potentiometer was varied between detection tests to determine the best 
159. s are rated  for operations at 600 Volts and up to 30 Amps  Since we would be protecting the  incoming AC power  only the positive or line side of the AC power supply needs  protection  This means we would only require a single pole fuse block  The part  number for a single pole Bussmann type BC fuse block with screw connections is  BC6031S  As well  Table 4 1 1 1 1 shows some of the available Type CC fuses  offered by Bussmann and their corresponding current rating                                   Part Number Current Ratings  LP CC 1 1 Amps  LP CC 2 2 Amps  LP CC 3 3 Amps  LP CC 4 4 Amps  LP CC 5 5 Amps  LP CC 10 10 Amps  LP CC 15 15 Amps  LP CC 20 20 Amps          Table 4 1 1 1 1 Type LP CC Fuses and Current Ratings  4 1 2 AC to DC Converter     Mm 10       The POV display required conversion of the AC power coming from the wall  outlet to DC in order to power the motor  the LED array and the microprocessors   A simple full wave rectifier circuit as seen in Figure 4 2  would be used         AC INPUT             rl    DC OUTPUT    Figure 4 1 2 Full Wave Rectifier Circuit    Although the exact voltage required for the motor  LED array and  microprocessors is not known at this time  we do know that we would most likely  require the functionality to change the voltage output of the DC converter based  on the requirements  In order to change the DC output voltage of the converter   we would vary the AC input by using a simple voltage divider circuit with a  potentiometer or var
160. s wired to the SIN    WW oi       pin on another controller  The wiring required for the controllers can be seen in  Figure 5 2 1 b     FROM  MICROCONTROLLER    V        CC  ti OUT  PIN 1  OUTO  PIN 28  a    OUT2  PIN 2  VPRG  PIN 27   OUT3  PIN 3  SIN  PIN 26         OUT4  PIN 4  SCLK  PIN 25   OUTS  PIN 5  XLAT  PIN 24   OUT6  PIN 6  BLANK  PIN 23    mr      G      pooo    e    lt a      G a  FR EE june  eur EG Sr dE   lt a o   kk os  A OUTIO  FIN 10  DOPRG  PIN 19  ZE       4   lt a  PK WE         UT9  PIN 9  IREF  PIN 20   OUT11  PIN 11  GSCLK  PIN 18    OUT12  PIN 12  SOUT  PIN 17       OUT13  PIN 13   XERR  PIN 16       OUT14  PIN14    OUT15  PIN 15   TLC5940   OUT  PIN 1  OUTO  PIN 28    OUT2  PIN 2  VPRG  PIN 27     OUT3  PIN 3  SIN  PIN 26       OUT4  PIN 4  SCLK  PIN 25     OUTS  PIN 5  XLAT  PIN 24      i  OUT6  PIN 6  BLANK  PIN 23  _  OUT   PIN 7  GND  PIN 22  EE  OUTS  PIN 8  VCC  PIN 21  a  OUTS  PIN 9  IREF  PIN 20     OUT10  PIN 10  DCPRG  PIN 19      i  OUT11  PIN 11  GSCLK  PIN 18   gt   OUT12  PIN 12  SOUT  PIN 17  Dp  OUT13  PIN 13    XERR  PIN 16     OUT14  PIN 14    OUT15  PIN 15   TLC5940       Figure 5 1 2 1b LED Controller Wiring    65 i    5 1 2 2 LED Array for Text Display     The design for the LED array required for displaying text used the same LED  controller but we only used mono color LEDs  The text display contains 16 LEDs  so only one controller was required  The wiring of the controller and LEDs was  similar to Figures 5 2 1 b     5 1 3 Mo
161. s would hopefully either make a more seamless  image or account for any variations that may occur within the device     2 2 2 Computer Interfacing     We also desired the project to interface easily with your computer so that the  user could upload customized code for their custom patterns  text  and  animations  We wanted this to be done during operation also so a method of  sending information from the stationary side to the rotating side was needed     2 2 3 High Resolution     We wanted to create a relatively high definition image so we designed the project  with a high pixel count  We specifically chose 32x384 as our target resolution   This meant we needed a total of 32 LEDs  This also meant each LED had to be  capable of a large scale of colors in order to recreate the image being sent each  frame     2 2 4 Portability     Since we had decided the device needed to be portable it could be no heavier  than a small television and only about as bulky  This meant the materials we  chose to build this device out of need to be durable and light weight     2 2 5 Programmability     We wanted the device to be easily programmable and capable of at least simple  marquee text displays that would be implemented with our own self developed  program  This would allow the user to simply input a text banner or the time  and  have it displayed on the device instead of just the computer interface  In addition   we also wanted the device to be complex enough that someone with experience  
162. sing point three frames  That doesn   t  seem large but point three frames can become eighteen frames in one minute  and ninety frames in five minutes  And each of those is a distortion in the    41 E    animation or image  This shows how important our sampling rate is to keep the  integrity of the image     There are two options that seemed to be rather common for rotational speed  sensing when it comes to motors  These methods are the Hall effect and infrared  sensing methods  Both have their pros and cons so we will look into those and  whether they fit well for our application     4 5 5 4 1 Infrared Sensor     In the case of using infrared as a method for sensing and controlling the motor  the process seemed relatively straight forward  We would have an infrared  emitter on the rotating side of the device and an infrared receiver on the  stationary side  When the emitter crossed the receiver we would get a    hit    which  we could then use to calculate an rpm value  We could then send this value to a  micro controller where we would then determine whether to increase or decrease  our motor s rpm value     This method is very effective for any design we decide to go with  It can work for  any motor type and is unaffected by the use of a gear box  and in fact ideal for  such a use  The only concern for this method was the accuracy  Considering we  are using an infrared sensor there is a possibility for some failed trips  This  means we needed to have a substantial number o
163. sion is possible because within each frame exists redundant data  that could be described more efficiently  with or without loss of information   Redundant data can exist in two forms  spatial and temporal  Spatial redundancy  occurs when there are repeated pixels in a single frame  Temporal redundancy  occurs when pixels values do not change from frame to frame     One of the simplest forms of compression involves simply throwing away the  least significant bits of each RGB color  which would allow each pixel to be  represented by fewer bits  Since our display is a 256 color display  this form of  compression will almost certainly occur  and is discussed in more detail in  section 4 2 3 1 dealing with Color Depth Reduction     Run length encoding is a very simple compression method that deals with spatial  redundancy  With run length compression  when a pixel color value C is identical  for some sequence of length L  it can be represented by  C  L   The type of  compression works best on computer generated images because of the  increased likelihood of unvarying pixels  Combined with the color depth reduction  that is to occur  the likelihood of identical pixels in sequence is increased and  could greatly reduce the size of the data     21    Often in transferring the signal between the source and display  composite  formats are used instead of having 3 separate outputs for RGB  In the composite  format  instead of RGB values  a Luminance    Y    value and a Chrominance is  
164. slowed down the speed of communication  between the microcontroller and the LED controller  After removing the serial  print outs we saw that the spaces between the letters was now gone and the  image looked as intended     Live Updating of Text  For our next test we wanted to be able to update the  message that is displayed in real time while the device is turned on and spinning   For this we used Wi Fi server code that was very similar to the echo server  The  Wi Fi code for this test does not echo back any sort of response  it simply  receives data and stores that data into two byte arrays  We did not use the SD  card for this test in an effort to keep it simpler  The message that the display  shows defaults to    HELLO WORLD    with each word appearing on its own line   There are two byte arrays  one for line 1 and the other for line 2  These arrays  are where the data for the default    HELLO WORLD     is read from  This is done  the same way as described in the word test  The main reason for this test was to  change what the display says by receiving data via Wi Fi and saving that new  data into each of the byte arrays for line 1 and line 2  Since the software is  constantly displaying the message stored in the byte arrays  the message should    113 Ps    update if new data is stored in those arrays  After solving the problems of the  previous test we were able to successfully complete this test quickly     We had one major problem while performing this test which invol
165. smeneemmesmaet sit vn 76  5 1 5 2 Rotating Power Gupphy n 76    mm iv    5 1 5 3 SP Ring DESTO E 77   52  Software Desig  ee EEN 79  521 Computer Side Processing           c csscccnetenssessteesteecneneteneseecsneetenonee 79  5 2 1 1 Image Buffer Format  en 80  5 2 1 2 Output Format Specification  EE 81  521 3 Frame FOSSE Leer 82  5 2 1 4 PC Wi Fi Communications            seeeeeeeeeesennenneeeeeeerrnennnnnneserrnne 87  5 2 1 5 Display Alignment Sensor Software         rrrnnrrnnnnnnnnnnnnnnnnnrrnnnnnn 88  5 2 2 Microcontroller Software Design  EE 88  5 2 2 1 Modes of EIERE    sunmimnmmisesinemmueeseiteuesksetn iv 89  5 2 2 2 Outputting Data to LED Amay  89  5 2 2 3 Outputting Data to Text Amay  90  5 2 2 4 Microcontroller Wi Fi Communications           rrrrnnnnnnnnnnnnnnnrrnnnnnn 91  5 2 3 GU Me EE 92  5 2 3 1 Text Message Input    93  5 2 3 2  Image 0 E 94  5 2 3 3 GUI Wi Fi een  Eu le E 95  5 2 3 3 1 Wi Fi Communications Class         rrrnnnnnnnrrnnnnnrrrrnnnnnnnnrrnnnnnnnn 96  5 2 3 3 2 Wi Fi Communications UO  96  5 2 3 4 GUI Class tun El een 97       PrototypiNhg KE 98  6 1 Slip Ring Power Transmission Prototype                  eceeeeeeeeeeeeeeeeeeeeeeeees 98  6 2 Scaled LED Array Prototvpe 99  6 2 1 Scaled LED Array Hardware Prototype Design         arrnnnrrrrrrnnnnnnnrr 99   TR    E 100  7 1 Display Alignment Sensor Testmg 100  7 1 1 Sensor Hardware Test    100  7 1 1 1  Sending Receiving Signal Hardware Test  101  7 1 1 2 CTRL Signal Calibration          srrrrrrnnnnn
166. ssue  though  because soon after acquiring the arrays we ended up with another issue with the  Chipkit  the frequency it could obtain  While the Chipkit theoretically could obtain  the frequency we needed to run our pixel count  it ended up only being able to  run 32 instead of the first attempt at scaling back which was 128     These design challenges discussed above were overcome but at a substantial  increase in our first projected costs  This meant that the need for sponsorship  has tremendously increased  The entire design was under the expectation of an  almost limitless budget  However the loss of the expected sponsorship required  some rather extreme reductions in scale of the design  Specifically our team had  to drop the HDMI instantaneous streaming of the display device  This was  primarily for two reasons  The first reason was that the loss of a sponsor required  us to drop the LED count and thus drop the resolution to a level that would not be  cohesive with the idea of displaying a computer screen for video playback  The  second reason for this design cut was the ability to purchase less powerful and  thus less expensive micro processing boards for image processing  Without the  demands of the high data transfer associated with the instantaneous streaming  of the display device our display ended up having to project much more simplistic    121 Ei    animations and text  thus needed much less data transfer and processing  We  were unable to cut our motor demands 
167. sualized in Figure 5 2 1 3e     Grayscale Value 1 Grayscale Value 2   O O  O JO   24   23   22   21 0 0 0 0 12 11  10  9  20 191181171 16 15  14  13 SOS Pe EEE  Logical Left Shift x 4 Grayscale Value 1 Byte 1   24   23   22 21 0  O  0 JO  Logical Right Shift x 4 on a copy of Grayscale Value 1 Byte 2  0 O  O  O  20 19  18  17  AND Grayscale Value 1 Byte 1 with the copy  24   23   22   21   20   19  18   17  Logical Left Shift x4 GS1 Byte 2  16 15 1411310 10 10  0  AND Byte 2 with GS2 Byte 1  16 15 14 13 12 11 10 G9  Return GS1 Byte 1 and 2  and GS2 Byte 2  24   23   22   21   20   19  18 17  16  15 14 13 12 11 10 9  G Iz ME     l2  q                                                                                                             Figure 5 2 1 3e Visualization of Combining Grayscale Values  5 2 1 4 PC Wi Fi Communications    The PC will have to send messages to the microcontroller  For this we will be  using Wi Fi in ad hoc mode  We will be using the TCP protocol over Wi Fi in  order to ensure that the packets are received without error  We will be designing  our own simple communication protocol that is suitable for our purpose  It must  be fast and it must have a way of differentiating between types of data  Since we  will be sending different types of data we will have to add a header to each data  stream  The possible types of data that we may send are  image  text  main    text  small   and command  With four different possibilities we will need 2 bits for  the h
168. tages of Mercotac s rotary joints are life  expectancy and maintenance requirements  The Model 205 rotary joint is  manufactured with a life expectancy of several hundred million revolutions  If a  rotary joint is installed and operated under all specified conditions  Mercotac  claims the joint can even last for over a billion revolutions  As well  the joints are  manufactured for to be maintenance free  meaning they will not deteriorate the  signal over the lifetime of the joint  Figure 4 4 1 2 2 below shows a typical  mounting and wiring of a Model 205 joint  As well  Table 4 4 1 2 2 list all models  and their corresponding specifications for the 205 joint  All Model 205 joints have  two terminals  operate at a voltage range of 0 250 V AC DC and a current rating  of 4 Amps at 240 V AC        SAAS  RW og    e    Bottom mount with  conductive shaft     Fiqure 4 4 2 2 2 Model 205 Rotary Joint for Rotary Interfaces                         Part Number   Max  Freq   Max RPM Ball Bearing Cost   205 200 MHz 2000 Steel  28 52  205 SS 200 MHz 2000 Stainless Steel    37 68  205 H 200 MHz 3600 Steel  29 62  205 HS 200 MHz 3600 Stainless Steel    38 37                   WW 32       Table 4 4 1 2 2  Coax to Ethernet Converters  4 4 2 3 Ethernet Protocols     In order to determine which protocol is most appropriate for our purposes we  looked at the protocols TCP  UDP  and using our own  TCP is protocol that is  designed to reliability transmit a stream of bytes between two programs runni
169. the WiFiConnection  class  The WiFiConnection class contains an instance of the Socket class from  the built in Java network library  The Socket class handles the communications  and allows the WiFiConnection class to send a payload to the microcontroller  as  well as receive acknowledgements  The acknowledgements will be optional  We  currently do not receive acknowledgements but it can be easily added if we need  them for debugging  Another use for the optional acknowledgments may also be  a loading bar which can continue to fill as the acknowledgements are received  A  simple sequence diagram shown in Figure 6 3 3 2 next should help to illustrate  the planned data flow for the WiFiConnection class       WiFiConnection   Socket Microcontroller           Initialize   i   i  SendMessage j                  Acknowledge         RecieveAck    Optional      Optional     EE op    Figure 5 2 3 3 2 WiFiConnection Sequence Diagram    Before Wi Fi communication can occur the Socket must be properly initialized   The Socket is either initialized by using the WiFiConnection class constructor or  by calling the connect method with an IP address and a port number as  arguments  Both the WiFiConnection constructor and the connect method throw  an UnknownHostException  or an IOException  The UnknownHostException is  thrown when the IP address and port number combination cannot be found on  the current network  IOExceptions may be thrown when the IO for the socket  does not initialize properl
170. the final design of  the POV display that we will be discussing in this section  Within the image you  can see all the elements of the project  hardware wise that went into the  construction of the final product     BS 54       Figure 5  POV display  5 1 Hardware Design     The hardware of this device is broken into four major sections  The first section is  the stationary control section which consists entirely of the AC input  the KBRG   212D motor control chip  Dayton 9FHD7 DC motor  the computer that will  connect via Wi Fi to the rotating microcontroller  and the AC to DC variable    5 BE    adapter  The second section is the power transfer section that consists entirely of  the slip ring and wires that connect from it to the rotating side  The third section   the rotating control side consists of the PIC32 microcontroller  RGB and Text  LED arrays  and the 9V battery that powers the microcontroller  The final portion  of the hardware design is the Display Alignment Sensor which consists of the IR  sending and receiving circuit and the rotating apparatus it is attached to  Figure  5 1 gives a good visual representation of the flow of the hardware and how they  will be connected together     Each of these sections of the device has a variety of different hardware  components needed in order to achieve the ultimate goal of creating this  persistence of vision device  The following sections will discuss more thoroughly  our final decisions on the hardware design of each por
171. the motor were relatively simple  The  only thing we needed the motor to do was reach our desired rom value and  maintain that value until the device was shut down  We did not need the POV  device to vary its speed which would have required more elaborate methods of  control     There turned out to be two methods that were commonly used for DC motor  control and that was either using a variable resistor or potentiometer to control  the speed or to use a pulse with modulation circuit to control the speed of the  motor through the duty cycle  Both methods were found to be inexpensive but the  question was which one was better suited for our purposes     4 5 5 1 Variable Resistance Method to Motor Control     In the case of the variable resistance method we came to learn through our  research that it is the least liked method among motor users  There are quite a  few problems with this method  especially if you are looking to constantly vary the  speed of your motor or need to get a small speed but still turn on the motor   Lucky for us we didn t want to do either of these so it was still a viable solution     The main concept that turned us away from this solution though was the heating  issues that were common with it  In many cases the resistor had a chance of  burning out because of the high power strain on the resistor     4 5 5 2 Pulse Width Modulation Method for Motor Control     PWM turned out to be a little bit of an overkill for our project s design since we did  not n
172. there are 5  lines coming from the microcontroller that will need to be changed  The pin  configuration from the controller is as follows     Pin 3     Grayscale Clock  Pin 5     Blank signal   Pin 9     Latch signal   Pin 11     Sin  Data out   Pin 13     Data Clock    To operate in RGB mode  the text array should be entirely disconnected from the  controller  This includes removing its ground and Vcc lines  The RGB display  should then be wired to the controller for the 5 pinouts that have been specified   Additionally  the ground line for the RGB display will need to be connected to the  microcontroller  The wall AC adapter must then be plugged in so that power can  be transferred through the slip ring     When operating in Text display mode  the RGB display should be completely  disconnected from the microcontroller  This includes insuring that its ground line  is also removed  as it will affect the operation of the device  The 5 lines coming  from Text array should then be wired into the microcontroller based on the pin  out specified above  The Vcc and ground for the text array must also be wired  into the microcontroller     Mm 120    9 Conclusion     The process of designing a persistence of vision device turned out to be a far  more complicated endeavor then our team expected  While we had already  expected some complications in the power transmission process of this device a  whole slew of issues revealed themselves in other areas of the device that we  had initiall
173. tion of this device and the  actual hardware design themselves  This will include the specific components we  used to implement each of these designs  Also within this section will be a layout  of the structural design of the chassis which will house all of the electrical  hardware for this device        j    Stationary Control     AC Input    KBRG 212D  Regenerative  Drive Chip       Dayton SFHD7  DC motor    AC to DC    Power Adaptor Computer       Display  Alignment        Chipkit  Microprocessor    3 3V DC 9V Battery DC IR Sensor    Figure 5 1 Hardware Flow Chart  Mm 56    5 1 1 Chassis Hardware Design     As discussed during the research section for the chassis  we constructed the  chassis from aluminum using a combination of aluminum plate  square tubing  and solid round rods     5 1 1 1 Chassis Dimensions     Before we were able to finalize our chassis design  some basic dimension  requirements had to be identified  The first  and most critical dimension  requirement was for the physical size of the LED array  We then needed to  determine the size of the chassis base and the space required to mount the  motor     5 1 1 2 Dimensions of LED Array     We used the Multicomp s SMD Super Bright LED  part number OVS 3309  The  LED has a vertical dimension of 2 8mm and a horizontal dimension of 3 2mm   The horizontal dimension was required to properly mount the LEDs on a printed  circuit board but are not a dimension required or even necessary to determine  the size of the LED
174. tionally  tests attempting to obtain a 26 66 MHz frequency  yielded inconsistent results  The signal would sometimes be useable  and  sometimes become deformed  indicating that outputting this frequency is beyond  the capabilities of the PIC32  The frequency used to test Blank and Latch were  much smaller  requiring only a few thousand Hertz  All measurements were  verified using an oscilloscope     SPI Data Writing Speed Test  Similarly to testing the Grayscale Clock speed  we  needed to obtain the fastest possible data writing speeds  The faster the data  can be written the more often we would be able to update the display with a new  column of data  and thus the higher frame rate we would be able to achieve   Data is being written using the SPI interface which is built into hardware on 4  pins  which include Data Out  Data In  Data Clock  and Slave Select  The SS pin  can actually be any pin that you choose  but this is one which is hardwired to be  one  By manipulating the SPI settings we were able to obtain a data writing  frequency of 20 MHz with zero errors  Any attempt to increase this speed to  26 66 MHz failed to work properly  Frequency measurements verified with an  oscilloscope    7 5 2 Micro SD Testing     Basic SD Testing  MPIDE provides various example programs for accessing  micro SD memory and the files contained within it  The built in functions allow  you to open a file  read the contents within it byte by byte  as well as write bytes  to the file  The lib
175. tions  The final section  will sum up our eventual decision and explore the reasons for our choice     4 4 1 Requirements    Before we can even discuss either method of communication to our rotating device we  need to discuss the data requirements that we needed in order to implement the system   This is so we can effectively decide the best fit for our POV display     First we needed to determine the number of bits required for one LED to display a single  color  Since we decided we wanted two hundred fifty six colors we knew that we needed    WW 26    about eight bits of information to display a specific color on a single LED  However  we  don t want to display on just a single LED so we need to be able to determine which LED  we want to send this color to  Since we planned on having four hundred eighty LEDs as  our vertical dimension we knew we needed nine bits of information to tell the processor  which LED we were addressing  That is seventeen bits total that is needed to turn a  single LED in the array a specific color  the eight bits needed for the color plus the nine  bits needed for the specific LED in the array  Figure 3 4 1 gives a visual representation  of this concept        Figure 4 4 1 Data Array    This only turns a single LED in the array a single specific color  We need to turn  all four hundred eighty LEDs a variety of colors that means we need to send a  seventeen bit word to each LED at once for a single vertical line of our frame  We  also need to tell t
176. to tell  if the slip ring was properly transferring the amount of power we needed to power  the LED apparatus and microprocessor without actually connecting the processor  so as to not cause any damage to either the processor or the LEDs  That being  the case we created a prototype circuit using one 60 watt bulb  Since the  expected amount of power needed on the opposite side of the device was  around 10 watts of power then if the slip ring could power while in motion 60  watts worth of power then we know that we should have no problem powering  the 10 watts  In addition  we were able to tell what the minimum amount of power  needed to power the 10 watts was so we could get an idea of the loss in the  system  This prototype circuit can be scaled up by adding more bulbs in series to    WW 98    create larger power requirements in order to test for a scaled up version of the  final device  The circuit for this prototype is shown in Figure 7 1        Vcc m  4          Bulb 60W  I2             Bulb 60W  13  Bulb 60W             v    Figure 7 1 Power Transmission Prototype       6 2 Scaled LED Array Prototype     In order to verify our LED array design works  we built two prototype of the LED  array  Both prototypes used the TL5940NT models instead of the surface mount  due to the difficulty of having to surface mount the IC just for testing  The first  array used 4 RGB LEDs and 4 Green LEDS  This was so that we could test both  the text array and RGB array LEDs with the TLC5940  
177. tor Hardware Design     Our specific motor design encompasses two major sections a control elements  and control inputs section  The control elements section makes up the things that  need to be controlled  the motor control chip and the motor  while the control  inputs section encompasses the input signal controlling the speed and whether  the motor is enabled or disabled             Control Elements           KBRG 212D   Motor Driver IC Power    Chip    Dayton  9FHD7               em mm mm zm em mm o zm zm zm e zm zm mm zm zm ze zs    SPST Switch  Enable Disable  Motor    5 kO Potentiometer  Vary Speed    Figure 5 1 3a Motor Control Flow Chart    Figure 5 1 3 is a flow chart that gives a visual representation of how this process  was configured  In the following subsections both the Control Elements and  Control Inputs will be discussed     The KBRG 212D is a regenerative driver chip for both permanent magnet and  field wound motors  This chip both powers and controls the Dayton 9FHD7  motor  but requires inputs to determine specifically what speed the motor should  be placed at  Figure 5 1 3b is a picture of the KBRG 212D chip while Figure  5 1 3c is the Dayton motor used for this project     Mm 66    Re        dess br  A j PE D    S S   Sc    Ba fey  PR Sue  N            Figure 5 1 3b The KBRG 212D Regenerative Drive Chi       As seen in this image of the drive chip the input switches face out towards the  user  The white circular dials towards the bottom of the picture a
178. transfer of 20 MHZ     4 3 2 1 2 TLC5940 LED Controller     Texas Instruments TLC5940 LED Driver offers 16 Channel  12 Bit pulse width  modulated control of LEDs  TI defines the design application of the TLC5940 is    EE 24    for full color LED displays  LED signboards and a general high current LED  driver  The TLC5940 allows control of up to 16 LEDs but unlike the TLC5971  the  outputs are not broken into RGB groups  With the TLC5940  the 12 bit pulse  width allows for each LED to be individually adjusted with 4 096 steps  Like the  TLC5971  the TLC5940 allows for serial data communications and cascading of  an n number of controllers together with a maximum data rate transfer of 30  MHz  One additional useful feature of the TLC5940 is its XERR output  The  XERR output allows for notification if an LED goes out through its LED Open  Detection  As well  XERR also allows for notification of an over temperature  Both  features that may benefit the functionality of the POV display     4 3 2 2 Latch Control     Each LED in our LED array needs to flash its appropriate color at the exact same  time as all of the others  so the colors that each LED is to display must be stored  before outputting to that LED  One way of accomplishing this would involve using  latches  Each LED has 4 inputs  RGB colors and ground  One LED that we  considered using had a color depth of up to 256 colors  Each LED would then  require 8 bits of color data to determine which color it should output  If we
179. transmission     27 WW    4 4 2 Wired Communications     There are many forms of wired communications currently being implemented on  a daily basis in today s high speed world  There are several design criteria which  restricted some of the available forms of wired communications  From our  specifications and project design criteria  we knew that our platform would be  spinning at a rate of 1800 rotations per minute  Through some preliminary  research  it was found that the larger number of conductors being transmitted to  a rotating platform resulted in a smaller maximum allowed RPM s  In other words   any conductor larger than four strands would have been unpractical for this  application  Therefore  the researched was focused on two types of wired  communications  Fiber Optics and Cooper Coaxial Cable  In both situations  the  wired communications needed to convert existing Ethernet communications ports  on the microprocessors to a form that can be transmitted over their respective  medium  With the idea of using the existing Ethernet ports and protocols of the  microprocessors one additional criterion of the wired communications would have  been transmission rates  Currently the standard threshold requirements for  Ethernet communications are 10 Mbs  100 Mbs  and 1000 Mbs or 1 Gbs  An  additional design criterion for wired communications would have been to  implement the communications with inducing the minimal amount of interference  to the signal  The last design criter
180. ts  The tests revealed that we could only reach between 15   20 rps without sacrificing torque capabilities  The second issue we found is that  the potentiometer actually ranged between 0  150  of the rated value  This  meant that going too high on the potentiometer caused overcurrent in the motor     7 2 3 Enable Disable Switch Test     In this test the KBRG 212D was connected as seen in Figure 5 1 1a  The  potentiometer was connected in the forward setting as shown in figure 5 1 2a and  the enable line was connected as seen in Figure 5 1 2b  The KBRG 212D was  then turned on and the potentiometer raised to its expected running speed and  left to maintain this speed  The Enable line was first set to on and then flipped off  and left off for a few seconds before being turned on again  Before and after  these transitions the speed calculation code was run again to determine the  speed of the motor     The desired result was to ensure that the rps was maintained when the  enable disable switch was toggled  In each test the switch effectively maintained  its original rps value before the transition  This meant that we could set the rps  value of the motor and leave the potentiometer alone and just use the  enable disable switch to control the off on properties of the motor unless we  needed more or less rps  As per the recommendation of the KBRG 212D user  manual this enable line should NOT be used as an emergency turn off switch     7 3 Slip Ring Test     It can t be stated eno
181. ugh the importance of getting the slip ring to work for this  specific project  Without proper power management the rotating side would be  unable to do anything we had desired it to do  This is why we came up with a few  tests to insure that the slip ring design would work under our desired conditions   The first test was nothing more than a durability test of the slip ring to determine  if it could handle both the electrical and physical demands of the device  The  second test was the power transfer test  it was to determine that under the most  ideal of conditions that power is at least properly transferred through the slip ring     103 PS    The final test was to determine if the slip ring can transfer power during rotation  and how much power loss is suffered due to thermal dissipation in the junction     7 3 1 Slip Ring Durability Test     This test required a completed motor and motor control circuit so that the motor s  speed could be varied  This meant that we had to connect the control elements  and control inputs discussed in the motor control section  Thus the Dayton motor  and the KBRG 212D were both used in addition to the slip ring  In essence  the  slip ring was attached to just the stranded wire with no power transfer  Then the  motor s revolutions per second were slowly increased and then maintained at its  maximum rotations  After a number of minutes had passed the motor s  revolutions per second were slowly decreased and then the motor was shut  down  Afte
182. uires an existing infrastructure including wireless  routers and or wireless access points  We considered the ad hoc mode for this  project since it does not require any other external hardware  Ad hoc would allow  us to set up a direct wireless connection between the FPGA and the  microcontroller for bi directional communication  Although bi directional  communication would be supported we would only have to communicate in one  direction  The following Figure 4 4 3 1 1 shows a comparison between  infrastructure and ad hoc modes of operation     35 Bm    Infrastructure Ad hoc     9           Wireless Router       q   gt        FPGA Microcontroller FPGA Microcontroller    Fiqure 4 4 3 1 1 Infrastructure Ad hoc Comparison        Because of WiFi s popularity there are many options for WiFi hardware  Digilent  offers a WiFi adapter for their boards although it only supports 2Mbps data rates   Arduino shields are also available to add WiFi support  All modern laptop  computers and cell phones have WiFi built in  With WiFi supported by so many  devices it would be a convenient communication method for us to choose     4 4 3 2 Bluetooth    Bluetooth may have also been possible as an alternative to WiFi  A possible  advantage that Bluetooth may have had is that it is a low power  short range  method of communication  Short range for our application would have been  desirable for security purposes  Anyone communicating with our display would  have to be within about 30 feet of the dev
183. uld be 1 4  that   and then broken up into 3 subsections for each color  So the size of a single  subsection or bin is  13882400   14   1 3   125200 Bytes                                                  Frame Output Format In Memory   Starting Final  Section Color   Addr        Addr   AA_RED 0      115199  AA GRN 115200       230399  AA BLU 230400       345599  AB RED 345600       460799  AB_GRN 460800       575999  AB BLU 576000      691199  BA RED 691200       806399  BA GRN 806400       921599  BA BLU 921600 1036799  BB RED 1036800 1151999  BB GRN 1152000 1267199  BB BLU 1267200 1382399                   Table 5 2 1 2b Memory locations of the 12 output Bins  5 2 1 3 Frame Processing     This section will cover the various steps involved with converting a frame from  the input format to the output format that has been specified in the previous  sections  The TranslateFrame   function will translate a frame at a specified  address and store the output in 12 bins as described in the output specification   TranslateFrame   begins by initializing the output pointers for each of the 12 bins   The memory address for each bin can be calculated by adding an offset value  together with the base address in DDR2 memory where output is to be written   The required calculation can be seen below     BinPointer   FRAME_OUTPUT_BASE_ADDR i 115200 where I   1 11    TranslateFrame   has one outer loop and two inner loops  The outer loop counter  increments by two every iteration because we w
184. ur group feels will work best for us  In the case of our project there were  eight key issues that we needed solutions to for our project that kept appearing in  our discussions of this project     The first problem was supplying power to this device  We needed to know  whether we were going to use AC or DC power or some combination of both  Did  we need to do some sort of AC to DC conversion  Which one was best for the  purposes of our project  Section 4 1 discusses this topic and which one best  suits our needs     The second issue was signal processing  Our group new we wanted to allow for  some way for this device to communicate with a computer  The question was  which medium was best for our purposes  Since none of us had any experience  in video processing this also meant we needed to figure out which format was  best suited for our project  Would it be better to process an HDMI signal  VGA  signal  or just do some form of file transfer through USB  Section 4 2 discusses  this topic and compares each of these signals and the processing method  needed to implement them for our project     The third issue was LED implementation and control  Since we needed to blink  these LEDs at a rapid speed we needed to know how this would affect the LED   What LED is best suited for this application  Will using pulse with modulation  effect our display rate  How do we effectively control over four hundred LEDs   Section 4 3 will discuss these questions and determine the best fitting s
185. used to represent each pixel  Chrominance is represented by two signals    and  Q if using NTSC video  or U and V if using PAL video  Figure 4 2 3 4 a shows  how the luminance and chrominance are calculating using the NTSC and PAL  video standards  This in it of itself does not compress the video  it merely  combines the RGB values into a single stream and it also allows compression  algorithms to take advantage of the properties of Luminance and Chrominance   A simpler composite would involve concatenating the individual RGB values into  a single byte  since we are using 8 bit color        NTSC video PAL video Digital recorders  Y   0 30R   0 59G   0 11B Y   0 3R   0 6G   0 1B       0 60R     0 28G   0 32B U    B     Y  x 0 493   Q   0 21R     0 52G   0 31B V    R     Y  x 0 877             Figure 4 2 3 4 a NTSC and PAL Calc  for Luminance and Chrominance    One form of compression relies on the premise that the human eye has poor  detection of changes in chrominance values  with heavier importance placed on  Luminance  Based on this nature  we could use a compression technique that  involves throwing away much of the chrominance data and uses interpolation to  determine the chrominance value at each pixel location instead  This method of  compression is referred to as an Interpolative compression scheme  As an  example of this method  we will throw out 3 out of 4 columns of chrominance  values and 3 out of 4 rows of chrominance values  reducing the total amount of  values b
186. utputs  The HDMI inputs and outputs on the Atlys board  automatically encode or decode the TMDS signals for input or output  There is a  given reference design available which uses the onboard switches to choose  which video mode to use  resolution and refresh rate   We would have used the  Atlys board exclusively as an HDMI sink  All of the data received from the HDMI  port would have then been sent by some communication method to the  secondary spinning microcontroller which would have organize the data into the  appropriate latches for display on the LED array     4 2 3 Video Processing  Stationary Controller      Various forms video processing may be required depending upon the required  format of the frames we build in the stationary controller  and how these frames  are obtained  The format in which we need the frame data is dependent on the  specifications for the LED array  including its size and how precise it can    19 E    represent RGB colors  This was determined by our choice of LED controllers   which in turn determined what types of image processing was required     4 2 3 1 Color Depth Reduction     When building each frame  there was an RGB value for each pixel in that frame   It is quite likely that these RGB values have a much higher color depth than our  display is capable of handling  In code  we needed to convert these RGB values  into a lower color depth  The simplest way of doing this is to truncate off the least  significant bits  If we expect that the
187. ved the Wi Fi  initialization to fail  The microcontroller would inconsistently initialize the Wi Fi  server  or not  If the Wi Fi server didn   t initialize we would sometimes be able to  reset the board until it initializes  This behavior was unexpected and extremely  hard to understand  We tried multiple different variations of initializing the TLC  library before Wi Fi  then after Wi Fi  We also including the SD card libraries  even though we weren t using the SD card in an effort to force the libraries to  properly manage a shared SPI bus  We thought that without the SD card library  included the state of the SPI bus may not be properly managed because the  software may not think that the bus is shared  None of these things seemed to  help and the reliability of the Wi Fi initialization remained unpredictable  We  eventually noticed that the server seemed to work better when we physically  disconnected the RGB LED array from the microcontroller  It seemed that having  the RGB LED   s connected introduced some sort of interference which caused the  microcontroller to behave unpredictably  This test finally became a success after  we solved this problem  but this made a new problem obvious  we will not be  able to send Wi Fi updates to the RGB LED array if we cannot solve this  problem  The result of our testing can be seen in Figure 7 5 7b  The display  originally said    HELLO WORLD    and we were able to update it via Wi Fi to read     UCF KNIGHTS      HA       f       
188. we successfully cycled through all of the LEDs in the combined  array     RGB Text  This test was designed to determine the capabilities of our RGB  display and to show the functionality of the RGB array when operating at real  time speeds  The test program is a modified version of the Word Test with  Sensor  with some convenient array indexing multipliers and a counter to change  the color between each letter  From this test we determined that the red LEDs  are the most visually appealing and that though the blue and green LEDs are  fainter  the words can still be clearly read by an observer        Figure 7 5 7c  RGB Text Array displaying alternating color text        Based on the previous results  we modified the test code to display the entire  word phrase in all Red  Green  and Blue  and to cycle between each color for  displaying the text  Each color displayed clearly  blue being the faintest and red  the brightest  Figure X X X shows the word test displayed in solid red     115 ME       H    HE  wim       Figure 7 5 7d  RGB Text Array red letters    8 User Manual     The following section will discuss the process of setting up and using the various  hardware pieces outlined in the above design section along with the proper use  of the GUI and how to program the microcontroller directly  Each sub section will  deal with a specific hardware or software component of the device and outline  how to effectively use it alone with safety warnings to prevent injury     8 1 KBRG 
189. y  After the socket initialization the input and output  streams need to be initialized  The input stream is created using a  BufferedReader class that is created using the getInputStream method of the  Socket class  Similarly the output stream is created using a PrintWriter class that  is created using the getOutputStream method of the Socket class  The creation  of both the input and output stream both have the possibility of throwing the  previously mentioned IOException  Now that the Socket and it s input and output  streams are properly initialized the user is able to send messages to the POV  display  Simply print items to the PrintWriter object and read items from the  BufferedReader object  When all reading and writing is complete  the Socket and  both streams must be closed  This is simple to do and simply requires a call to  the close method for each object  The operating system will then have that port  back in a usable state and all resources devoted to the streams will be freed     5 2 3 4 GUI Class Summary     In this section we will consider all of the class interactions throughout all parts of  the GUI application  Classes that we will have to create include  POVGUI   WiFiConnection  TextMessage  and ImageMessage  Image reading classes  include ImageReader  and Bufferedimage  which will be used by the  ImageMessage class  The text message class will not need helper classes since  it is dealing with simple text data  The WiFiConnection class will need to contai
190. y a factor of 4  Figure 4 2 3 4 b shows a matrix of chrominance values   the blue dots representing values thrown out  and black dots representing values  to remain in the matrix  Shown also is a sample calculation using interpolation to  approximate the missing chrominance values     U 0 1 x0 75   U 1 1 x0 25       Sub sampled  U or V component    Figure 4 2 3 4 b Method for Interpolating Chrominance Values  Mm 22    Using only spatial compression methods  the amount of data that is required to  be transferred can be vastly reduced  as has been seen  This helps to reduce  any issues involving the data transfer rate between the two microcontrollers  being too slow  It is important to note that using video compression involves a  significant tradeoff between the required processing time and data size  Some  forms of compression require additional processing power at the transmitting and  receiving side because of the mathematical calculations that would need to be  performed     In our real time application  the right balance between compression and data rate  is critical  On the stationary processor  where we have a faster clock speed  we  can perform color depth reduction and combine the RGB values into a single  byte before transmitting  Using those two techniques alone  the rotating  processor would not need to perform any calculations to decode the video  The  rotating processor avoids any extra processing because it will receive the data in  the format that it ultimately
191. y thought to be simplistic  The process of choosing a motor and  controlling it seemed at first to be a simple idea but when we began to research  further into the process it turned out to be far more complex than expected   specifically for the high rotational and torque requirements of our system   Eventually we came to the design presented which accomplishes our goals for  this  However  this design did not hold over well since  while the pulse width  modulation circuit did effectively control the motor  powering the motor and  controlling it together became a substantial problem  The 90 volts and 1 5 A was  difficult to power on a low budget and ended up forcing us to scrap our original  design for a more integrated approach which resulted in the KBRG 212D chip  being the method to power and control the motor  This design change had drawl  backs as we were forced into a more electromechanical method to control the  motor instead of the original desire of having the motor controlled digitally with  your computer     However  motor control was not the only unexpected challenge  The design of  the LED array turned into a rigorous design challenge when it turned out that  trying to address each and every LED would send our data transfer rates into the  nine digit figures  Which the Chipkit board was capable of handling only a fraction  of the LEDs we originally intended to have so we ended up having to significantly  scale back on our LED array design  This was not the only i
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Event Bar Q4  1.はじめに 2.製品認証制度への期待と役割 坂井喜毅  Lightolier LSB-12 User's Manual  Instructions for the 16A2 & 16A3 Series Microprocessor Based  9.2 ALPHABETISCHE WORTLISTE - Goethe  View Catalog  1756-UM051B-DE-P, ControlLogix    Copyright © All rights reserved. 
   Failed to retrieve file