Most people have covered the whole NeoPixel/Arduino design pattern, so I'll skip over that. One thing that hasn't been mentioned that my team (111) did is robot-Arduino communication. We had an I2C link between the robot and the Arduino. Whenever we wanted to update the LEDs on an event, say, the start of a match, raising our arms, or shooting, we'd send a command/payload byte combination to the Arduino which would then update the LEDs. The relevant Java class of our 2013 code is here:
https://github.com/wildstang111/2013...ems/WsLED.java