The tiles are based on 2” square 8×8 LED displays. Each pixel in the display has a red and green LED. The LEDs are arranged in a matrix, with the red and green LEDs sharing a common cathode tied to the columns of the matrix, and individual connections for the red and green along the rows of the matrix. The matrix has 24 connections (8 columns, 8 red rows & 8 green rows).
Underneath each display, a PIC24FJ64GA004 MCU drives the LEDs. This MCU has 35 I/O pins, 24 are used for directly driving the display. Since the MCU can’t quite sink enough current if all of the LEDs in a column are on, the column lines are connected through a ULN2803 Darlington transistor array to provide the necessary current drive.
Because of the matrix configuration, only one column of the display is lit at a time. The MCU scans the columns at about 1000Hz to provide the appearance of a steady display. Because the LEDs have a 1/8th duty cycle, no current limiting resistors are needed
Power for each tile is supplied by two AAA batteries, which is fed through a MAX 756 boost regulator to get the 3.3V required. The rechargeable NiMH AAAs have about 800mAh. Each tile draws about 100-280 mA depending on the number of illuminated LEDs. The boost regulator is about 80% efficient, giving an overall battery life of around six hours.
Since accurate timing is a requirement of the design, an external crystal oscillator is provided for the MCU. It uses the same 7.3728MHz design as the Microchip 28-Pin demonstration board.
At the bottoms of each tile, spring loaded connectors make contact with signal connections in the tray. The tile listens for these signals to download and synchronize animations.
The firmware on the tiles is completely interrupt driven. Two timers control the display, the first (at about 1000Hz) takes care of scanning the columns of the display in its ISR. The second switches from frame to frame at a rate controlled by the animation downloaded into the tile.
Another ISR executes when a character is received via the UART’s serial input. This allows the tile to execute a number of commands, such as display a test image or an ID number, or download an animation sequence. Each tile has a unique ID number. When the tray broadcasts animation data, the tile checks the ID number of the broadcast. If it matches, the tile loads the animation into its RAM, otherwise it ignores it. A red “pinwheel” animation displays while the tile is downloading an animation, this switches to green when the download is complete. Author: John Peterson
Proje Dosyaları: link-21836.zip şifre-pass: 320volt.com