Ask Slashdot: Best Electronics Prototyping Platform?
crankyspice writes "Having recently picked up the Erector set I've wanted since I was a kid, I quickly found myself wanting to plunge deeper into makerspace by adding more sophisticated electronics to moving devices (rovers, maybe eventually flying bots). My first instinct was Arduino (maybe because of brand recognition?), but that got me thinking — what's the 'best' platform out there (most flexible)? Arduino with its myriad options (Nano, Mega, Uno, Mini)? PICAXE? BASIC Stamp? Raspberry Pi? (The latter seems like it would easily be the most flexible, but at greater cost in terms of weight and complexity.) I'm a hobbyist programmer, having learned C and C++ in college and recently re-learning Java (took and passed the Oracle Certified Professional exam, FWIW)..."
If you want it to fly, you might want this: http://www.openpilot.org/products/openpilot-coptercontrol-platform/
Yes, yes, it takes the "fun" out of building your own flying code, but your machine will be a lot more fun to play with when it's actually stable. Put whatever other board you want on it, but for your own sake, use a dedicated flight board if you want to go airborne!
-73, de n1ywb
www.n1ywb.com
The toys you have listed are for developing firmware and software.
Prototyping electronics involves first designing some electronics, simulating them (if applicable or able), and then designing the boards, ordering parts, and having them assembled (or assembling them yourself).
If you like Java, I'd suggest the IOIO and an Android device. You inherit the device's guts (gps, cellular antenna, speakers, wifi, gyro, color display) and can go nuts. The biggest difficulty for me was getting the ADK up and running w/ Eclipse on my Debian laptop. They are cheap too...take a look at Sparkfun and Adafruit.
0 = 1 + e^(Alt something)
I recently starting wanting to fiddle with Micro controllers for this or that and stumbled across the Texas Instruments Launchpad. For $4.30 delivered (yes including shipping world wide) you get a complete development board, 2 chips, some headers and the USB cable. TI have a free IDE you can program it with, or if you are on Linux you can use the MSPGCC command line tools, which I use. Its ultra low power - 3.3V - which means if you want to interface to 5V systems you may have to do a little homework, but other than that, their is no risk in ordering one to try out with the money you would have wasted on Starbucks. http://www.ti.com/ww/en/launchpad/stellaris_head.html?DCMP=stellaris-launchpad&HQS=stellaris-launchpad Order directly from Ti - https://estore.ti.com/MSP-EXP430G2-MSP430-LaunchPad-Value-Line-Development-kit-P2031.aspx
Everything I've ever worked on as a professional had a microprocessor and an FPGA. You can pick up a "Zed Board" with a dual-core Arm Cortex-A9 and a 85K luts worth of FPGA. You could learn fpga programming in addition to learning about microcontrollers. You can run linux on one core, or run "bare-metal" or Free-rtos in the other for all of your hard real-time needs. You have a very wide selection of things for you can try. The FPGA is a true parallel processor, and is great for processing multi-sensor inputs. A microcontroller time-slices between all of the tasks it needs to take care of. An FPGA can essentially be a hardware dedicated task.
It completely depends on your project or goals. Simple electronics, I'd go with arduino, it's ridiculously easy, I haven't programmed in 10 years, or ever done anything with an arduino or MIDI or really done much with electronics ever, but within 2 hours of buying one I had a phone keypad playing chords on 3 instruments through a MIDI device. Mega has 70 digital I/Os, 14 analog (IIRC). IC2. There's a good range of tools available.
If you need more horsepower, or to connect to keyboards/mouse/video/network etc, the Raspberry Pi is a mini PC basically.
If you need extremely low power, MSP430 is your best bet. Extremely quick power up/down, too, so you can have it check a sensor every second and shut down to use even less power. There's videos of one running a clock with LCD from a grape.
Basic stamp, I wouldn't bother with. I can't think of any advantages to it over the arduino, maybe someone with more experience knows of one, I've only dabbled with one.
I don't have any experience with the others, so I'll let others comment on those.
Why?
Arduino: community, quite simply, it has the critical mass of community behind it so you have a real source of knowledge (and existing code) to draw from. It's like the hardware analog of PHP, sure it's not necessarily the best, but the sheer amount of resources out there means you will have an easier time getting it to do what you want.
Eventually your projects might extend from running on top of an actual Arduino form board (I like the Diavolino board/kit from Evil Mad Science, mainly because it looks cool, but also because you can set it up with the minimum of components to suit you), to you incorporating the AVR onto your own PCB design but still using the Arduino bootloader/environment, to you incorporating a bare AVR on the board and moving away from the Arduino environment. So you have a clear progression of learning.
Fritzing: open source, simple, and a GOOD interface for HOBBY users. No it's not a replacement for Eagle, or Altium or DesignSpark... but a hobbiest working on small things just doesn't need the power of those, they want a nice easy system which they doesn't have a steep learning curve, and can help them draw the schematic, breadboard it, and design a pcb. There are other open source packages, such as KiCad but universally, I found, that the interfaces just suck, hugely, unless you really invest the time to become familiar with them, and then they still suck but you can live with it. Fritzing is far FAR more intuitive, if less professional.
NZ Electronics Enthusiasts: Check out my Trade Me Listings
You don't have to use the TI IDE and bootloader, which are highly encumbered with copyright. MSPGCC ( http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=MSPGCC_Wiki ) exists to allow the whole system to use an opensource toolchain.
Arduino has a really short friendly learning curve - the system is designed so a random not-very-technical artist can pick it up, start doing blinky lights and sensors, find lots of interesting community support and demonstrations and applications. All the pieces you need to get started are right there - hardware, software, IDE, sensors, output devices, documentation. The Arduino hardware is fancier than a bare-bones AVR chip on a breadboard (and building one of them is a good second project), but it's still pretty cheap. The software may hold your hand a bit too aggressively, but once you've learned what you're doing you can get deeper (think of it as a mostly-C scripting language.) If you'd rather use gcc to write your programs at the bare-metal level and avrdude to download them, you can, but Arduino lets you do your work at higher levels until you need that. You could buy an ISP programming tool for $20-50 to program raw AVR chips with, but you can also use a ~$30 Arduino to do that job, so just go buy one.
Once you've used the Arduino a bit, you might want to branch out to a TI or STM development board, or something like Propeller with a lot more CPU horsepower if you need that, or PIC (if you want to know what people used to learn on before Arduino.)
Stuff you're going to have to buy - whatever prototyping board you want (I'd recommend Arduino), a solderless breadboard or two, solid-core wire in a couple of colors, some LEDs, assorted resistors and capacitors, probably several different types of sensors and output devices, maybe a power supply (USB gives you 5v, which is just fine if you're doing everything tethered to your laptop or have a USB phone charger around.) If you don't have electronics stuff around home already, you'll probably end up spending $100 or so, typically for a kit from Sparkfun or Adafruit or MakerShed, plus some random shiny-looking parts from their catalogs, plus you'll start to find Radio Shack very useful when you need to stop in and get some more LEDs or various connectors (and get yourself a bag of assorted resistors and a bag of assorted capacitors if you didn't have enough from a kit.) If you're going to solder boards, you'll also need a soldering iron, solder, and some breadboard to work with.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Arduino's environment uses essentially straight C++. There's nothing special about it; it all runs through g++. The Arduino system merely provides you a nice lightweight abstraction that you can use or not.
I recently developed a linear actuator controller using Arduino and when I was done I targeted the AtTiny84 processor, took the hex file and burned it with avrdude to the chip and it worked great (though I'm only using it at 1 MHz with no external clocking components. I built the binary from within Arduino's IDE even (added a plugin to target attiny). This is what makes Arduino so interesting. It's a straight forward jump into more complicated AVR programming, or to other smaller chips that don't have an arduino bootloader like the attiny.
I think your post illustrates the confusion over Arduino.
1. It's not a special language; it's simply C++ with a framework to abstract the chip a little and the result resembles processing, but it isn't processing. I've seen people develop little python libraries for Raspberry Pi that emulate this framework on the Pi.
2. The arduino bootloader is nice for rapid develop/load/test cycles, but isn't required. If you have the proper hardware definition files in Arduino you can target other chips like AtTiny (no bootloader at all), or the Teensy (proprietary bootloader).
3. You can port your Arduino programs directly to AVR if you wish complete with the arduino abstractions (framework).
4. Arduino is really about a community and a lot of libraries.
Just as an aside, I recently discovered the QP event framework for Arduino, straight AVR, Arm, Pi, or any number of other platforms. Gives you a complete event-driven paradigm for embedded devices complete with threads, timers, event sources, event sinks, etc. All in just under 3k. It's complicated stuff but looks to be very powerful I'm going to check it out.