views:

116

answers:

7

I use to program with c# or c++ (at moderate level). Now i want to play with hardware, like running a small motor with a click in software, or blink a bulb with it, or even create robot like thing with it. I don't want to mess up with Assembly or other low level language.

Is there any tool or programming language to play with different electronic devices? Any advices or steps to start with?

+3  A: 

I think Arduino is the sort of thing you're after. Find out more.

Or possibly Lego Mindstorms. :)

APC
+2  A: 

I think learning Assembler dialects will be the basis of a lot of fun for you.

Klaim
If LifeH2O wants to "learn hardware" from a programmers perspective, assembler is the way to go. If she wants to play with motors without learning about logic, the standard Arduino software(using avr-gcc) is great. Combining these two, I think, is excellent.
gamen
I am not a she :-D
LifeH2O
+4  A: 

You should check out Arduino: http://en.wikipedia.org/wiki/Arduino

Reed Morse
Use the Arduino hardware, but if you have any self-respect, stay away from their "programming language". Use their libraries, but program straight C/C++ and use the `avr-gcc` compiler.
Nick T
A: 

A classic answer would be the BASIC Stamp from Parallax. They sell it as a raw component, as well as in various educational and project packages.

It is based on a PIC Microcontroller with a flavor of BASIC in its ROM.

RBerteig
A: 

Wikipedia has a pretty extensive list of hardware programming languages at the bottom of this article.

The only one I've personally used was AHPL, which is a variant of APL (the infamous write-only language). We used it for my Computer Architecture course back in my undergrad days.

T.E.D.
+2  A: 

Have you considered the .NET Micro Framework ?

http://www.tinyclr.com/

And FEZ boards. From the website above:

FEZ Domino and FEZ Mini are very small (open source) boards targeted for beginners. They are based on the USBizi chipset and all it's features. FEZ offers many peripherals, such as USB host and SD interface, not available with hobbyist-targeted boards. Even though FEZ is targeted for beginners, it's also a low-cost starting point for professionals wanting to explore NETMF (.NET Micro Framework).

Pierre 303
This is the easier way we have found till now
LifeH2O
A: 

The most commonly used language for embedded systems is C followed by C++, so your existing skills are relevant, but will perhaps need some adaptation to deal with teh resource and real-time constraints of electronic control systems.

What will your target platform be? There are many suitable micro-controllers and development boards. I suggest that you start with something with reasonable performance and resource availability; an ARM 7 or Cortex-M3 based board for example. This will better support C++ than most 8 bit platforms.

Clifford
If i understood you correctly. I will be working on windows. Me and friends read the subject 'system programming' (program BIOS, system ports, interrupts etc.) in our course, it was 2nd worst subject (first one was assembly). But we got the idea to program hardware. We want to take an easy start now but know nothing about the first step.
LifeH2O
Did you mean controlling hardware devices attached to a PC, or programming a microcontroller in an embedded system? The best way to start is to think of an application you would like to address. It will then be easier to advise on a suitable solution.
Clifford
I mean controlling hardware devices attached to PC. Our first project would be to control a simple RC car's remote with PC. NFS cars out of PC :)
LifeH2O
In that case the 'embedded' tag is mis-applied, and consequently most of the answers given are irrelevant since you were not clear in the original question. You will need some sort of I/O interface with digital and analogue interfaces, and some electronics expertise. The language you choose to use will depend on the drivers provided for your I/O interface hardware and what they will work with.
Clifford