Upgrading DC Motors to Servos

A whole bunch of Dremel work and some hot glue…

The Clocky conversion to servo motor control is mostly done.

clocky with servos

getting close

I still need to make the servo mounts more secure, but the initial test runs look promising:

Getting close. I determined that the IOIO board will not fit inside the casing, so I will have to come up with an external mount. Which will change the balance, so I might end up having to add some counterweights for balance. It should shape up, mechanically, in another garage session or two. The UI work will be another session, thereafter, but look for a finished product within the next week or so.

Chrome Robot Wheels

These rims are hotter than the combination cutting and grinding bit on my new cordless Dremel (after I’ve been cutting and grinding servo fittings with which to secure the rims in question.)

chrome robot wheels

sittin on chrome

For a project that is being tackled in five-minute-sleeping-baby sessions, it is shaping up. I am not quite sure if the IOIO board will fit in the enclosure, but it will sure be close. I suppose if all else fails, I can chop the thing up a bit…as much as I enjoy Dremel-ing, I’d like to avoid that if possible. Maybe next five minute session…

IOIO Project Revamp

A while back, I put together a project that added remote control via an Android. I broke out the leads to the DC motors that were existent, and left the structure largely intact…resulting in a monster of a build.

ioio remote

here we go again


I would like to clean the build up a bit, but to do so will need to go with a different approach. I am looking into gutting the existing components entirely, and implementing continuous drive servos as my powertrain. This will likely get messy.

Servo motors will add big gains in the power consumption realm, and provide added control. I am not looking for speed, so I think this option might work out well. Stay tuned…

Android Dev Teaser

Before the rugrat showed up, I managed to make some progress on my next project. I just realized that I hadn’t put together a teaser post, hence this quickie.

I started thinking about how to make a better UI to control my remote control via Android project. Instead of going with a touch base, I figured I could implement control utilizing the on-board orientation sensors.

This ultimately led to figuring out how to break said values out…a la this little app:

xyz

precisely

I wrote a simple app that dumps the sensor values of each x, y, and z axes, for values between -90 and +90 degrees.

The next step would to be to clean up the display, provide some visualizations, (graph-ish perhaps) and use the values to control something physical. No promises on the timeline, but if it gets to be too far out, I will dump this code on GitHub for general public perusal. Back to diapers…

RBG LED Controller

My off-the-cuff remark about building an auxiliary bilirubin light manifested itself into a quick project.

In order to approximate the specific color of the bilirubin lamp, I figured that I would need to provide a means of setting PWM values for the three inputs. I had hard-coded values in Arduino code in the past, so thought about taking that route initially. I blew the dust off my Duemillova, fired up the Arduino IDE, and promptly decided to modify my Java servo PWM code to do the job.

Sort of growing attached to the IOIO…sorry Arduino.

So, the controller was born…IOIORBG.

rbg led

RBG ... RGB

Hit the bump for a video and some more info…
Continue reading

Android Side Project

Much like the girl has decided to keep at the in-womb thing, I have decided to keep at the Java thing. Little brat. I decided to figure out how to dump accelerometer / orientation data off of the phone, for use with the IOIO.

In short, I am roughly attempting to see how the data exists in its natural state, in order to figure out how to scrub and interface with my physical components.

android side project beta

warning beta stage warning

So far, I have nice looking code that blasts a force close scenario. Great.

Anyhow, I’m hoping my time on this effort comes to a close and the girl decides to join us. Teamwork…I’ll code, she can practice her singing.

IOIODC Project Details

Consider this the conclusion of the IOIO DC motor experiment until further notice…

IOIO DC Motor Code

still ugly

I’m chalking this up as a success. Even though it is ugly and raw, I learned a ton mashing this thing together. Very fulfilling project from a nerd standpoint: I learned more Java, had to buckle down and do a little EE, kicked up the soldering skills a notch, and introduced a few more components’ features into my ghetto skill set.

My code is live on github with a preemptive v1.0 push…

IOIO DC Motor Code

IOIO DC Motor Code

I also dumped the apk to the Android Market as promised.

Pins 21 though 26, wired through the usual candidates on an H-Bridge. Contact me with any details…it should be very spec sheet-heavy though. The main stumbling point is with the power source, so keep that on the front burner.

Cheers. This may be my last time intensive project for some time. Hardware is time-costly…I am planning to take on the software project I have been contemplating between diaper changes and feedings. Look for some dad stuff in the mean time…

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.