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.