LEDs

After the last competition, I’ve seen that LEDs are certainly allowed on the robot; many teams had them on their arms/shooters as well as couple teams with under-robot lighting. There were a few teams that appeared to be using programmable LEDs; does anyone have any idea how the teams may have programmed these? I know the LED strings come with timers, but I’m almost positive those can’t be used on the robot.

Speaking of LEDs, does anyone have any suggestions for a decent LED (maybe multicolor?) string product, preferably one that their team is using /has used?

1 Like

Last season we had some programmable LEDs driven almost the exact same way 111 did as described in this post: http://forums.adafruit.com/viewtopic.php?f=47&t=22417

Programmable LED strip driven by an arduino. We used some unused DIO pins to send commands to the arduino.

My team typically just uses single color led strings - you can get them (or programmable RGB ones) super cheap on ebay so long as you don’t mind waiting a month for shipping.

If you use the search function and search “LEDs” you will get a ton of results back. Probably more efficient for you, that way you don’t have to wait for responses and you can more easily find what suits your needs the best.

The rise of popularity is mostly due to cheap availability of WS2812 strips and the like. You can control 100’s of LEDs with just 3 wires, so it’s really simple wiring. Sparkfun and Adafruit carry bulk strips for around $100 per 300 LEDs. If you put more than a few dozen LEDs you’ll need a power supply, the ones my team uses are the 7A 5V buck converters from Pololu. Programming the LEDs is usually done with an Arduino or clone. You can drive the WS2812 strips using Adafruit’s neopixel library from just about any arduino, or if you’re using a Teensy 3.X, you can drive up to 4000 LEDs with the OctoWS2811 library.

Shameless plug for the system my team built this year: FRC3574's Bling Board – hackcasual

Take a look at
http://www.chiefdelphi.com/forums/showthread.php?t=128278&highlight=3574

Full Text Scrolling with Ardunio

We use an arduino to control our programmable RGB LED’s we purchased from Adafruit, which you can easily get from ebay or amazon. Though you do need to add the 12v to 5vdc converter to run them.

For most of our LED needs we use a few sets we purchased from Costco. they can be strung together so you can make the set as long or short as you need. All we had to do is cut the power adapter cable and wire it directly to the PD board. They are 12vdc so nothing is needed to use them. They have an IR control for the colors and intensity. Just make sure you put in a way to cover the IR receiver so you cannot have “control” while it is on the field. We used a few pieces of Velcro. Holds it in place and just a quick removal to change to colors or turn on the disco light show.

If you have any question on how to implement any of the mentioned systems send me a PM and I happy to help.

Aloha

Our students used an Andy Mark product (light strip: AM-2640, complete kit: AM-2645). I’ve got a video of the different modes that our team implemented (link)

AndyMark’s LED strip is controlled with SPI – the controller (Arduino) sends a 3-byte message with an RGB value, and each subsequent message shifts data down the daisy-chain. By updating the entire chain 30+ times per second you can create complex patterns or animations.

869 used a combination of an Arduino and Adafruit NeoPixel LED strips (http://www.adafruit.com/products/1460)

We used various combinations of digital outputs from the digital sidecar to send signals to the Arduino and had it do different things depending on what the robot was doing such as having blue/red depending on what the FMS told us our color was with

DriverStation.getInstance().getAlliance()

or our award winning countdown color rotation and blinking to let our drivers know how little time is left in the match without looking up from the robot based on the match time

DriverStation.getInstance().getMatchTime()

You may or may not have seen the LEDs we used on our robot this past season, so I don’t know if what I’m talking about makes much sense out of context. We ordered a bunch of yellow LEDs being our team color and all and wired them up each separately so that each section of 3 was addressable. We arranged them in a pattern we liked on the robot and cut and soldered wire to the correct length to reach our micro controller. We used an 8052 based board that our electronics mentor made to control them. We had digital inputs in from the sidecar so that the cRIO had some input to the system. We also used an analogue pressure transducer to give a readout of our pneumatics pressure to give us visual feedback as to what we were sitting at. If I can, I will find a video of the system in action

What is it about LEDs that attracts this kind of post? Team Element is in California, not Minnesota.

Well seems like we have LED vendors spamming the forums and apparently when I search specific model numbers especially the one that starts with “ws2” and ends with “812” CD is on the front page of searches for discussions.

We had a strip of LEDs on our pickup arm, they were wired to an arduino and a maxbotix ultrasonic sensor. We programmed the arduino to light up the LEDs in different colors depending on how far the robot was from the wall to give the drive team a visual indication of when to shoot.

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_robot_software/blob/master/cRioTarget/src/com/wildstangs/subsystems/WsLED.java

Could you post a copy of your Arduino code as well? I’d like to implement this in LabView.

This year we actually changed the way we communicated with the LEDs. We changed the strip we used (from LPD8806 to Adafruit NeoPixel) and the NeoPixel library disabled interrupts over I2C. Long story short, we lost control a few times. Because of this, we used the 4 leftover digital I/O ports on the sidecar to just send a binary number to the arduino, which changed the pattern based on that.

We decided to do the same thing because we had a lot of leftover I/O pins (we use six of them for the LEDs). I was thinking about trying I2C but the cRIO would not cooperate in the limited amount of time I had, so it seemed more reliable just to use digital I/O.

Its good to know that the AdaFruit libraries disable I2C, because that could have caused lots of headaches.

Any type of LEDs, technically, are legal. It’s up to your team how far you want to go with it. Yes, LEDs are fun (*(http://i.imgur.com/vKamtm1.jpg)) Yes, they will make you more noticeable on the field, and they make your robot more exciting for the general public. However, you have to know the ins and outs of lights before you start working with them.

  1. Power consumption: You have to calculate how much power your lights will draw. Too many lights can cause your batteries to drain quickly, resulting in reduced performance in-match. Before going wild with lights like my team did last year, we made certain that all those lights would be within our power budget. It’s usually pretty easy to calculate the consumption of your lights, since many manufacturers specify the current draw of their strips by the meter.

  2. Control: If you want to do RGBLEDs, you have to know how they are controlled. There are two typed of RGB strips, classified as analog and digital. Analog strips can only show one color, across the whole strip. This type is the cheapest, and often comes with an IR controller. You can’t use this controller on the robot, you’d have to design one that runs through the robot control system. Digital strips can do patterns and the like, but they are significantly more complicated to control. They typically are controlled with an arduino or RP, and can require custom code libraries.

  3. Gameplay: If your lights are too disruptive or too bright, you might get penalties as a result of your lights. You don’t want your lights blinding the drivers, as there is a rule about this, and if they are “disruptive” in any way, some pickier referees might call you out.