The difference between "firmware" or "software" is slight. Your "sketch", or the program you load on to the Arduino could be considered "firmware", but the program you use to get it loaded is "software". To make it worse, people start calling the latter a "programming environment". Confusing, eh? Let's not start talking about "bootloaders", because I don't know squat.
Setting up an Arduino programming environment could be a whole Instructable by itself (I don't see one, so feel free to write it). For now, I'll point you to the "horse's mouth", Getting Started at the Arduino site.
With an Arduino "environment" in place, you are going to need a couple of extra's.
- The motor shield comes with a library called "AFMotor ". You need to down load it from LadyAda's website and place it in the "Arduino/hardware/library " folder. If you breadboarded your own controller, you know enough to write your own functions for it.
- My demo software "WiiChuck_Train_Controller " (attached below). My advice is to paste it into the Arduino environment and save it with a really, really clever name. You'll have to supply that yourself.
- The WiiMote adapter also has a library called "nunchuck_funcs.h " available here . This single file will have to be placed in the same folder as the sketch, something like "Arduino/WiiChuck_Train_Controller " folder. In the newer Arduino environment (0017), it shows both the sketch and the nunchuck_funcs.h on separate tabs (see image).
Update (December 2014):
I had compatibility problems with the newer Arduino versions and switched to a newer nunchuk library from:
Take a look at the demo sketch that comes with it.