I’ve added up the cost of the components in my new controller and it’s a lot more than I thought. It would probably be close to $300 to recreate one of these with the external joysticks. I’d hate to think of all the parts I bought that I either destroyed, never used or special cables/bits I needed for programming.
You could bring down the price by sourcing parts from eBay, and you could use the cheaper 2.4GHz XBee’s, or simplify and remove the LCD or external joysticks. Then the cost would be close to $150-200, but that does not include the hours needed to make the custom PBCs I hand made.
PS2 Controller – $20
Arduino Fio – $25
Arduino MEGA – $65 (or $30 ebay)
MEGA Shield (NKC Electronics) – $6.50
XBEE Modules (qty 2) – 2.4GHz = $40, 900MHz = $90
XBEE Explorer – $10
CD Screen (3.3V) – $27
MUSIC2 – $38
Lipo Battery – $16
Various Cables/wires – $5
Perfboard – $2
RJ45 sockets – $2
Extra Joysticks – $5 (ebay)
Amp – $20
RF Filter for VMusic/Amp – $5
Total: Approx $300
RoboGames was a huge success, and I had a blast driving Artoo around with my new controller. I lost count how many people thought he was autonomous. I could stand 5 steps away and nobody would bug me or even notice I was there. I could mingle in and out of the crowd, walk past Artoo – zero response. A lot of people would ask around who was controlling him, and I would respond “If you find out let me know”.
On Saturday I hadn’t thought ahead, and hiding the controller in my coat pocket wasn’t such a great idea. It was a hot day and I quickly overheated and paid the price at the end of the day. On Sunday, I remembered to bring my fanny pack to hide the controller in.
On Sunday, I was joined by Matt, his son Max and their droid. I really wanted to hang out with them more, but the only catch was people then assumed that he was driving both Artoo
Unfortunately, I don’t have any photos of us together, but did find this shot on flickr of our droids and Matt in the background. It’s probably my favorite photo from the weekend.
Original photo by human fiction.
And R2-Heineken made an appearance
Onto some of the more technical aspects of the weekend, including problems and lessons learned.
RoboGames was an ideal place to field test my new controller, it’s probably one of the most extreme wireless environments I could find. There are so many different devices and robots in attendance that if something was going to trip me up, this event would. For the most part I don’t think I got any radio interference (I ran with the 900 MHz XBEE’s.) There was one instance, in the hall hosting the BotBall Tournament, where I lost communication, but I’m not sure if it was radio related. I did a reset of the system and control was restored.
I also ended up doing a lot more work prior to the event to integrate the controller into my current setup. The original goal was to only control main drive and dome, but I got that done pretty quickly after moving everything over from my demo platform.
I worked out I could tie in the Arduino and control 90% of what I have in the droid. It required a lot more software and wiring, and I started to hit limits on the basic way the Arduino (and pretty much all simple microntrollers) are programmed. As a result I started to work on some multi-threading code to help coordinate activities.
On Saturday, Jonathan arrived at my house to help load but found me feverishly trying to fix a last minute glitch. Magically overnight a servo had failed and I was busy trying to figure out why. Long story short, a batch of cheap servo from China was having problems returning to center and drawing way too much power. This would probably explain why my dome controller had been overheating this last few months, as it was supplying power to the couple of servos I have in the body. So I cut my losses and disabled the Leia Holographic for the today.
Once we got to the games, I decided to use the hidden joysticks exclusively and was super surprised how easy it was to control. Even though the external joysticks were mechanically the same as the internal, for some reason because I was reading them as direct analog, I had finer control of the droid.
I was having to much fun controlling Artoo invisibly, that I really didnt want to pull out the main Arduino controller. Running on just two sticks limited what I could do (basically dome, drive and random sounds.) So, on Saturday night I added some extra code to allow the one button I had spare on the external stick to trigger events. I could tap out codes (1 for scream, 2 for whistle, 3 for pie panels, etc. etc.). And for the most part it worked, but sometimes Artoo would miss count and I’d get a scream instead of a Leia message
On Sunday morning I awoke again to problems in Artoo. I have so much new wiring, and none of it really planned, something was bound to go wrong. He’s recharged over night and when I figured him up to drive him out to the van he would move. His normal bootup sound didnt play so I knew something was up. I checked the built in battery meter and it was showing 19V. I knew this wasn’t possible so suspected something had shorted. I’d a similar issue before, and it was one of the small 7805 voltage regulators on the power board. It had overheated and failed, so instead of delivering 5V to some systems it was allow 12V thru – and tricking the power meter to show 19V. I swapped it out and we were back up and running – but I really should think above removing those 7805’s from the setup.
Next steps in the development are to fine tune the internal joysticks, and develop a better way to trigger events on just the two sticks. I have plenty of buttons and the LCD screen, but I loved just using just the joysticks. I’m thinking something similar to the JEDI controller gesture/stroke system. I also need to further develop the multi-threading code to allow me to perform multiple task in parallel. e.g. drive/dome while a routine like the Leia Hologram sequence is played out (panel open, extend Leia, pause, play sound, pause, close panel.)
I’m also not sure if I want to continue the development in my current droid. I still have my old setup in there and can flip back and forth, but the wiring has become and issue (and probably the cause of the short on the 7805.) At some point I will need to decide which direct I want to go and rewire or keep the new controller for droid #2.
A couple of years ago I started to work on alternate control methods for my droid. I’m happy with my Futaba controller, but it’s pretty bulky and heavy, and it would be nice to be able to hide in a crowd without stuffing it in a restrictive bag.
The secondary goal was also to allow more easier scripting of complex routine that I’d started to build into my droid. You can only do so much with the channels provided on an RC controller.
For a while I thought phone control was the answer and I developed a Windows Mobile application that could interface with my droid and allow simple function.
But I wasn’t happy with driving with a touchscreen. Nothing beats a real analog joystick for fine control. Also, at the time multi-touch input wasn’t available on phones, so as soon as I stopped to click on an action like sound, everything else stopped, e.g. driving.
Communication was via wi-fi on the phone to a small computer onboard Artoo. It worked pretty good until I turned on my regular Futaba radio controller. It also runs on the 2.4GHz spectrum and it crippled my new wi-fi controller. So I shelved the project because most of the events I go to there are lots of other radios.
Then about a year ago I started to dabble with XBEE and using it to control my droid. I went thru a few prototype setups and came up with a very workable solution that I demonstrated at R2LA in October 2010.
At it’s heart are two Arduino micro-controllers that talk via XBEE. The smaller Arduino is tethered to a Playstation controller, with an added LCD screen to help with function selection and setup. It sits on a custom board to tie it all together, which looks bigger in the photo than it really is, but I wanted to show the setup.
The second Arduino is the brains in the droid and interfaces to the speed controllers, servos, and a VMusic2 for sound. I chose an Arduino Mega because it has 4 hardware serial connections and plenty of IO for future expansion. Initially configured to control 11 servos but the board can handle dozens and dozens.
The beauty of using XBee is that there are several different version that run on differnt frequencies (e.g. 2.4GHz, 900Mhz), but are also plug compatible – so switching from one to another is very easy. For my tests I focused on 900MHz as I really wanted to avoid the crowded 2.4GHz spectrum.
Even though the Playstation controller is relatively small compared to my Futaba setup. I still wanted to reduce the size further or allow me to hide it all together. I decided to add additional joysticks which are tethered to the main controller. I can hold them in the palm of my hand, and if I hide the wires in the arms of my jacket or shirt, then nobody is the wiser. In this mode control is limited to dome, drive and triggering sound but that’s good enough for me right now.
Back to R2LA, I couldn’t take down my full droid, so I built up a demo bot using all the same functions and components as a basic droid, like motor controllers, sound, dome rotation etc. I even had a little Artoo mounted on a servo to simulate dome rotation
Okay, the NPCs and AX3500 was total overkill but it was all I had on hand.
I drove it in from the car with the controller hidden and the extension joystick in my hand. People thought it was an autonomous robot and didn’t quite understand what or why it was there. They soon realize it was with me, but very few people spotted the controllers and they continued to talk to me thinking it was autonomous (while I drove it around the room.) When I finally told people they were very surprised.
I’ve not touched the project since last October, but this week I finally got it out and worked on testing it in my droid.
I’m going to use my dual receiver board I built a few years ago, it will allow me to switch back and forth between my Futaba and XBEE controller without rewiring.
Early tests on a full size droid are looking good, the little analog sticks aren’t as precise as those on the Futaba but I can live with it for now, especially if I can switch back and forth. And being able to totally hide the controller is awesome!
Stay tuned for more details soon.
I’ve been toying with getting a second droid up and running for a while, and I recently picked up a styrene dome – it needing some blinky lights, so I ordered some parts to make a set of the new Arduino logics designed by teeces.
The boards from the fab house came in over the weekend and was anxious to make a start assembling them, but some components haven’t arrived yet, so I decided to make a start on making the bezels.
The LED spacing is a little different to previous logics so I had to create a new hole template. I also added mounting holes to match Dave Shaw’s aluminum surrounds.
I pasted copies to some scrap ABS and drilled out the holes free hand on my drill press. Once I’m happy with the layout I’ll probably make some in acrylic.
Fit was pretty good, and the holes were almost straight – I dont think you need to be super detailed with this piece as the original fibre-optics didn’t align very well anyway.I will also need to add spacers to hold the LEDs away from the the surrounds when mounted.
Some issues: The boards are super compact and cram a lot in, and as they stand there’s no space for mounting holes. They also extend over holes used to mount the alu surrounds to the dome, which isn’t perfect. I’m not sure if I’ll work around the problem or rejig the design and get some more made that are a little bigger with room for mounting holes.
Well WonderCon is done for another year. Lots of fun, good company, tons of photos taken and a full builders panel again.
I think this was the largest builders turn-out we’ve ever had at WonderCon, by my count there were at least 6 droids and 10 builders in attendance.
No major problems to report, nobody lost any parts, screws or having a droid die half way around the show floor. Although Max’s drive system was making some funny noises by late Sunday, and I did manage to break a door panel off but was quickly fixed in time for the panel.
Gerard did what we be believe was his first interview, the guy was from SiriusXM and was more of a geek than us and asked all the right questions. From the look of it the Geeman enjoyed it!
Looks like Matt also enjoyed showing off his droid
And bumped into a few strange characters along the way
But was pretty surprised at the price of pizza the convention center.
As usual more photos in the gallery.
As a lead into WonderCon that starts today, the SF Chronicle wrote a great article on us local R2 Builders. Read it online or on the front page of the Datebook section.
We’ll be at WonderCon Saturday and Sunday, and hosting another builders panel on Sunday at 12:30, room 220.