Upcoming project

So my friend and I finally got around to starting a project we've had in mind since the beginning of summer:

So, his grandma is paralyzed on one side, and medicare got her a powered wheelchair.
But -- of course-- they put the controls in the wrong side!
So my friend convinced his parents to let him have the first wheelchair (his garndma got a second one, this time without error).
So we essentially have a robot chassis and drive system that can carry a person! Our first idea was to make it remote controlled.
The xbee retail kit from sparkfun arrived today. I was surprised at how easy it is to use! It was as simple as using a wired serial connection, software-wise.

My friend also has a tablet laptop, and we're going to make a processing app to send messages to the arduino onboard the wheelchair.

So we will have a touchscreen remote controlled wheelchair! How cool is that[ch8253]
:smiley:

A bit off topic, but why the heck didn't they take the 'wrong' one back? No wonder health insurance costs are skyrocketing everywhere...

Nevertheless, have fun.

So we essentially have a robot chassis and drive system that can carry a person! Our first idea was to make it remote controlled.

Please read this carefully - your first order of business is -not- to make it remote controlled.

What you need to first do is plan on how to control the machine safely. This isn't going to be some small robot on a desktop or floor that you can easily pick up or restrain with your hands. This is ultimately a device with a lot of power, with some weight (you don't mention what kind of "wheelchair" it is - so it is difficult to picture, but it likely weighs near 100 pounds, if not more), and it can probably get up to at least walking speed, if not a bit faster.

Such a machine can be dangerous if it gets out of control.

So, your first order of business is to plan the programming, control scheme, and emergency stop system that will be used to prevent such a powered chair from running amok and damaging property and person - well before you even think about connecting the Arduino to it.

You should first attempt to locate specifications and data-sheets for the controller used by the wheelchair, including the controller interface for the joystick (or whatever controls it). Depending on how things are set up, you might be looking at a PWM interface, or some kind of voltage-controlled interface (with the joystick acting in as a combined dual-axis voltage divider). If you look around on this forum, I know I have posted about this before, with some links, for another individual planning on building something similar.

Don't think about bypassing the controller; it is unlikely that you could build your own controller cheaper or more reliable, especially for the voltage and current levels we are talking about (the L298 will not cut it here - think paralleled MOSFETs, most likely). There are companies that manufacture controllers for such systems; if you had the specs for the motor or the chair (voltage and current draw, stall current, etc) - they will help to determine what kind of controller to buy, should you go that route. Be prepared that such a controller will not be cheap; for a wheelchair, if the controller isn't costing more than $100.00, it is probably undersized. You might also look into "combat robotics" controllers - these typically have inputs for emergency stop functions, which you are going to want.

Getting that emergency stop function built in can be tricky - probably the best way (if the existing controller, or a purchased controller, doesn't already have one) would be to use a vehicle starter relay to cut the power to the motors and/or controller (and possibly the entire system). Either that, or a 24 VDC contactor relay. Whatever method you decide, you'll want to be able to control it via three methods concurrently: 1) digital I/O from the Arduino or whatever other digital system you use, 2) an R/C interface - a cheap "auto-start" key-fob transmitter controller could work here, and 3) a physical "pull-out" dead-man's switch with a large, easily graspable handle mounted on the robot.

