Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Hardware Hacking Build

Ask Slashdot: Best Electronics Prototyping Platform? 228

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)..."
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Best Electronics Prototyping Platform?

Comments Filter:
  • CopterControl (Score:5, Informative)

    by Sowelu ( 713889 ) on Monday January 28, 2013 @07:59PM (#42721795)

    If you want it to fly, you might want this: http://www.openpilot.org/products/openpilot-coptercontrol-platform/ [openpilot.org]

    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!

  • by n1ywb ( 555767 ) on Monday January 28, 2013 @08:01PM (#42721801) Homepage Journal
    In that order. Arduino is cheap and dirt simple and surprisingly powerful and flexable. Arduino is based on AVR which is the next step if you wish to pursue ultra cheap ultra lower power micro designs. AVR is compatbile with the complete GNU toolchain including GCC and GDB via JTAG and in-circuit emulation using the astoundingly cheap Atmel Dragon, the $50 JTAG adapter. Raspberry Pi and Beaglebone both run Linux. The RPi is super cheap but is better targeted at apps which require a GUI. The BeagleBoard is more expensive but is better tuned for embedded use. It would be nice if the inverse were true, but oh well.
    • http://www.arduino.cc/
    • http://www.nongnu.org/avr-libc/
    • http://www.atmel.com/tools/avrdragon.aspx
    • http://beagleboard.org/bone
    • http://www.raspberrypi.org/
    • by n1ywb ( 555767 ) on Monday January 28, 2013 @08:03PM (#42721831) Homepage Journal
      Oh I should mention why I don't recommend PIC based platforms; poor support for using Linux as a development host.
      • by grim4593 ( 947789 ) on Monday January 28, 2013 @08:22PM (#42721977)
        I agree with parent: I have not seen any good tools to work with Microchip PICs under Linux.
        That said, I do enjoy working with PIC micro-controllers under Windows.
        • by Solozerk ( 1003785 ) on Monday January 28, 2013 @08:34PM (#42722045)
          Under Linux, I use a pickit 2, pk2cmd, and sdcc. Gets the job done - although I'm not sure it qualifies as "good", it is a complete command line toolchain and up to now it has supported all but the very latest PICs. Also, gpdasm can disassemble compiled code pretty well if necessary, and gpsim can be used as an okay simulator. Do *not* use Microchip's pickit 3, as you'd be forced to use the horrible Microchip Linux IDE, MPLab X (a rebrand/modification of Netbeans, I believe) instead of say, emacs.
          • Unfortunately I am working with some of the latest PIC's like the 16F1507 which isn't supported with the PICKIT 2.
            • Actually I take that back. I just looked at the PICKIT 2 page and they are supported now. They weren't when the chip came out and I had to purchase a PICKIT 3 to program the things.
          • That's the same setup I use from programming them as well. Works fairly well. I haven't tried using a debugger of any kind, but so far my projects have been relatively simple (rs232, lcd, stuff like that).
        • by Darinbob ( 1142669 ) on Monday January 28, 2013 @09:43PM (#42722421)

          PICs are ok, but the C for it is extremely limited and it can be a bit frustrating at times. AVR is limited too, but it felt a bit less odd at times. Both come with a large variety of options so the stuff I hated about PIC may not apply to others. The better compilers for PICs are proprietary and as I recall GCC for PIC just isn't that great as the PIC model is too unusual, and there are so many variants of PIC instruction set. AVR feels a bit more like a normal CPU and the differenet models don't change the instruction set too much.

          Both are Harvard architectures meaning you may have a lot of room for programs (ie, 16K or more), but very little memory for RAM (256 bytes). Which means that if you only have a 4K program you don't get to use all that unused space to have more runtime memory. That tiny amount of RAM however is shared with system registers!! The more peripherals your chip has the more RAM that ends up reserved. So what you read on a data sheet may not be what you actually have to work with.

          I am not an Arduino fan. However it's probably good for beginners as it's easier to get started with. You can program it using USB and they can get power over USB as well, which is really handy to avoid extra purchases of power supplies and system programming hardware. Other systems beside Arduino have USB too but boards intended for professionals may not have these quick-start options. These boards are probably going to give you more than you need as well to avoid the frustration of having something too small, after all a hobbyist isn't going to be quibbling about how many pennies they can save per chip in bulk and the hobbyist is going to be building multiple designs with the same chip. It can also can be used without soldering and has a variety of stuff you can buy to attach to it.

          On the other hand Arduino is pushing their programming system as well, which is really the thing that separates Arduino from any other AVR board. It is a C-like language with a library; you're not programming to the bare board, you're not even writing your own main() routine. It is not intended for profressional programers, the target audience appears to be "multidisciplinary" (ie, people who aren't programmers). But you can skip that stuff and go for real C or assembler if you like.

          • Arduino from any other AVR board. It is a C-like language with a library; you're not programming to the bare board, you're not even writing your own main() routine. It is not intended for profressional programers, the target audience appears to be "multidisciplinary" (ie, people who aren't programmers).

            I've been programming professionally for fifteen years - in C, Perl, PHP, Javascript, VB6, Actionscript, and other languages. Being a programmer, I was glad I didn't have to learn both embedded systems and assembler at the same time. For a guy like me, at a point where I've done just a little bit of kernel ptogramming for example, Arduino was really nice. "mov 0x40 0xD0" isn't what most programmers are familiar with.

            • by julesh ( 229690 )

              Arduino from any other AVR board. It is a C-like language with a library; you're not programming to the bare board, you're not even writing your own main() routine. It is not intended for profressional programers, the target audience appears to be "multidisciplinary" (ie, people who aren't programmers).

              I've been programming professionally for fifteen years - in C, Perl, PHP, Javascript, VB6, Actionscript, and other languages. Being a programmer, I was glad I didn't have to learn both embedded systems and assembler at the same time. For a guy like me, at a point where I've done just a little bit of kernel ptogramming for example, Arduino was really nice. "mov 0x40 0xD0" isn't what most programmers are familiar with.

              I've been working directly with AVR chips rather than an Arduino on several projects over the last 6 months, and have never once had to touch an assembler. C is perfectly adequate for everything you're likely to want to do.

              • by Andy Dodd ( 701 )

                Yup. My personal preference:

                Arduino hardware provides a great starting point for AVR work. It's the best way to get a variety of cheap AVR dev boards.

                However, rather than use the Arduino IDE, I strongly suggest avr-gcc - the initial learning curve is a bit steeper, but you gain a lot of long-term flexibility.

                Most importantly, if you learn using avr-gcc, you can more easily migrate designs to AVR variants that aren't supported by the Arduino environment well or at all. For example, if you have a very basi

            • by gl4ss ( 559668 )

              you don't need to with avr.

              in fact, you can upload your arduino projects into avr chips because that's what they are. you might need to hook up a programmer though but those cost about as much as an arduino anyways and arduino can be used for one.

          • The better compilers for PICs are proprietary and as I recall GCC for PIC just isn't that great as the PIC model is too unusual, and there are so many variants of PIC instruction set.

            The unusualness is caused by the banked memory. The PIC12F series, for example has only 7 bits in the instructions for embedded addresses. GCC just hasn't been written to cope with such things. Shame, really because using GCC has made me spoiled and I hate badly written pointlessly non-standard venduh compilers. That said the

          • by AmiMoJo ( 196126 ) *

            The other issue with PICs is that the debuggers are terrible. ICD2 and ICD3 are a joke and barely work on Windows, let along Linux. They are very expensive too. For AVR you can get a JTAGICE3 that does everything and does is pretty damn well, and at a very low price. A basic programmer is even cheaper, but I'd spend a little more and get the debugger.

      • Re: (Score:3, Informative)

        by BTG9999 ( 847188 )
        This is not true anymore. The new MPLab X and new XC8, XC16 and XC32 compilers all support Linux officially. They are all free to use with some limitations. MPLab X is based off of NetBeans. I have installed, run and compiled real embedded applications with this tool set under linux for a currently shipping product.
        • by n1ywb ( 555767 )
          I stand corrected. I still will not recomment PIC due to the lack of support for using an exclusively FLOSS toolchain.
      • Sorry not familiar with PIC but if the support for Linux is poor perhaps the Someone should start an Open Source Project to improve matters.

        Just a thought

    • by DrewFish ( 23138 ) <drewNO@SPAMfolta.net> on Monday January 28, 2013 @08:15PM (#42721909) Homepage

      I just got an Arduino for Christmas, and I'm having a blast learning electronics. (I'm programmer by profession, so the coding part is only mildly challenging/interesting.)

      The thing I've been enjoying about the Arduino is the community. When I hook an LED up, why do I need a resister? How do I compute -which- value resister I need? What do I need to run a 1A brush motor? So far I've very often found these questions have already been answered (with ideas, suggestions, hardware, etc).

      • Re: (Score:2, Funny)

        by Anonymous Coward
        How do you spell "resistor" should also be a question you ask.
    • by billstewart ( 78916 ) on Tuesday January 29, 2013 @12:30AM (#42723077) Journal

      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.

    • by worip ( 1463581 )
      My whole problem with the whole Arduino universe is the price. You essentially pay an extremely large markup for the libraries and community. There are other much cheaper developer platforms out there, e.g. TI's MSP430 launchpad (essentally a $4 development board with a built-in emulator) and the corresponding community ww.43oh.com, but you are much closer to the hardware. So the learning curve is steeper, but you probably going to learn much more. Another option is the Discovery platform by ST, a very cap
      • by worip ( 1463581 )
        Oh, forgot to mention that C is really the only language if you are doing truly embedded (running on the metal) work. Other languages are fine when you have an operating system running, but C (and usually in some form or another assembler to get things started) is the most prevalent embedded language out there.
      • by aXis100 ( 690904 )

        It's not hard to get Arduino clones down to $12 - $15. At that point, price is hardly the obstacle.

        In addition, I value my time higher than that and saving evan an hour on programming is worth it for me.

      • My first Arduino was an Ardweeny. It costs $9.95. So far it's done everything I've wanted it to do.
        https://solarbotics.com/product/kardw/ [solarbotics.com]

        You can even go cheaper and more harcore if you want:
        http://shrimping.it/blog/shrimp/ [shrimping.it]

        Is price really such a problem?

      • My whole problem with the whole Arduino universe is the price.

        You can get clones for $12, or use bare AVR chips for $3 (the Arduino PCB is mostly just a voltage regulator and some header strips).

        A bare AVR chip will work with no external components whatsoever. Just put one in a breadboard, connect up your favorite programmer, you're good to go.

    • by julesh ( 229690 )

      Raspberry Pi and Beaglebone both run Linux. The RPi is super cheap but is better targeted at apps which require a GUI. The BeagleBoard is more expensive but is better tuned for embedded use. It would be nice if the inverse were true, but oh well.

      The Olimex A13-OLinuxIno is a reasonable compromise -- priced between the two boards, but much closer to the feature set of the beagleboard (and actually a faster processor with more memory than either). It was intended as a Linux-running competitor for Arduino, and is pretty nifty, as long as you're happy with the fact that it runs on a cheap chinese SoC processor that is only officially supported as a platform for making low-end Android tablets, so the Ubuntu port is not officially supported. And like

    • by Annirak ( 181684 )

      I still don't understand why people are focused on PICs and AVRs. ARM has had better functionality and pricing (starting at the mid-range; low range is still dominated by 8-bit) and better peripherals for at least 5 years now.

      TI Stellaris launchpad: $5, 80MHz, 32-bit ARM Cortex-M4 CPU with floating point, 256Kbytes of 100,000 write-erase cycle FLASH and many peripherals such as 1MSPS ADCs, eight UARTs, four SPIs, four I2Cs, USB & up to 27 timers, some configurable up to 64-bits. Integrated in-circuit

      • the problem with the TI stuff is that while the hardware is excellent, the dev tools suck bad, the support is non-existent, and they have the gall to want you to pay for the privilege of developing software for their platform. atmel excels in this regard. their visual studio-derived IDE supports both AVR and ARM.

        • Plus you don't get a massive online community like you do with Arduino/AVR.

        • the problem with the TI stuff is that while the hardware is excellent, the dev tools suck bad, the support is non-existent, and they have the gall to want you to pay for the privilege of developing software for their platform. atmel excels in this regard. their visual studio-derived IDE supports both AVR and ARM.

          +1 for this. AVR Studio is very comfortable program to use.

      • I still don't understand why people are focused on PICs and AVRs. ARM has had better functionality and pricing....

        Obviously a lot of people don't agree with your definition of "better".

        ARM chips are 3.3V, surface mount and are very delicate electrically.

        AVR chips have enough volts for an LED, can be stuck in breadboards, and can take a hellish amount lot of electrical abuse.

        (Plus I think "eight UARTs, four SPIs, four I2Cs and up to 27 timers" is moot for most people...)

        • by Annirak ( 181684 )

          ARM chips are 3.3V, surface mount

          Surface mount is a moot point in the face of an inexpensive breakout board, unless you're looking at a size-constrained application. You can have your own PCBs manufactured professionally for $10 if they're small (5x5cm), so SMD parts are viable as long as the pitch isn't too small--I've soldered small SMD parts many times with both a heat-gun and a soldering iron. I like the heat-gun better, but the soldering iron is more commonly available. That said, if Arduino is a contender, then use of breakout boar

          • ARM chips are 3.3V, surface mount

            Surface mount is a moot point in the face of an inexpensive breakout board, unless you're looking at a size-constrained application. You can have your own PCBs manufactured professionally for $10 if they're small (5x5cm), so SMD parts are viable as long as the pitch isn't too small--I've soldered small SMD parts many times with both a heat-gun and a soldering iron. I like the heat-gun better, but the soldering iron is more commonly available. That said, if Arduino is a contender, then use of breakout boards is a non-issue.

            Yeah, that's way easier than sticking a chip in a breadboard. Everybody has a hot air solder rework station at home and manufactures their own PCBs.

            ARM chips ... are very delicate electrically.

            That's a pretty sweeping statement. Do you have any evidence to back that up? You know that NXP's line of ARM micros are all 5V tolerant, right? And ST's ARM lineup all have at least *some* 5V tolerant pins, most of them are mostly 5V tolerant. The STM32F4 which is on the discovery board has 138 of 140 5V tolerant pins. TI's micro that's on the launchpad also has all 5V tolerant I/O.

            It's nothing to do with 5V tolerance. Read this [arduino.cc] for a while then come back and tell me ARM chips would take that kind of abuse.

            AVR chips have enough volts for an LED

            If this is an issue, you're doing it wrong. VCC--|>|---/\/\/\---MCU pin. With 5V tolerant I/O, you no longer have a problem.

            Again, nothing to do with 5V tolerance.

            Read the Arduino forums, the first thing most people do with their Arduino is connect LEDs to it (usually without resistors...) In their eyes a board which can drive LEDs directly is better than one

  • Want to expand your horizons and think about multi-core algos? Go with a Propeller. Arduino, in all it's forms, has a unified IDE so you can practice with a big prototype board and move to something smaller if you want a finished product. PIC Basic I've never liked, because it's Basic. A PIC and a programmer, on the other hand, will get you something that you can practice some assembly with. So will a Atmel, and you get some GCC tools to compile C or whatever else (might be available for PIC, not my favorit

    • by muridae ( 966931 )

      hate to reply to myself, but I realize that you may think you've provided some of those goals. You want to build something moving. Any of those micros will connect to some relays control motors. What you want the micro to do other than control the motors is important. The smallest Attiny that will use the Arduino boot loader will control some motors, and may be able to chat with a radio chip so you can build a remote control bot. But it won't do on board navigation, it doesn't have enough pins.

      So, do you wa

    • by tibit ( 1762298 )

      Propeller is all great, but it takes a lot of ingenuity to make it do anything useful if you code it up yourself. All you've got is ~500 32 bit words of RAM to store your code and fast registers. One word per instruction. A novice will not be, typically, really using Propeller architecture directly, just running some slow interpreted spin code and reusing the better objects out there.

      • by muridae ( 966931 )
        But if the OP wants to learn how to do multicore programming on a microcontroller, it's not a bad choice. Sure, they could network together a few Atmel or ARM chips and learn how to do multicore programming hardware and software at the same time. But if the OP just wanted the software side, the Propeller is a good start. Maybe it's just me and my fascination with the ATTiny platform, but 500x32 of RAM sounds like plenty.
    • by fermion ( 181285 )
      There are things that everyone uses, is promoted by Make, but if you want to do electronics, there are other options. For instance, the basic stamp is not a bad setup. It includes a breadboard where you can do simple logic, or put in a FPGA to do more complex logic, for instance display the speed of the car. This is a simple way to get into the electronics, rather than just software.

      there is also fishertechnics that provides a graphical programming language and wide variety of building accessories. On

  • by Anonymous Coward on Monday January 28, 2013 @08:03PM (#42721829)

    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).

    • Re: (Score:2, Interesting)

      by Anonymous Coward
      Exactly. Maybe I'm just old, but to me electronics is closer to physics and hardware than what the poster listed. Microcontrollers and software are great fun and are electronic, but are not *electronics*. Building a machined brass test fixture to study the high speed switching of 20GHz-rated tunnel diodes and the hardline SMA fixtures to get that signal into a sampler is electronics. Downloading a library you didn't write and typing INCLUDE LIBRARY isn't electronics.
      • I tend to agree. Although, there is _something_ to be said for working with digital systems. There are still many "electronics" concepts to worry about when designing a digital board, or interfacing one digital board with another.

        While one of the aforementioned systems alone does not really touch on it, once you start interfacing, or using the commonly-found "scratch area" on one of these systems, you need to know something about how to do it properly.

        Strictly speaking, I don't think of an embedded developm

        • The minute you start to hook stuff up to that dev board you'll find there's a possibility of getting into electronics proper. Need a sensor? You'll learn about op amps, gain, noise, ADCs, etc. it's not ALL about the dev board.

    • I see these devices as a bridge from programming to electronics. Pretty soon, pronaly within an hour or so, you'll want to connect SOMETHING to the MCU and that's where the electronics begins. For someone coming from a programming background, the MCU seriously boosts the coolness factor while learning about how to build electronic circuits controlled by the chip.
  • Is a Mouser or Digikey catalog, plus whatever reference material suit your abilities/needs.
    • I also like DigiKey. Sparkfun is great for the interface components like LCDs and custom buttons. Nice place for unique sensors, displays, and stuff like GPS modules too. Everything is super well-documented and they do great stuff with the community like free day and supporting hackerspaces. /sparkfun fanboy

      I am a PIC guy, so according to the comments thus far, I like doing things the hard way.

  • IOIO? (Score:5, Interesting)

    by swanzilla ( 1458281 ) on Monday January 28, 2013 @08:17PM (#42721931) Homepage
    If you like Java, I'd suggest the IOIO [blogspot.com] 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.
  • by javawocky ( 1160907 ) on Monday January 28, 2013 @08:19PM (#42721953)
    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 [ti.com] Order directly from Ti - https://estore.ti.com/MSP-EXP430G2-MSP430-LaunchPad-Value-Line-Development-kit-P2031.aspx [ti.com]
  • by Peganthyrus ( 713645 ) on Monday January 28, 2013 @08:21PM (#42721967) Homepage

    I'd go with a couple of Pis. Some will say that's overpowered and you should use an Arduino, but there's one important thing about the Arduino: its IDE kinda blows.

    Plus it will be a lot easier to update your code by pushing it to a Pi over wi-fi than by hassling with cables. And if you want to do stuff that needs a decent amount of CPU, you'll have it.

    On the other hand you can get an Arduino into a lot less space than a Pi. Hell, get one or two of the Nanos too. You'll have the option of using one if you want a tinier package and can cram your code and data into like 32k.

    • He mentioned flying bots. That's weight-critical - ideally a single-chip solution. That means either arduino or (even smaller, but harder to program and more limited) PIC.

    • I'd go with a couple of Pis. Some will say that's overpowered and you should use an Arduino, but there's one important thing about the Arduino: its IDE kinda blows.

      That's been solved. Use Eclipse.

  • Cortex-M4 (Score:2, Informative)

    by Anonymous Coward

    Discovery Board - STM32F407

    -> 168 MHz core freq
    -> a few timers
    -> DSP core
    -> excellent integration with Keil
    -> flash utility in Linux too.

    Price: $15

  • I've played with a little both Arduino and Raspberry Pi and both are neat and have their strengths and weaknesses. Arduino is perfect for sensing things. It's normally programmed in C and it's a little cheaper than Raspberry Pi and has less performance. Raspberry Pi is neat but be aware that it runs Linux and as such it is not a real-time operating system. There are small lags so that if you need to respond to the outside world with utmost immediacy you are still better off with Arduino. The raspberry
  • I've been doing some research too, Netduino is pretty robust, compatible with many of the Arduino shields AND inherently supports all the .Net Gadgeteer sensors. Seems like a good start on the road to hobby robotics.

  • by volvox_voxel ( 2752469 ) on Monday January 28, 2013 @08:33PM (#42722041)
    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.
    • by hamster_nz ( 656572 ) on Monday January 28, 2013 @10:03PM (#42722503)

      As an owner of a Zedboard (and half a dozen others FPGA boards) I recommend other readers disregard this advice. It is not a good starting board as is has a very, very steep learning curve, much steeper than any other FPGA I've used, It is also very, very expensive (but you do however get a lot for your $). The FPGA build times are very long too, especially annoying when you are just starting out.

      However, if you are interested in Programmable Logic logic, try a Papilio One from Gadget Factory - equivalent to a quarter of a million logic gates for a $37.50 + p+p. An open source AVR compatible processor core is available, so you can still develop with it as though it is an Arduino, and even make changes to the internals of the CPU.

  • It depends (Score:4, Informative)

    by Anonymous Coward on Monday January 28, 2013 @08:36PM (#42722053)

    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.

  • Like others have said, "It depends." But, having plunked $50-ish for an mbed - https://mbed.org/ [mbed.org] - I'm having a blast with it. It even has usable threads so you can do a form of *nix-like parent-child intercommunication and multi-processing. Like the Arduino, there are a lot of libraries available so you can just drop in a module and off you go. The LPC1768 is powerful enough that when you find you want to do a "real" project, you don't have to change MCUs.
  • Arduino + Fritzing (Score:5, Informative)

    by Bitsy Boffin ( 110334 ) on Monday January 28, 2013 @08:45PM (#42722113) Homepage
    No question in my mind, an Arduino for the microcontroller platform, and Fritzing to do the design.

    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.

  • by Spiked_Three ( 626260 ) on Monday January 28, 2013 @08:46PM (#42722115)
    Just pick the best car, and use whatever computer it has in it.

    Seriously, there is no BEST.

    Arduino has a ton of examples, and a ton of vendors making parts to work with it. Everything else, not so much. I've yet to see any purpose for a Pi. Very limited software support, mostly just Linux fan boys thrilled to run on a cheap computer.

    For pure robotic experiments, go LEGO. They even have a newer version coming out mid year that is Linux based. But that is more for learning what to do with working electronics, not how to actually make them.

    For electronics tinkering - Sparkfun Arduino https://www.sparkfun.com/products/11236 [sparkfun.com]
  • by TheSync ( 5291 ) on Monday January 28, 2013 @08:48PM (#42722131) Journal

    You should get an Arduino because there is a huge amount of data out there on how to use it to do pretty much anything. Any hackerspace will be full of a hundred people who have messed with Arduino, and Arduino classes are everywhere.

    Raspberry Pi is interesting for more complex embedded tasks, especially ones that require a network connection, or specific Linux software, but it lacks things like a built-in A/D converter.

  • by ElizabethGreene ( 1185405 ) on Monday January 28, 2013 @08:50PM (#42722151)

    Questions like this remind me of a saying.

    Perfect is the mortal enemy of good enough.

    Right now, today, I'm playing [youtube.com] with the Arduino platform. Before that it was an OOpic. Before that, it was an 40 pound IBM XT with a parallel port adapter I built. Before that it was a huge 40 pin DIP Z80. In High school I got a radio shack "Electronics learning lab" with a breadboard, and it's been the only constant.

    The small forest Mimms electronics books are a good "here build this" introduction. When you get bored with those, the "Art of Electronics" book is fantastic!

    Have fun, and enjoy letting the smoke out!

    • Right now, today, I'm playing with the Arduino platform. Before that it was an OOpic. Before that, it was an 40 pound IBM XT with a parallel port adapter I built. Before that it was a huge 40 pin DIP Z80. In High school I got a radio shack "Electronics learning lab" with a breadboard, and it's been the only constant.

      The small forest Mimms electronics books are a good "here build this" introduction. When you get bored with those, the "Art of Electronics" book is fantastic!

      Yes, I second some of this kind of.

  • by claytongulick ( 725397 ) on Monday January 28, 2013 @08:51PM (#42722157) Homepage

    There are two ways you can tackle this:

    1) You just want to make cool things, but don't really care about the details
    2) You really want to grok this stuff, and want to build stuff from scratch

    This is roughly equivalent, in programmers terms, of learning a high-level language like .Net, PHP, Python etc... versus assembly/C.

    Do you want to Just Make It Work(tm) without understanding the underlying libraries/platform? Or do you want to be able to build the libraries/platform?

    For option 1, the Arduino is fantastic, and really can't be beat. For option 2, I'd say start with an 8 bit AVR, like AT tiny, grab a breadboard, come LEDs and a programmer, and pull your hair out until it starts making sense and the lights flash in the pattern you expect.

    I took the second route, and have been very happy with my choice. Now, if (at my option) I just want to do something quick and dirty, I can grab an arduino and prototype something fast. But the thing is, I'm not constrained by that. I'm able to throw things together on a breadboard from components in a tray. I can write the code in straight C (or avr asm), and really grok the ISRs.

    It's kind of like Processing (the platform for data visualization and artistic CG). Would you rather make fast animations that look great, are easy to make, but only run in the Processing environment? Or would you rather build your own cross platform UI stack and then create your own highly optimized animations?

    I don't really agree with the "beginners" attitude towards Arduino, the same way I don't agree that Python is a good language for "beginner" programmers. We become programmers or amateur EE's for some reason - to solve some problem. If the problem you want to solve is that you want to be an expert developer, then don't start with python, start with c or asm. If you just have stuff you need to get done, python is great.

    Same with EE, don't start with Arduino if your purpose is to really learn the stuff. You'll just be confused by the toolchain and helpful libraries.

  • While it's not at all what you want, there is an electronics equivalent to erector set: Snap Circuits [scientificsonline.com].

    It's a real shame we didn't have things like this when we were kids. It would have saved many small appliances from destruction.

  • Get a bread board and sample the IC's you need to make the freeduino. It's a great learning experience and will give you a great prototyping platform.
  • by caseih ( 160668 ) on Monday January 28, 2013 @09:25PM (#42722323)

    I've been using Teensy lately. I can use the Arduino tools and most libraries. It's relatively cheap compared to Arduino at only about $20.

    Obviously you can't use the same shields but electrically they are more or less compatible. The teensy can do things Arduino can't like be a usb keyboard, mouse, joystick, serial port, midi device, or x-plane instrument interface.

    Also if you're going to do a lot of breadboard you could also look into the adafruit breadboard Arduino. Can't use shields bit it is easier to plug into a breadboard.

    All in all they are all pretty cheap so buy a few!

  • The Wiring platform (from which Arduino is a fork of) is a great option for getting started.

    http://wiring.org.co/ [wiring.org.co]

    Code wise, It's about 99% the same as Arduino, so all the libraries and code you can find out there is usable, (you just have to tweak the pin numbers)
    You can program Arduino boards, wiring boards, AND Atmel chips with the wiring software.
    The Wiring S board is slightly cheaper.

    And, best of all, the help system is just a lot of commented out descriptions above the code - and it links to a schemati

  • Start with the Sparkfun Inventor's Kit [sparkfun.com]. I encouraged my coworkers to pick'em up and work through the tutorials, and now they're spending half their time coming up with concepts and building prototypes with stuff they buy from DigiKey.

    Seriously, give it a go.

  • I've used the Picaxe, which I really liked, bate pics, the Basic Stamp and the Arduino. I'd suggest the Arduino for most people. Largely because of the community around it.

    However, if you're on a budget like me, I'd only buy one Arduino board. Any "permanent" projects get the Arduino board replaced by a bare chip with the Arduino bootloader, which sells for about $5. That $5 chip + 5volts is an Arduino, minus the unused headers, LEDs etc.
  • If you are looking at microcontrollers, I would suggest the Parallax Propeller [parallax.com]
    It's an 8 core 32 bit micro that lets you add peripherals in software.

    Wire a bluetooth or wifi module to some IO pins and toss a BT/wifi object into a core to let it poll for commands.
    Or you can wire a nintendo or super nintendo controller directly to it, and load a shift register object into a core to poll the game pad.
    On the low end, a TSOP IR receiver module and object can be setup to take commands from any old remote you have

  • The Pololu 3pi robot is sweet. Small, simple, fast (3m/s!) and fun - can even be made Arduino compatible.

    If you want to play with motors and sensors you could do far worse.

  • I haven't used the other kits, but I have found the Arduino to be an awesome prototyping platform. Lots of available information, lots of tutorials, lots of support, lots of flexibility.

    I would consider it a great jumping off point for the Raspberry Pi, which is my next experiment. I have no experience whatsoever with electronics, and it's been smooth sailing so far!

  • by rwa2 ( 4391 ) *

    I mean, c'mon

    http://xkcd.com/413/ [xkcd.com]

    Yes, I feel bad that I have a set of Lego Mindstorms and an Arduino in my basement that I haven't done anything with yet.

    I did get my EeePC interfaced with this though, via the USB control dongle:
    http://www.amazon.com/OWI-OWI-535-Robotic-Arm-Edge/dp/B0017OFRCY [amazon.com]

  • Though the raspberry pi can do a lot of what the arduinio can with it's gpio pins, the arduino (well the AVR system) is more flexible. It can do PWM, ADC, interrupt-driven signalling very easily, and can do it at 5v if you wish which is often an easier voltage to work with than 3.3v that the Pi uses. Also the shields are nice to add things like motor controllers, etc.

    But like another poster said, you can't exactly do AI or image processing algorithms on the arduino. But you probably can on the pi. And t

  • by sl3xd ( 111641 ) on Tuesday January 29, 2013 @02:30AM (#42723471) Journal

    I'd personally go with a solderless breadboard and components.

    There are various 'platforms' out there, such as *duino, LaunchPad, and so on.
    The big advantage to these are:
    * Predesigned PCB, with most 'electroncis' taken care of for you,
    * USB built-in
    * built-in programming/emulation/debugging
    * an ecosystem of plug-in boards for various tasks.

    The platforms make it easy for those with more interest in programming than in hardware to get started. The downside is they are pretty pricey because they have so many bells & whistles.

    On the other hand, if you have good Electronics knowledge, then it's hard to beat a solderless breadboard and components. It's hard to get sentimental about a particular MCU when you start to see them as 'just another part'.

    In general, some things to consider:
    If you're just getting into micros, I'd avoid 8-bit, period. Especially for hobby projects, 8-bit is just masochistic; the part costs ~$0.25 less per unit - significant when you build a few thousand of 'em, but to a hobbyist, I'd just get the 32-bit part and enjoy fewer headaches.

    My suggestions:
    * Don't bother with assembly. It's a lot less painful to move to a different platform if you use C/C++ when possible.
    * Skip the 8-bit AVR-based Arduino entirely. Use one of the 32-bit *duino boards (ARM, for example) or clones (PIC32).
    * I like the 16 and 32-bit PICs. The PIC18 architecture is OK, but still only 8-bit. Avoid PIC 16, 12, and 10's. PICs are better suited to guys who can do everything on a breadboard, and intend to design a PC Board for a finished design. (There is the *duino-compatible ChipKit, though)
    * TI has three "Launchpad" platforms. I have at least one of each. TI can't be making money on these things - shipping alone costs more than the purchase price.
          * MSP430: A ultra-low power 16-bit MCU. The MSP430 Launchpad is so low-cost ($5 shipped for the MSP430), I'd recommend them as your first option.
              * TI's tools for the MSP430 are Windows-Only
              * There are (good) free compilers (MSPGCC, MSPGDB) and other tools available for Linux, Mac, etc.
          * C2000: A 32-bit real-time MCU. I got it mostly out of curiosity.
          * Stellaris: ARM M4 based MCU, full FPU. It's a much cheaper way to get an ARM than an Arduino
          * All three have sockets for "booster packs" - similar to an Arduino shield. There's even an MP3 player booster pack.
    * At least look at the Parallax Propeller. It's a very different, and certainly unconventional, take on microcontrollers.
        * The propeller has 8 32-bit cores in it, and has (beta) GCC support (and Linux is a first-class citizen), as well as its own interpreted language, Spin.
        * Everything is bit-banged; there are no hardware ADC's, no hardware UART's, no hardware I2C or SPI - just 32 general I/O pins.
        * Oddly enough, there a VGA/component video circuitry built-in and available on every I/O pin.
        * Propellers also have no interrupts; the idea is to simply activate another MCU core to do whatever task you would use interrupts for. As there are no interrupts, and each 'task' gets a full MCU core.
        * Whether you think it's wasteful to dedicate a whole MCU 'core' (even if it is 'sleeping') to do the job of an interrupt, it's a novel solution, and may suit your needs better.

    • I disagree. Don't neglect the 8 bit goodness. An army of 8 bit microcontrollers working together can do some pretty funny things. Nothing quite beats the old fashioned 8051 in being well documented either. And it comes in loads of flavours. I'll agree on the stay away from Arduino, just too expensive for what you get. The TI dev boards are fun, very easy to use as well. The software is a bit iffy but not too bad. Never worked with Propellers so can't really say much about those.

      Another interesting option
  • I had a dream to make a computer using 74 series TTL, essentially transistor logic in small packages. I managed to get a full prototype working in Proteus from labcenter http://www.labcenter.com/index.cfm [labcenter.com] The same software also includes PCB layout tools. These files were then sent to beta layout PCB pool http://www.beta-layout.com/ [beta-layout.com] When the PCBs arrived some soldering with all the components left me with a surprisingly heavy board that actually worked. http://www.wellytop.com/Fnagaton/DIYComputer.html [wellytop.com]

  • I'll just share my experience since it's been such a blast...

    I picked up an official Arduino board, but it wasn't long before I was building 'stand alone' arduinos on a breadboard.

    This led to diving in to Cadsoft Eagle to learn the basics. I took one of the many schematics out there and put together an SMD arduino board. I sent it off to BatchPcb and waited the 20 days. When I got it back I got it all soldered up and IT WORKED! The first time!

    Now I'm using my incredibly small boards to drive a RFID reader i

"I've finally learned what `upward compatible' means. It means we get to keep all our old mistakes." -- Dennie van Tassel

Working...