Are you using Arduino?

Wednesday, January 4th, 2012 by Robert Cravotta

The Gingerbreadtron is an interesting example of an Arduino project. A Gingerbreadtron is a gingerbread house that transforms into a robot. The project was built using an Arduino Uno board and six servo motors. Arduino is an open-source electronics prototyping platform intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. The project began in 2005 and there are claims that over 300,000 Arduino units are “in the wild.” 

According to the website, developers can use Arduino to develop interactive objects, taking inputs from a variety of switches or sensors, and controlling a variety of lights, motors, and other physical outputs. Arduino projects can be stand-alone, or they can communicate with software running on a computer. The boards can be assembled by hand or purchased preassembled; the open-source IDE can be downloaded for free. The Arduino programming language is an implementation of Wiring, a similar physical computing platform, which is based on the Processing multimedia programming environment.

My first exposure to the platform was from a friend that was using the platform to offer a product to control a lighting system. Since then, I see more examples of people using the platform in hobby projects – which leads to this week’s question – Are you using Arduino for any of your projects or production products? Is a platform that provides a layer of abstraction over the microcontroller sufficient for hardcore embedded designs, or is it a tool that allows developers that are not experts at embedded designs to more easily break into building real-world control systems?

Tags:

6 Responses to “Are you using Arduino?”

  1. Jon Titus says:

    The Arduino has a serious problem–a serial port shared with the USB connection to a host computer. When you use the serial port to connect to another device, that device also receives information sent from the host PC. Likewise, the Arduino MCU transmits information to both the connected device and the USB port. I had to put a switch on the serial-port lines during testing and debugging to prevent conflicts between an XBee wireless module and the USB port. What a pain and frankly, a poor design. For someone seriously interested in the Arduino-type module, I recommend either the Digilent chipKIT Uno32 or Max32 that offer better capabilities and an uncommitted serial port. (I have no relationship with in Digilent.)

  2. L. @ LI says:

    I’m using Arduino in a couple of projects related to my hobby farm. I have a lot of experience with safety-critical software, but zero experience implementing circuitry — the abstraction provided by the Arduino permits me to focus on the sensors and actuators (which are closer to my prior experience, and thus a more gradual introduction) without worrying about chip support.

    However, for use in any kind of commercial product, I doubt that the Arduino’s capabilities can justify its bulk.

    For those moving the other direction, hardware to software, it might be nice to be able to examine the assembly produced by the IDE.

    Lance ==)———————

  3. C. @ LI says:

    @Lance, no bulk.

    I think your are confusing the Arduino open-source platform with the many Arduino based boards that are for sale on the open market. Arduino is not only the standardized design/off-the-self simple hobby boards but also the firmware bootloader and runtime. The Arduinos that you typical see are “oversized” and “bulky” (as small as they are) to fit the standard shields.

    I designed and built a multi-axis motor microcontroller based around an Amtel ATmega644p processor running an Arduino/Sanguino bootloader & runtime. The Firmware read g-code (a CNC control language) from a host PC to run an XYZ gantry system to move a spindle motor with a cutting bit to carve foam in to shapes. The only hardware needed to make the 644 run was a couple resistors, a few small capacitors, and a crystal. We used Allegro 3-phase BLDC & stepper motor drivers. I only needed a few control lines from the 644 for each axis & the spindle. I used fast-PWM signals for motor driver current limiting and interrupt driven limit switches. I prototyped it all out on a couple breadboards. I had originally used an Arduino Nano for the prototype but I needed a few more I/O pins. The final PCB (a simple double-sided board) would only be a few square inches including all the Allegro driver chips.

    I did also use an FTDI cable for the serial/USB host communication and an ICSP for flashing the bootloader into the original clean chips but those were just normal pins on the processor, no extra onboard hardware support was needed.

  4. L. @ LI says:

    @ Chris:

    > I think your are confusing the Arduino open-source platform with the many
    > Arduino based boards that are for sale on the open market. … The Arduinos that
    > you typical see are “oversized” and “bulky” (as small as they are) to fit the
    > standard shields.

    Indeed, I was. Thanks for the clarification.

    I would like to your milling machine some day (when I am more familiar with hardware and can fully appreciate it). Is it powerful enough to cut other things such as wood or solid styrene?

    Lance ==)—————

  5. A. @ LI says:

    I used an Arduino in my blimp project : http://www.abrisy.fr/blimp_project/index.html

    I choice it because of its easiness of programmation and prototyping, it’s little volume and it’s cost.

    I used it to receive command from a cellphone under Android thank to a bluetooth dongle and generate pwm to control motors of a blimp. More detail on the website.

    This is just an example of the application allowed by the chip, my opinion is really positive on this cheap and I will definitely use it again if an compatible application appear.

  6. C. @ LI says:

    Besides the original Arduino board + language/library + IDE, there are a number of variants.

    Some fully-compatible clones and software-compatible clones using a different AVR chip include the Teensy [1].

    Taking a BIG step up in processing power, memory, and I/O capacity, there is also the LeafLabs Maple [2]. It has an STM32 ARM Cortex-M3 chip and is available in a standard size and Mini version, in addition to the MONSTER Maple Native. The Maple IDE is based on the Arduino IDE and implements mostly-compatible programming language+libraries. We have started using some Maple boards where I work and it’s a great platform for rapid prototyping, supporting automated test processes, and other quick tasks.

    References
    [1] Teensy: http://www.pjrc.com/teensy/index.html
    [2] LeafLabs Maple: http://leaflabs.com/devices/maple/

Leave a Reply