Update May 2013 - I've made an experimenter's kit that works great with the AlaMode!
March 2013 - I got the Raspberry Pi with the intention of driving a set of servos to do... oh God, I don't know what. But reading the web I found lots of people saying that the lack of real time drivers on the RPi would make control of the servos difficult. (Of course Erling said, "That's crazy. It's just Unix, you can do anything." But I digress.)
The conventional web wisdom is that you need to use an Arduino to control the servos and use the RPi to control the Arduino. Since I have experience with the Arduino and servos, this seems like a good idea to me. My Arduino / Servo projects have always used a breadboard with wires going everywhere. I looked for a better solution and found the Wyolum AlaMode. It's an Arduino board that pops onto the RPi GPIO connector. Conveniently it takes its power from the GPIO and uses some of the pins to communicate between the RPi and the Arduino.
Maker Shed shipped the AlaMode to me in a few days. I pressed it onto the 26 GPIO pins and it came alive. I installed the Arduino IDE on the RPi and tried the test "Blink" program. It worked! The rest of this page is tips and tricks I've found from using the AlaMode. I post them here for you, but also as a reference for me so I don't forget them!
Tips and Tricks and Other Notes
- Documentation - At this point I found it rather slim. Here are some
good things to get:
- AlaMode schematics. I admit to being part way through building a board for my servo project until I found the servo headers. More on that below.
- AlaMode user guide. It has some good information and references the Blink test program. Note that the schematics in the user guide do not have all the tips that are found in the previous link.
- Wyolum Forum. Please
join the forum and help us all by adding to the discussion.
- Power The AlaMode - There's a little three pin jumper near the SD
card. If you jumper it "ON" (middle and pin away from the
SD card) then the AlaMode will run with power from the RPi GPIO pins.
If you jumper it "OFF" (middle and pin nearest the SD card)
then the AlaMode will need power to the mini USB port on the underside
of the AlaMode. Wyolum says don't hook up that USB if the power jumper
is for GPIO - not sure what would happen.
- GPIO and Arduino High Collision - I didn't really know anything
about the AlaMode and the first thing I did was to solder in some right
angle pins to the Arduino connectors. My thought was to take the wires
off those pins and out to other things. I also wanted to stuff a 2x13
ribbon connector onto the GPIO pins to take them off to some LEDs. Unfortunately
the 2x13 ribbon connector is a wee bit too big for this plan. I had
to cut off the Arduino AD5 pin to let the 2x13 seat properly. Oh well.
- Servo Headers - My plan was to avoid the typical bread board wire
scramble by taking the pins off to another PCB I'd make and line up
the headers there all neat and tidy. While looking at the AlaMode documentation
I saw an arrow to the "servo headers." Huh? No other explanation
in the documentation. Looking at the schematic I see that the AlaMode
has already done this for me! Wow! I soldered in a row of three pins
and my servos can hook up there. The first six positions, counting away
from the edge of the AlaMode, are for the servos. Each of the six rows
has three pins, Ground, 5vdc, and an Arduino control pin. The pins are
PWM D3, D4, D6, D9, D10, D11. That is just exactly what I wanted.
You also have to set a jumper to power the servos. Your choice is to power the servos via the AlaMode power source, or to bring in off board power. You make this choice with jumper pins in row 7 counting away from the edge of the AlaMode. (row 8 has the identical setup and you can add another same jumper there to allow for extra current to the servos). A jumper between the middle and the pin closest to the Arduino processor will set your servos to use AlaMode board power.
Another option is to bring in off board power for your servos. I found that running more than three of my little Tunergy TG9e micro servers would load up my power supply so much that the voltage would drop and my AlaMode would reboot - not good. Using off board power removes this possibility. To bring in off board power you do NOT jumper between the pins in row 7 or 8. Instead you make a wire connector to bring +5vdc to the middle pin of row 7 and Ground to the pin furthest from the Arduino chip. The "schematics" link above has a very nice picture of how to do this.
- Analog Pins - Well, well. The Wyolum guys and gals did something similar to the Servo Headers for the analog Arduino pins. On one side of the board you'll find a series of three pins. Each one has Ground, power, and an Arduino analog pin 0-5. Some sets have 5vdc, other 3vdc; as marked on the AlaMode.
Jim Schrempp is a sometimes freelance writer (only Vanity Press will publish his work) living in Saratoga, California. His writings have appeared on numerous pages on his own web site. The opinions expressed in this piece are those of the writer and do not necessarily represent those of anyone else (although Jim wishes more people shared his opinions)