23 August 2008

Pololu Orangutan - New Shiny

A while back, I bought a Gumstix with the hope that I'd interface it to an RC car. I wanted to see if I could make a pseudo-autonomous car that would zoom around the yard and I'd monitor/control it via Bluetooth or Wi-Fi. After spending a few hundred dollars on various pieces, parts, and expansion boards, I had a pretty cool setup. The Gumstix motherboard runs Linux, has great community support. But it was overkill for my hobby needs. I got frustrated with attempting to interface it with a simple PWM motor controller. No progress == boredom, so Mr Gumstix was soon put on a shelf.

On a recent break from work, I pulled out the Gumstix and wanted to try again. My motor controller kit came from Pololu so I went back to their website to try and remember where I was. And there I saw the next shiny thing that I must own. A shiny new LV-168 Orangutan Robot Controller.

So ... Out came more dollars and the Gumstix has gone back to the shelf. The description of the Orangutan is great, seems to have what I need:
(from Pololu's website)
The Orangutan robot controller is a complete control solution for small robots. It includes an 8-character x 2-line liquid crystal display, two bi-directional motor ports, a buzzer, three pushbuttons, and up to 12 user I/O lines, yet the compact module measures only 2.00" x 1.85" and weighs less than 1 ounce. Because of the complete feature set, very few additional components (such as sensors or motors) need to be added to complete the electronic portion of a small robot. The small package allows for greater flexibility in incorporating the electronics into the mechanical design of a robot.

The Orangutan is based on Atmel’s ATmega168 microcontroller, which features 16 Kbytes of flash program memory, 1024 bytes of SRAM, and 512 bytes of EEPROM. Up to 8 channels of 10-bit analog-to-digital conversion are also available. Because the user has direct access to the microcontroller, any development software for Atmel’s AVR microcontrollers, including Atmel’s free AVR Studio and the WinAVR GCC C/C++ compiler, is compatible with the Orangutan. An in-circuit programmer, such as our Orangutan USB programmer, is required for programming the Orangutan.

The Orangutan input voltage is 5-10 V, making it well-suited for use with small DC motors and 5- to 8-cell NiCd or NiMH battery packs. The motor driver can supply up to a maximum of 1 A per motor channel, subject to power dissipation requirements. Total power consumption (with motors and buzzer off) is under 15 mA.
Sounds great, what can I lose by trying it out? Um, $50.

I ordered on Friday night after midnight. I couldn't just order the controller, I needed the USB programmer also. The combo meal deal is what I needed. After shipping, it was $84.90.

I live in a small town, mail is sometimes slow so I was amazed when my package arrived Tuesday, 2 business days after ordering. Very nice.

Unpacked around 7pm and by 10pm, I had both RC motors hooked up and under programmatic control. By 11pm, I had a Pololu Sonar Range Finder (left over from the Gumstix days) working. Not a bad night's work. Much more to do but for now, the car drives down the hall until it sees a wall and then randomly turn right or left. It soon gets hung up on a corner, spins its wheels, and wildly turns the front wheels like a spastic creature. This is fun stuff.

The code is written in C with Orangutan-lib and AVRDUDE to program the Atmel ATmega168 microcontroller. Really, no learning curve, this has been dirt simple. The resource page on Pololu's LV-168 page has been great as well as their support forums.