08/16/2014 at 17:45 •
Powering the hat network is actually a bit of a challenge. Not because of the communication method; IR transceivers use very little power. But the display itself is quite power hungry.
Each pixel is capable of pulling 60 mA if driven white at full brightness. This is about 13.44 A if all 224 pixels are driven. This is unacceptable since the hats will need to use a portable power source. Preferably one that is hidden inside the hat itself.
But you can simply this. I figure the character with the most "on" pixels is the numeral "8". With the font that I'm using the number has 14 pixels illuminated. There is room for 5.3 characters on the display, or just over 74 "on" pixels. If I want to stay below 2.1 A, I can still drive the pixels at up to 28 mA. To give myself some headroom I'm going to drive them at a limited aggregate brightness of 66%. If done correctly a pixel should never draw more than about 13.3 mA (this is just a rough estimate based on the PWM value of an "on" pixel).
08/16/2014 at 17:39 •
I've finished a basic proof-of-concept for mapping the display.
There are 7 rows of WS2812 strips, each with 32 pixels in them. I built an array of 32 bytes which will use binary values as a frame buffer. This is limited to recording each pixel as on or off. That means I will be limited to a single color for message, which is a fine place to start.
A font file will be used. The procedure is to check the next letter in a message, pull the font file for that character, and shift those columns into the display.
08/16/2014 at 17:36 •
In general, communicating with an IR transceiver is not difficult. The issues with the self-ordering hat network will surely be establishing a system so that many hats talking at the same time will not interfere with each other.
In addition to that "collision" problem, self ordering will not always be as easy as finding out which nodes are on either side of a given node. What if two nodes detect the same node to the left of them? The communication protocol will need to have a system for solving that based on all detected nodes.