Wednesday, July 27, 2011

It Seemed Like a Good Idea at the Time...

So, today was supposed to be the day I tackled mobile power on the robot... You know, getting this thing to drive around without a tail.

I decided the best way to do this would be to build my own power supply, running off the 24V batteries from the wheelchair... Great Idea! Right? ... No.

Two fires later, I've learned I am absolutely not an authority when it comes to building power supplies... In fact, I could easily give lessons, quite well, on how NOT to build a power supply.

The real problem was I bought this great little case enclosure for all of my electronics, and thought to my self, "You MUST build a power supply that will fit within this box, alongside the Arduino and Interface controller to drive the chair." Afterall, a robot isn't a robot unless its purty as well.

I bought myself the wrong size capacitors, which caused one to blow up... LITERALLY. I didn't even know that was possible.

After I beefed those up, I plugged in the joystick, using a stick to turn on the power supply... (That should have been the first red flag, no? I mean... if you don't even want to touch what you just built...) To my surprise, the power supply came to life! Hooray!... Or, wait, no. Why does it smell like smoke? Apparently I shorted out the ground to the joystick and the actual wheel chair joystick was now on fire.

After quickly turning off power and assessing damage, it appeared to have just been a wire that burnt up... cleaned that up, replaced the wire and the chair now starts again... with out my power supply.

I'm in the process of finding the short now, and then will start looking for a bigger stick to turn it on.

Monday, July 25, 2011

Its Alive!

So, I made a fair bit of good progress the last few days. I now have full control over the wheelchair motors, via the joystick. This was by far, the hardest part of the hack. Basically, I went with the approach of hacking the joystick of the wheelchair itself, rather than the motors. However, this proved to be difficult because the technical specs of the Joystick did not match the way the wheelchair was using it.

Video explaining the hack a bit

Basically, pins on the joystick are numbered 1-10, and while the wheelchair controller board does have numbers on them, they are not in that order.

Additionally, the wheelchair board seems to have a fair bit of 'protection' logic in place to keep the joystick from being hacked. It requires constant voltage, and the right synchronization in order to initialize.... Luckily, I devised a simple solution to this.

I added two switches (Each DPDT controlling the dual channels necessary for Front/Back and Left/Right Control), which interrupt the signal from the joystick when the arduino is ready to start sending commands. This allows the arduino to come up and stablize voltage to prevent the Joystick on the wheelchair from suspecting anything has gone ary. However, the arduino itself proved to be a bit of a pain because the PWM digital output pins on the arduino are NOT ALL CREATED EQUAL. More specifically, pins 10, 11, 3 and 9 are the only pins on the arduino that do PWM at the correct frequency necessary to drive the chair.

All of this is of course configurable in the arduino library itself... but having had no idea about this ahead of the time, I wasted a lot of time poking at it.

Once the arduino was able to send commands to the motors to control them, the rest of this hack has been gravy. I added a java app to send serial commands to the arduino, and integrated an old joystick I had to control the wheelchair.

My next step is to hack my WRT54GL router, adding a serial port, and using that as a base station on the mower to make it wireless. The only other things after that are finding a good way to power the wireless camera and router from the wheelchair; and attaching a mower.

Here is a video of all the pieces together: (I of course forgot to take video when I drove this thing into the drywall in the basement... :) )

This thing is seriously going to kill someone.

Note to self... test outside.

Thursday, July 21, 2011

I'm going to call this progress.

So, I managed to patch into the controller for the joystick and took a quick video to show progress.

The hardest part of this so far was using the wrong set of transistors (Which are being used to digitally simulate a button press on the controller). I was using medium power, when I needed to be using the BC108 low power transistors.

This is because the switches on the controller itself are going off 3.3v, and I was trying to switch them using a 5v signal from the arduino. I swapped to low power transistors, and threw in a resistor to reduce the voltage going into the transistor, and now it works a charm.

I also wasted a fair bit of time digging out the spec for the joystick from the archives of the internet, which basically tells me, I need to look for an easier way to control the motors than trying to replicate the joystick itself.

See the spec for the joystick here:
D50800-03 Specification

More progress soon I hope.

Monday, July 18, 2011

We have a wheelchair... and data sheet!

So, I've managed to purchase a great working wheelchair off craigslist, for $150 USD. Really, a steal if you ask me:

Quickie P-220

(Mine is actually black, with sparkles!)

I disassembled the chair after confirming it works, and took apart the joystick... this is going to be an easy hack I think... (dangerous last words, I know.) I managed to find the datasheet for the joystick online, so the plan is to provide a relay or switch of some sort to swap between joystick control, and arduino control. When running off the arduino, I will simply replicate the interface.

(Purty picture of disassembled joystick)

Also, here is the base of the wheel chair with motors on the hack-stand for processing.

Coming together!

Thursday, July 14, 2011

Mowstation is a goooo!

I've just started the planning phase for my next project, so I decided to start a blog to document the process.

Basically, I about passed out yesterday mowing in 100+ weather, and thought to myself... "Self, this blows. There has to be a better way.".

I've long considered the idea of creating an RC mower... but even with that, you still have to stand outside, which is stupid. I mean really, whats the point of having a remote mower if you have to stand in eye sight and watch it mow.

Mowstation is going to be a totally different way of mowing. You will sit yourself in a mowpit (Think video game cockpit) inside your house (Its air conditioned after all). The mowpit will control all aspects of the mower, using a steering wheel, break/gas pedals, and live video/sensor monitoring, and gps tracking of the mower.

Here is my current parts list:
*Electric Wheel Chair
*Wireless N Camera
*Arduino w/Relay to control Motors (And Motor controller for speed etc...)
*Small Base Station Laptop, with Wireless N, and USB to connect to Arduino
*GPS Sensor, Temp Sensor

*Large 25" Monitor
*Steering Wheel
*Foot Pedals
*Throttle Joystick
*PC With Wireless N

There will be a fair bit of code to write to support all of this, but that's the fun part. Essentially, there will be server code (running at the mowpit) and client code (running on the mowbot).

More details coming soon!