C++ – start with programmable Hardware

cembeddedhardwareusb

I've had a desire to learn at least a tiny bit about programming hardware for quite some time now and thought I'd ask here to get some starting points. I am a reasonably accomplished programmer with Delphi and Objective-c experience but have never even listened to a device port / interupt (I dont even know the terminology) let alone programmed a piece of hardware.

To start with what I would like to be able to do is,

  • Buy a simple bit of kit with 2,3 or 10 buttons
  • Plug the device into my pc via USB
  • Listen to the device and write some code to do something once the button is pressed.

I reckon this is a good place to start, anyone got pointers on hardware to buy or how I could start this?

Best Answer

I like the Arduino, easy to use, open source and a great community!

Good to get started with, and uses a subset of C/C++.

Also, has alot of addon hardware available, like GPS, Bluetooth, Wifi etc

My experiences with Arduino have been nothing but good, from the point you get it out of it's box (and install the free compiler on either Windows / Mac / Linux), to building your first 'sketch' (a project or application for the Arduino).

Making an application is easy, you have a Setup Method, which is called on startup, and then a loop method which is looped while the Arduino is running.

Then all you have to do is hook either inputs or outputs up to the pins on the Arduino board, tell the code what they are and hopefully you'll get the desired output.

One other really good thing about the Arduino (and others I'm sure) is that you now have a use for those old broken printers, or 2x CD-Rom's that no one wants, and every other little bit of out dated technology. It's amazing what you can find in a server room!

Now, I have only worked on small projects, like plugging in an LCD, and reading the room temp and various projects like that. But based on what I have done, I am happy with the Ardunio, it gives a good base to embedded programming and if it's not enough, you can always go bigger!

My 2 cents!