Possibility of using Arduino as I/O interface for my laptop

There is a question on which I can't find the answer:
Can the arduino only be used for stand alone projects or can it also work as an interface?
What I need is an interface between my laptop and my slotrace track. and I'm wondering if one of the arduino's can be used for this purpose.

The idea is that I will build a race management program in C++ which runs on my laptop with a gui on the laptop screen.
This program should be able to:

  • communicate with sensors in the track for example for creating a laptimer.
  • control the leds of the starting light etc.
  • Get accurate timing information on laptimes and position of the cars on the track
  • display laptimes, fasted laps and other race statistics.
  • read the analog signal from the hand controlers (impendance of voltage level)
  • control the engines of the slotracing cars
    I am hoping that I can use an arduino board connected to the usb-port on my laptop to communicate with the sensors, motors etc.

Is it possible and which board should I buy?

I'm also interested in tips on development platforms other than C/C++, as long as it's freeware. I don't want to buy complilers etc. it's only hobby.

Regards,

Gerrit
P.S. I am new on arduino and this forum, but I have quit a lot of experience in programming in C/C++ and many other languages. As long as there is a reference/help function on the development platform, I will be able to learn how to use it.
I also have some basic knowledge on electronics, but not much experience with it. And I graduated on the emulationsoftware for a ST-6 microcontroler which was build in C++. But that's more than 20 years ago. It will need some refreshing.

I've never done it, but there is a sub forum: [u]Interfacing w/ Software on the Computer[/u] .

Is it possible

That all looks possible, although I'm not sure how you're going to sense the location of the cars on the track.

and which board should I buy?

Count the number of inputs & outputs that you need, and note that some of those features/functions may need more than one input/output pin (then maybe add a couple more in case something unexpected comes-up). The Arduino Uno is the most popular, so if it has enough I/O pins for you, go-ahead and use it. I've got a project built-around the Uno that uses 1 analog input and 4 digital outputs, with lots of unused pins.

Even if you choose the wrong board, they all use the same language library so you can "upgrade" to a different board with no trouble (and a minor expense).

I'm also interested in tips on development platforms other than C/C++, as long as it's freeware. I don't want to buy complilers etc. it's only hobby.

On the Arduino, or on the computer-side? On the computer side, use whatever you want, but you said you already program in C/C++.

For the Arduino, just stick with C/C++. You can read-through the [u]Language Reference[/u] in no time, and with your experience you'll be programming in no time. There are also some additional/optional libraries and if you need to do something "unusual" you can add some assembly language.

The Arduino IDE and development system is very slick! The board itself is the development board, and with it's built-in bootloader the board is also it's own programmer. That means you are not paying for the software development system, the hardware development system, or a programmer. It took me about 15 minutes to download and install, and to compile the Blink LED example and get it running. I've used several compilers/IDEs over the years, and it's never gone that smoothly... Don't try using another language or creating your own IDE unless that's really what you want to spend your time working on...

P.S. I am new on arduino and this forum, but I have quit a lot of experience in programming in C/C++ and many other languages. As long as there is a reference/help function on the development platform, I will be able to learn how to use it.

You might want to start with a simple project with one, or maybe two, of the functions you mentioned. Once you get the basics figured-out and you get communication between the computer and Arduino working, it should be easy to add more features (as long as you can figure-out the hardware sensors on the racetrack).