Interfacing joystick for wheelchair controller

Hello, all.

I'm planning to control a electric wheelchair with my arduino.

I've asked the manufacturer of the joystick for a datasheet, and almost got what I needed.

See image for the supplied diagram I recieved.

Do you have any ideas on what kind of signal / value / function the green sentre tap has?

I guess that its acts like a voltage divider on each axis.

What would be the best way of "acting like a joystick" ?
Maybe a digital pot? Or would you open the box and pwm + filter directly into the controller?

Thanks for any help and ideas.

That is a very strange diagram...

I would bet that with the joystick centered (is it spring-centered?), the resistance across the blue and yellow pair would be around 3.6K ohms; it is probably something to determine that the joystick is centered, would be my guess.

Red and black are obviously your voltage and ground connections, respectively, and the X/Y wiper outputs are blue and yellow, respectively. The weird thing is that center tap.

Personally, if it was me, and I couldn't figure it out easily, I would open that sucker up and cut the center tap lines away from the pots; it would make interfacing it easier.

I tend to wonder if it doesn't act as some kind of "mixing" system, to easily and cheaply translate the joystick position into something that makes sense to a differential drive controller (as found on an electric wheelchair); I kinda think that is what it is for.

If we presume that the X pot is for forward/reverse movement, and the Y pot controls left/right speed of the wheels (probably the reverse of what is actually going on, but it shouldn't matter for the discussion); then if the X pot was slammed full "up" (toward the + voltage), you would see the full speed voltage "level" left/right on the Y axis pot; as the joystick was moved back to center (and beyond), you would see less and less, until you had zero voltage at the "bottom" of the travel.

So, this could be interpreted by the controller to vary the speed of the left and right motor based on where and which quadrant the joystick was positioned in; and the center tap is probably to let the controller know when the joystick is centered (or it is used to calibrate "center").

That's my best guess...

:smiley:

Hello.
The joystick is spring-centered, yes.

I understand (almost all of) the circuit, but its that green center-tap, I'm unsure of..

I dont know if blue and yellow leads are connected internally. The diagram says "near equivalent circuit" - What does that mean?
Maybe theres a whole lot of stuff in there.

Also :
On this other chair that I have, the controller is gone, so I'm planning on making one. I have a few questions about this:

The motor is a pervex 320. It says on the parvex web site, that its a DC servomotor. Does that meen that I need to send servo-pulses to it, or is it just what their called?

The motor have two main leads ( + and - ). An optical encoder (this I found the datasheet for), a brake lever that manipulates something mechanical in the rear end of the motors. But theres also two small leads that goes into the motor, anyone got any ideas of what theese are for? I would prefer if I didnt have to open the motors to find out.

Thanks a bunch!

Looks like the joystick uses a pair of pots. One for forward and backwards and one for left and right.

Have you put a DMM on it to see what kind of resistance or voltage you may be getting from the center tap. It may just be a grounding strap for the casing of the pots.

The diagram is a near equivalent circuit because there are probably different versions of the control stick that use different pot and resistor values based on the controller the chair uses.

If you found the data sheet on the motor then give us the link.

The motor is called a servo motor because it has the encoder on it to provide feedback (servo) positioning; other than that, it should be a standard DC gearmotor (which pulls a fair amperage; you will need to either hack the controller for it to control it, or build/buy a custom controller if you are planning on using the Arduino for control; it will likely be cheaper to hack or buy a controller - controllers for large scale motors like these aren't easy to design).

I suspect that joy stick outputs bipolar voltages. The center tap is most likely common ground for both positive and negative voltage sources. The + and - are bipolar voltages and the X/Y outputs can vary from some maximum positive valve, through ground and on to some maximum negative value. Just a hunch.

Lefty

I'll use my multimeter on the centre tap tomorrow!

The datasheet for the motor is here : http://www.parvex.com/fichesmot/english/rx/rx320e.pdf

The encoder thats attached to them : HEDL-5xxx HEDL-9xxx Encoder Line Drivers

The controller has left the building, and all the useful components are de-soldered, and in storage =)

Received a package from digikey with a whole bunch of power MOSFETS, so I think I have to try at least..

I'll come back to you guys tomorrow with my findings regarding the joystick. Maybe a picture of my collection of chairs also :smiley:

$Lefty :
In that case there will be a certain positive voltage from green to red, and an equal negative voltage from green to black, or what?

Thank you and good night!

Andreas

[edit]In that case there will be a certain positive voltage from green to red, and an equal negative voltage from green to black, or what?
[/edit]

That's what I'm thinking. Put a DC volt meter's black lead to the green lead and then measure the red and black wires with the meter's red lead to see if you have equal but opposite polarity voltages.

Lefty

Allright! Got an email from the makers, and they said :

"Resistor value as per drawing 1.8k[ch8486], Centre tap is 6v nominal, Vs is 12v."

glad thats out of the way.

Anyone that has any suggestions as to how simulate this joystick with my arduino?

Maybe a digital pot?
Or just pmw + RC filter?

You could probably do either, though I don't know if/how that center-tap strangeness would work out (maybe you could get by without it?). What is the ultimate goal of the project? Why are you needing to simulate the joystick?

THe center tap is the referance for half the voltage in, IE: Nutral.

To simulate this all you need to do is use the PWM out, But you need to modify the PWM out to be higher frequincy, to do that is straight foward.

Use PWM pins 5 and 6;
TCCR0B = TCCR0B & 0b11111000 | 0x01;

http://www.arduino.cc/playground/Main/TimerPWMCheatsheet

Using this is good enough to fool my sound card into thinking it is an analog voltage output.
If it is not, Add an RC Low pass filter circut to smooth out the pwm.

Why do I need to up the frequency?

The arduino will never be able to output a voltage of 12v by itself, think I need a mosfet or a transistor.

The ultimate goal for this is to make a Segway-like balancing scooter.

I'm using the 5DOF from sparkfun. I also have the wii motion+ here somewhere.

Right now I'm trying to make / copy / design a H-bridge controller.

Does anyone know how to securely parallell mosfets together? I've read about people that has done just this, some of them had one of the mosfets blow, but others have no problems.

Going out to the garage now to try to make some progress..

Thank you
Thank you.

Ok, just scoped the joystick.

Found out that X and Ymax = 6,750v and that X and Ymin = 5,250v

Found a identical broken joystick, and opened it..
Inside, there was an ic, a ton of smd-components and some coils.

Something thats ment to be fitted in an airplane, i guess, has to be
"advanced".

How can I smooth the pwm signal from my arduino into a real analog voltage?

Hello all!

Experimented a bit more on the controller.
It seams that when joystick is centered (x = 6v) and you push the joystick to the left or right to turn, the controller turns the wheels in opposite direction. But when you are reversing og going forwards the wheels just turn with different speed.

I think I need to make something that makes X and Y input to be 6v when not in use ( or if the arduino dies ) Anyone got any ideas?

Maybe something like this?

The IC's are digital pots, and the switches are NO- and NC-relays