Peripheral and system communication


This questions isn't, sctrictly speaking, related to Arduino as such, but there is a chance that some of you dealt with similar problems:

For a college project I need to build a device that will incorporate mouse's and some of keyboard's functions and do all relevant programming, so that it can be used with applications. I''ll be using Arduino Diecimila for that, so device will be connected through USB port. I'm absolutely fine with programming Arduino and sending data to PC. But my problems start from there on - from what I understand, devices usually send data to system, from where applications get informations about devices' events with get_whatever_applicable, etc, functions. So, I want to write an application that, working in a background ( so that user can work on other applications ), will notify system about devce's events, like set_mouse_coordinate, put_char_in_stream, etc functions. Guess that's what drivers do? At any rate, can anyone point me to some relevant resources? Any books or tutorials that would help here? I've been looking for a while on my own now, but of no avail :|

I'm most proficient in C++ and Matlab ( not that belive latter will be of any use here ), but should some other language be better for this job, please feel free to point that out, I don't mind learning ia new one.

I need to build a device that will incorporate mouse's and some of keyboard's functions

If you're interested in making a "true" USB device you might want to look at my Arduino and AVRUSB project. You would need to build a relatively straight-forward expansion shield.

AFAIK no-one has created a dual mouse/keyboard device with it but it is possible at least in theory.

Creating a true USB HID device would remove the need to program anything on the PC end.


P.S. Note that at present the 0011 IDE works better with this than the 0012 version.