Once you have that sorted out, you are going to want to do all of your development of the control system, as much as possible, away from the chair. Develop a testing harness if you have to, running motors or LEDs or whatever (this is something you'll have to determine), such that you can code and see what the system should do - long before you hook it up to the wheelchair controller, and the motors themselves. This kind of setup serves a couple of purposes: It makes it safe for you to develop and test untested control code, and it makes it easy to develop without having to be near the chair and its unwieldiness (plus, with a duplicate set of test harnesses, you could each do development at your respective homes, without explicitly needing the chair nearby).

Once you get to a point where you think you have something working, you can then move to hook it up to the chair - but you should first prep the chair in this phase of testing by removing the wheels and mounting the chair and control system such that the motors don't snag on anything. Remove and/or tie up all long sleeve and loose clothing. No dangling jewelry allowed! Tie back any long hair, too. Finally, once you have the system set up and running, resist any urge to touch spinning parts. These aren't small motors, they are powerful gear motors that can, if given a chance, cause grievous injury (you do want to keep all of your fingers, right?).

When you feel solid about this testing phase, having tested all control systems for proper functioning, as well as failsafes and emergency stop systems (by the way, you will want to incorporate a method to trigger the e-stop system should the Arduino or whatever else is in the control chain stops responding to the controlling PC, radio system, etc - should a wire come loose, a cord damaged, radio interference, bad control signals, over-currents, noise, etc), then you can move to putting the wheels back on. You should then do a final stage of testing "up on blocks", not on the ground - until you are confident that the system is fully responding the way you intend it to.

By the way - you might want to figure in some form of sensor system up-front as part of the e-stop system; IR, ultrasonics, physical bump sensors, etc - all should be thought of in the design up front as a part of that early planning stage. If you decide to make this into a real robotic system, you'll want and need them anyway, so put on a few, at least on the front, in the beginning.

Now, you might think I am taking all the fun out of a project like this; this is not my intent at all. My intent is to hopefully educate you on how to stay safe and sound during a project like this. There is a ton of work to do to make this a reality, and plenty of fun to be had while staying safe. The last thing you want during any project is to find yourself on a visit to the emergency room because you decided to take shortcuts or ignore safeguards.

Have fun, and enjoy the project...

:slight_smile:

/BTW - your friend's parents might want to make dead certain that the old chair is theirs to keep; if not, and you rip into it - it won't be a cheap purchase for them to reimburse...

I'd make it into a lawn mower, telling it to mow a pattern on the lawn just for fun. Then it can just mow the entire lawn later.

I agree with cr0sh, there might be a fee if the tard health insurance people realize you have something that belongs to them. I'd make an add-on to mechanically pull the levers and push the buttons. You know, make it look like a severed hand, hanging on to the chair, or a 1-foot tall very green alien.

I'd make an add-on to mechanically pull the levers and push the buttons.

While this suggestion is meant to be humorous (I think), whatever you do, sciguy, I would not attempt something like a mechanical interface to the control joystick (say perhaps via a couple of servos). While doing so is certainly possible, you would now open yourself up to a possible mechanical system failing, without having a way to easily detect this to institute the fail-safe e-stop system. Designing a mechanical control system that fails in a safe position, while possible, isn't something for an amateur to attempt, unless you've had prior experience.

Something else to keep in mind - perform current monitoring and/or encoder monitoring (quadrature encoders or such) on the motors and/or wheels; if you set things up right (perhaps by using a couple of microcontrollers), you could monitor the rotation of the wheels; should the wheels turn in a direction not being commanded by the other microcontroller, you could have a scheme to possibly shut things down (ie, the motor is somehow stuck in "running" status, but the microcontroller isn't telling it to run - maybe the motor controller failed in such a fashion to keep the motors running?)...

You can't be too safe on something like this (well, you can - but what I've suggested so far isn't near that point yet)...

:slight_smile:

Awesome! I can't believe they didn't take the old one back.

I don't really have anything to add. Maybe you should watch Tomorrow Never Dies for how to do touch sensitive remote control properly :wink:

While I agree this could be dangerous, I think cr0sh is being a little over cautious, Having a large easy to reach cut off switch should be enough to ensure safety.

I would reverse engineer the circuitry, The motors may be driven by something as simple as a H bridge which you should be able to hack into easily and control via PWM.

So as far as safety goes, there is a pretty convenient way we can add a shutoff switch. The chair can rotate, and there are switches to ensure it is facing all the way forward or all the way back before driving. So we just need a big NC button wired to those switches. We could also mount switches on the sides so if it collides with a wall, etc., it would shut off.

As for controlling it, we were thinking we could simulate buttonpresses on the control panel with optoisolators. That way it is still usable as a regular wheelchair. The part we are unsure about is the joystick:

It is the 55135 Commando one.
It appears to be an inductive joystick, with 6 wires coming out.
Not knowing how inductive joysticks work, I don't know if there ius any chance of this: but could the arduino simulate the output of this joystick? The label on the joystick also says "5v", if that helps.
Wires:
Red (5v?)
Black (Gnd?)
Yellow
Brown
Blue
White
Just a guess, are the 4 remaining wires just either ends of 2 inductive coils?

Any help is appreciated!

But -- of course-- they put the controls in the wrong side!
So my friend convinced his parents to let him have the first wheelchair

And I thought you guys were up to fixing the controls on the correct side. Perhaps it will be of much more use to someone who can't afford a wheelchair / someone not covered by medicare.

You can always build a robot at much cheaper.

And I believe the motors are controlled by a SSR. There is a black box with relay markings on top, and it obviously is not mechanical, since there is no clicking and the motors are speed controlled. SSR's can do pwm, right?

Yes, but they may get hot and require additional heatsinking if they were not driven by PWM before.

While I agree this could be dangerous, I think cr0sh is being a little over cautious, Having a large easy to reach cut off switch should be enough to ensure safety.

Powerchairs are large, heavy, and difficult to stop machines. They tend to weigh much more than 100 pounds (I have a dual motor transaxle from one that weighs about 30 pounds all on its own - no wheels or chair frame or batteries). While certain not as dangerous as say a UGV made from a full-size automobile, they are still something that should be treated and afforded a certain amount of respect. It is better to be overcautious in this regard, than undercautious, when you need it most (and don't have it).

So as far as safety goes, there is a pretty convenient way we can add a shutoff switch. The chair can rotate, and there are switches to ensure it is facing all the way forward or all the way back before driving. So we just need a big NC button wired to those switches. We could also mount switches on the sides so if it collides with a wall, etc., it would shut off.

That is convenient; you should use it.

It is the 55135 Commando one.
It appears to be an inductive joystick, with 6 wires coming out.

Your best bet might be to contact either that company or the powerchair manufacturer (if they aren't one-in-the-same), and let them know what you are planning on doing. Be straightforward and up-front with them about what it is you are trying to accomplish (you might fudge it a bit and say its for a "school science project"); you might also get your parents help on this part.

We called the customer service number, and said we we were making a robot out of one of their wheelchairs, and that we wanted some info on the components used in the wheelchair. The representative sounded interested and thought it was cool, and she gave us the email address of the head engineer!

The representative sounded interested and thought it was cool, and she gave us the email address of the head engineer!

That's great! You rarely see companies that do that; treasure the ones that do!

When you email the guy, just continue to be "up front" with them; tell him your plans on using the arduino, perhaps point him to this thread and the site. He'll probably be interested and intrigued. Make sure to ask him about the specs and maybe the pinout of any connectors (from the joystick and from any other areas); you might also ask if the connectors are something "standard" - you might be able to purchase the connectors and make your own harnesses (so that if, in the future, you want to return the thing back into a wheelchair - you can easily do it by swapping the cables from your controls to the standard controls).

If you don't understand something he tells you, let him know, and let this thread know too - we may be able to help; hopefully everything will be really straightforward (well, except for maybe the joystick - some of those can be a real pain to figure out)...

Good luck, and keep us posted; you have a very capable platform there for some interesting experiments...

:slight_smile:

@cr0sh Very nice of you to take the time to give this extended advice. Very instructive, I really appreciate it (even though I am not the one who's going to take on this project ;)).

thumbs up :wink: