Obviously you will need an old traffic signal. I got mine on Craigslist for $40. It is one of the newer plastic cased ones, but it looks fine from a distance. I would kind of like an old metal one, but I'll have to upgrade later I guess.
The brains of this thing are going to be an Arduino Uno connected to a relay module.
SainSmart 4-Channel 5V Relay Module
(Note: This relay is pretty loud. I can hear it click from across the room. If anyone has suggestions for something similar that is not as noisy, let me know.)
You will need a power supply (transformer, wall wart, AC/DC adapter) for the Arduino. I used a 12V 750mA wall wart that I had from some other piece of electronics that had died. Most 7V to 12 V transformers should work. You can pick one up at Goodwill for about $2. Stay away from Radio Shack, they wanted $20-$30 for wall warts! I am sure someone who knows more about the Arduinos can chime in as to what kind of amperage range you should stay in. Here's one from Amazon that should work fine:
You will also need some male to female jumpers to connect the Arduino to the relay module (note, I did not have these but wish I did):
Note: If you do not want to mess with the Arduino, there are a couple ready to go traffic signal controllers available online. I could have gone this route, but I was really wanting to try out the Arduino:
A lamp or appliance cord with ground wire
Other materials you will need will depend on the starting state of your traffic signal. I used some 16 ga wire (for the internal line voltage wiring), solder, sheet metal screws (for securing the Arduino and relay module, and attaching ground wires to the frame), wire nuts (for connecting line voltage wires), epoxy (to secure transformer), heat shrink tubing (to insulate transformer connections).
You will need a USB B cable to connect the Arduino to your computer to program it. If you have a USB printer you should already have one of these.
mini flat head screwdriver for relay connections
Other tools you will need will again depend on the initial state of your traffic signal. I used the following:
Cordless drill (for drilling holes in the case)
Soldering Iron (for wire connections and heat shrink tubing)
Dremel tool with milling bit (cut off some the plastic in the case to make mounting the new components easier)
Eye and hearing protection if you are using power tools.
You will need the Arduino programming software to upload the code to the Arduino: