Thaer:
So, the things I need to buy are:
2 x Nordic FOB
1 x Atmel STK500 AVR ISP programmer USB
?
Do I need to buy some sort of pins to connect the programmer to the FOB (I dont see any pins or sockets on the FOB)?
You need to solder a 6-pin (dual row x 3) header to the holes in the PCB.
Thaer:
Does the programmer require any special drivers or set up?
What software do I need to program the FOB (Write the C code, and compile it)?
Are there any other electronics, hardware, tools or software that I need to buy?
Where can I learn electronics C programming? Are there any simulator software or do I need to have the FOB and compile the program every time to test it?
You need AVRStudio, as well as a C compiler. Most people use WinAVR, which is free. Once installed, AVRStudio should recognize it and you'll seamlessly be able to compile:
http://winavr.sourceforge.net/
www.avrfreaks.net is a good place to learn about Atmel microcontrollers, and there’s tons of sample code and tutorials on the net. The sparkfun product page has useful comments from other users, as well as a link to Nordic tutorials: http://blog.diyembedded.com/
Thaer:
Why would coming up with the protocol be the hardest part? (I just want to see what I’m getting myself into, but I will work on that when I get to that stage)
If you didn't care about battery life, you could have the receiver always on, and every few seconds transmit a very short data stream. Any other device in the area would recognize this and respond appropriately. You would want to use some random delays though, to help prevent multiple devices responding and interfering with each other. However, having the receiver always on will use more than 10mA of current, which will drain the battery rather quickly. If you want decent battery life, you need to come up with a protocol that allows the wireless chip to be in "standby" most of the time.
Thaer:
One more question, can I add an LED or a small buzzer to the FOB to indicate that they’re connected/not connected (I hope so)? If not, how else will I know that they are connected?
Yes, you can use the MISO, MOSI and SCK pins on the programming header as general-purpose IO pins, when they aren't being used for programming. I suggest you have a buzzer / LED mounted to a connector that can plug into the programming header when it isn't being used for programming (otherwise they could interfere with programming. If you use a buzzer, either use a piezo type (which draws low current), or a transistor to drive a magnetic type (which uses much more current).