First, is necessary choice an Arduino version to work, checking alternatives. Then, make the circuit into a protoboard.
(This post is about why I choose a Freeduino instead of a Leonardo board – is less “pratical” then othr parts of this project).
The latest version of Arduino, the Leonardo board, have a built in library to work act as mouse and keybord. This functionality is based on the Atmega32U4, a USB hardware-available chip. But this chip is only packed as QFP, with is (in my opinion) not good to work on breadboards.
The Arduino Uno (previous from Leonardo) have an Atmega328 chip and is possible to make it act as an USB HID (like keyboard or mouse). But this is possible only changing the firmware of the Atmega8U2 by LUFA (Lightweight USB Framework for AVRs), acting as a middleware between serial communication and the USB HID protocol. This chip is QFP-only too, and add another chip add extra work (and make the project more expensive).
Finally, we have the Duemilanove board. This is one simple version of Arduino with a lot of clones (like Freeduino). Like Uno, it is made usign an Atmega328, but without the Atmega8U2 – it use an FTDI chip to convert USB (on the PC side) to a RS232 (on the Atmega328 side). In this board, there is no way to build an HID natively.
There is project called v-usb to allow Atmel’s AVR chips to get a virtual usb interface, even without an specific hardware to that. There is what I’ll use to implement this. Then, I can use Uno, Duemilanove, Freeduino or even the standalone version of Arduino.
To this part of the project, I’ll use a Freeduino board. To the final version, I’ll build an standalone version, but I loke to avoid problems with other circuit outsite USB communications from v-usb.