Control arduino via a Window/DirectX application?


I am new to electronics and microcontrollers, but I have been programming since the Commodore 64 was state of the art. :)

So now I wish to make a robot that is controlled directly (via USB) from a Windows/DirectX (Win/DX) application on my PC.

I was planning to base it on Phidgets, but after doing LOTS of research I have fallen inlove with the Arduino concept, being open source and all.

But Phidget provides an API for a wide selection of languages (including C# and C++) for directly controlling servos and reading sensor inputs from a PC, thus making it easy to integrate into a Win/DX application.

It is my understanding that the Arduino programming environment "only" generates the software that runs on the microcontroller (Atmega). Is this correct?

If so then how do I create a Win/DX application that controls the Arduino and receives sensor input from it? Is there API for this? Or..?

I have many other questions but I'll start with these and take it from there...

Oh...and here is simple notepad based model of my robot:

Wow! Read 66 times but no replies..

I guess it's my own fault for using such foul (=microsoft) language as Windows, DirectX and C# on an open source forum :)

Well I'm no fan of MS either, but I'm comfortable programming/protyping in C# and there is a really cool FREE and OPEN SOURCE AI-API for C# called Aforge.NET which I'd love to use for my project. It contains libraries for Neural Nets, Genetic programming, Fuzzy logic and more. Check it out if you're into AI.

Anyhoo I think I found the solution while researching on the Processing environment that Arduino is based on here:

It says: "Even if the Arduino board has a USB interface, to make the life of developers easy, the communications that the board makes, either in reception or transmission, are serial communications. This means that any language or any software that can transmit serial data, could be understood by the Arduino Board."

So now my question are:

Is this correct? Can I just treat it like a serial port?

Does anyone have experience transfering (larger) amounts of data this way?

Yes that is correct,

You can easyli use the .net serial port class to communicate with Arduino.

The USB interface on Arduini is basically a seerial port in disguise. On the PC there is a driver installed that implements a viryual serial port, this port can be used from C# like any other serial port.

Allriiight!! That 's exactly what I had come to understand, but I needed the confirmation.

I'll order the Arduino board right away :)