Remote Control Via Android

The motorized orange thing project is a wrap. Well, as wrapped as it will be for the time being…Katie is full term, so we are working on borrowed time. I managed to introduce remote control to the orange thing via Android and my IOIO board.

I found a goofy motorized alarm clock, Clocky, on Woot a while ago. My first thought was something along the lines of ‘that looks like a great thing to tear apart.’ The unit is designed to make a lot of noise, and drop off the nightstand when the alarm is triggered…key features are its ‘ruggedness’ and two-wheel design. Pretty slick platform for horsing around with my IOIO.

Once it arrived, I began ripping it apart:

clocky's guts
clocky's guts

My focus points were fairly straight forward…keep the drive train system intact, and gain control of the motor function. The stock power was via four AAA batteries, so I did some testing with my 3.3V outputs on the IOIO:

breakout to ioio
broken-out

My 3.3V connections really made the unit crank. The on-board DC motors were fairly snappy…looked promising. I broke out the leads from the battery holder as well, figuring that I *may be able to drive the IOIO with the 6V. That is when thing got sort of dicey…I could run over a hard connection, but the current needs of the board / bluetooth setup was too great for this application.

I determined that I would need to introduce some technology, which ramped up the complexity of the build by a bit. Luckily, I had a Adafruit MotorSheild collecting dust on my bench. I scrapped one of the H-Bridge chips, and mounted it on a simple test board:

wires and dev boards
wires galore

This approach worked. DC motors are power thirsty little bastards…keeping my power sources isolated was the key to getting everything running w/o issues. Basic setup became this mess:

android ioio
proof of concep

Zip ties, electrical tape, Altoids tin, some swearing, etc. later…

ioio project finihed
fugly project is fugly

…weird orange thing is ready to roll. Check the video:

Down the road, I would like to turn orange thing into a mobile mount for the phone itself. The end-goal of this whole bizarre project would be to have a web-controlled vehicle with on-board video streaming. I need to do some research and figure out how to mash around the video feed…going to have to step the Java game up a few notches. That takes time, and spare time is not abundant…it could happen though.

I will dump this code on GitHub and throw the apk on the Android Market. Stay tuned.

Project Progress: H-Bridge

I thought I could get away with utilizing the onboard 6V from my cannibalized motion platform…aka the orange thing…in order to power both the DC motors and my IOIO. My bluetooth connection was cutting out…indicating that I needed to introduce a separate power source for the board and for the motors.

My workaround didn’t pan out…time to rethink the build. Guess what I have on my desk:

ioio motor shield
yoink

Adafruit Motor Shield for the Arduino. Two good looking H-Bridges staring at me….that’ll do. I never thought I would find myself treating my Arduino gear as a scrapheap, but the day has come.

The H-Bridge will allow me to cross over (think of a capitol H) and provide bi-directional motion from the hardware level. 3.3V digital outputs…no more open drain needed (bonus.)

h bridge pins
h bridge pins

Anyhow, I ended up putting together a little test board…socket, some male pins, and eventually some wires for a more secure connection. Sucking some serious soldering fumes…

test board modified
custom mod

It looks sloppy, but here is the hardware in its entirety:

the setup
+1 great holder

Here is a quick video of my testing. I fired up my IOIOSeek program, which has two simple digital outputs triggered via buttons…

Early success? Yep. Except for the early part…this has been more work than I had assumed. More EE work…hoping the UI and hardware containment goes smoothly. Tune back in.

IOIO Servo Controller v2.0

I’m preparing to publish a project utilizing the new bluetooth library for the IOIO. I started horsing around with my IOIO Servo Controller application, and finally got frustrated with the lag that was existing between my slider bar and the servo. I never pulled my improved function from my IOIOSeek work over…it was overdo.

Anyhow, I sort of cleaned house and put together an improved interface, and pushed it to github.

push it
push it

Here is a quick vid of the new app in action:

I pushed a new apk to the Android Market as well. If you have it installed, it should update in the morning. Here is a sneak peek of the updates:

*Optimized code to alleviate lag between slider bar and servo positions.
*Increased minimum version requirements, for future bluetooth connectivity
*Added function to keep slider in an inactive state until IOIO connection made
*Cleaned up code to remedy force close situations
*Remapped PWM pin from 5 to 10 for consistency with my other apps
*Removed text field of slider position / on board LED
*Simplified layout for smaller screens

I pulled some function, but am more than willing to reintroduce the relative readout and/or on-board LED display. I am trying to go simple with this one, and ramp it up once I can figure out the lag that the bluetooth connection will introduce.