views:

322

answers:

6

Besides Arduino, what other ways are there to learn hardware programming in a hands-on way? Are there any nifty kits available, either a pre-assembled robot, that you can program to move a certain way, or do certain things, or anything similar to that?

A: 

There's the .NET Micro Framework.

It's incredibly simple to use/setup and there's lots of hardware being made to target this framework.

Tchami
A: 

You should take a look at Microsoft Robotics Developer Studio which supports many different kits.

spender
Another good option. Comes with the benefit that you don't actually need the hardware as you can run many different simulations.
Tchami
+5  A: 

Atmel AVR and the PIC both have experiment boards that you can use solder stuff on to, usually they have a couple of buttons and some lights pre-soldered to the area. This let's you program/flash the microprocessor and play with the output pins. You can either write the programs in assembly or C.

Parallax have a number of kits. They have two product lines suited for "playing around", Basic Stamp and something called Propeller. The former is a small microprocessor that runs programs written in Basic (a tad disgusting ;)) and the latter runs something called Spin or assembly (well after compilation obviously.)

I would go with either AVR or the PIC. I've done PIC but I've heard good things about AVR, they seem to ship with better software.

Skurmedel
Actually the propeller is a cool part, especially consitering that it even comes in a DIP package for prototyping. The multi-core 32bit design in a lowend platform was ahead of it's time when it came out. I'd like to see them expand the line.
NoMoreZealots
Okay, sounds nice :) Might get one then. How is that "Spin" language?
Skurmedel
It's an interpretive language, but not as "heavy" language like Python. The interpreter is only 2k! Check it out here: http://www.circuitcellar.com/newsletter/Propeller_Chapter_2.pdf If spin isn't your cup of Tea then there is a 3rd party C compiler.
NoMoreZealots
Cool. I can't go wrong with C though. Sadly for PIC the "free" C compilers are very limited, and some of the commercial editions are usually rather expensive.
Skurmedel
+2  A: 

I haven't played with it much, but the iRobot looks pretty cool.

The ability to simulate how your robot will work which some of the other answers mentioned is nice, but there's nothing like seeing a real-life robot do what you programmed it to do. That, to me, is what really makes robots fun and cool.

Imagist
+3  A: 

At first look Microsoft's VPL sounds good, but when it comes to actually LEARNING how hardware works it goes a LONG way to hide those details from you. As a matter of fact it is pretty much designed for people who don't program, and is distastful to someone who's actually written embedded software. IF you just want to make stuff happen and not delve into the details it's fine, but if you want to get down to the metal like programming the "Arduino" boards it's not for you.

If you're used to something like the Arduino then something like the PIC will be an easy transistion. SparcFun Electronics has all sorts of DIY type projects and hardware available. If you have a decent bookstore around your area, I would suggest looking for "Circuit Cellar" magazine. It has articles on a monthly basis with project for someone looking to get into hardware projects, everything from homebrew Software Defined Radio to FPGA based 3D graphics. (Raytracing actually) Usually the authors describe the project in an article and "WHY" they made the decisions they did, a description and schematics of the hardware and provide a link to source code.

Cypress Semiconductor has one of the most interesting embedded processors on the market and several high quality dev boards for sale. The PSoC includes the ability to not only configure the software, but also to "drop in" software configured hardware such Analog to digital converters, serial I/O, Digital to Analog and Various amps and filters. It's a REALLY cool concept, and the "touch sensor" capability of the PSoC were actually used in several models of the IPod.

One thing about programming these little micros is they don't have a lot between you and the hardware, you get to see how things really work. It doesn't matter whether you're talking about an 8-bit microcontroller or a quad-core Pentium programming hardware is largely the same concept. You write to a memory mapped register for some piece of hardware like a serial controller, and the hardware responds in someway. If you program a baudrate generator in a PIC or PC it's largely the same idea, you write a value that will be used as a division factor from a given clock to achive a given baudrate. The numbers and names maybe different, but the concepts is the same. On a PC you may have to map to the PCI address of the card, which adds a some complications, but if you looked underneath the OS you would see that that was done just by writing values to registers simalar to programming a PIC to use a different "Page" of memory. Is it worth learning an 8-bitter? Well, there are approximately $5 billion dollars in sales of the little 8-bit micros today with projection only showing growth in that market in the future. I saw one reference that state the average car has 25 Microcontrollers in it. That's not too bad.

NoMoreZealots
A: 

I have always been curious about gumstix. It seems more professional than arduino, and it aims at the Linux programmer. I cannot give you a real suggestion, as I've never played with it, but I would definitely go with one of this toys if I had to do and learn some cool hardware programming.

Stefano Borini