Go Down

Topic: Optimal actuator to move an analog stick (Read 1 time) previous topic - next topic

lollinopil

Dear Members of the Forum,

I need to automatically move the analog stick of a controller but I have no idea about the actuator choose or to build in order to perform this kind of action. As the HW/SW shall not be modified, I am not allowed to modify the hardware or to bypass the XY signals sent by the device.

The actuator would be moved according to an (X,Y) coordinates setpoint, thus a PI/PID controller will be implemented. But right now I am stuck to the actuator choice.

Any help would be appreciated. I searched a lot on the web but found only tematics in the opposite directions, obviously :)

In attachment, an example of the component
Thanks

PaulS

Quote
I need to automatically move the analog stick of a controller
I could guess what that means. but, a picture is worth 1000 words.
The art of getting good answers lies in asking good questions.

PaulS

A hobby servo motor, with appropriate linkage would move that joystick in one direction. A second one would move it in the orthogonal direction.

How accurate do the movements need to be? Just what are you trying to accomplish?
The art of getting good answers lies in asking good questions.

lollinopil

#3
Sep 07, 2017, 02:22 pm Last Edit: Sep 07, 2017, 02:31 pm by lollinopil
I have just draw a draft, attached. The XY space dimensions (the sides of the square) are comparable to a normal production game controller. Thus quite a tiny space.

I need to reproduce an user action on this kind of component and a couple of buttons. The user action (thus XY setpoint) is logged in a text file and these X Y coordinates are unsigned int 8 values. I still need to figure out the accuracy, I would say as first attempt (SETPOINT +/-5) within the log sample time. For this feature I guess I must tune the PI/PID properly.

If you need any other information, just let me know.

vinceherman

#4
Sep 07, 2017, 04:19 pm Last Edit: Sep 07, 2017, 04:20 pm by vinceherman
Please confirm or correct my understanding of what you are asking.
You have an existing user input device with a 2 axis joystick and some buttons.
You want to construct a new device that sits on top of that hardware that physically pushes the buttons and joystick to simulate a user.
You suggest that PID will be necessary.

Is that correct?

Do you have access to the UI hardware?  Can you snap a picture of it and post it here?
You suggest PID.  What will be the input of that PID?  Will you have access to the output data from the UI hardware?

It would be feasible to construct your device using RC hobby servos as @PaulS suggests.  One servo for each button that needs pressed and 2 for the joystick.

inline OPs pics



lollinopil

Please confirm or correct my understanding of what you are asking.
You have an existing user input device with a 2 axis joystick and some buttons.
You want to construct a new device that sits on top of that hardware that physically pushes the buttons and joystick to simulate a user.
You suggest that PID will be necessary.

Is that correct?
Absolutely correct. The device would repeat the user action, and this action have been recorded previously in a LOG file with an adjustable sample rate [ms]. I have already done the logging part.



Do you have access to the UI hardware?  Can you snap a picture of it and post it here?
You suggest PID.  What will be the input of that PID?  Will you have access to the output data from the UI hardware?
I have access to the UI hardware but I absolutely cannot disassemble its part (knob, buttons, etc). Unfortunately I am not allowed to take pictures.
Assuming that I will end up using the X and Y servos, the input of the PID would be the servo positions, the controlled variable would be the X and Y sticks position (I do receive feedback), the set point for every sample time would be the value reported in the LOG.



It would be feasible to construct your device using RC hobby servos as @PaulS suggests.  One servo for each button that needs pressed and 2 for the joystick.
For the buttons I was also evaluating small push pull solenoids. I'll see what's better.
For the XY servos I am so much un-experienced about the linkage / hardware structure. Do you have any reliable guide and shop to retrieve this stuff? Obviously this linkage shall be small enough to manage that stick.

Many thanks for your help!

vinceherman

#6
Sep 07, 2017, 07:19 pm Last Edit: Sep 07, 2017, 07:19 pm by vinceherman
For the XY servos I am so much un-experienced about the linkage / hardware structure. Do you have any reliable guide and shop to retrieve this stuff? Obviously this linkage shall be small enough to manage that stick.
This is where pictures would help, but you mentioned the no photo limitation.
Is the joystick of the style that you posted in your original post?

If I were trying to physically/programatically move that, I would want to have linkage that would be relatively slop free.I would want to fashion a clip that would attach to that thumb pad that would allow linkage attachment.

Let me see if I can knock up a quick image with sketchup

vinceherman

#7
Sep 07, 2017, 11:33 pm Last Edit: Sep 07, 2017, 11:50 pm by vinceherman
Well, I uploaded it to thingiverse.
Good 3D viewer there.  But here is a pic to be seen locally.



The idea is that this can slip over the thumb pad and give the 2 servos a place to attach using ball links, a known slop free solution. (at least much lower slop that just wires through holes)



Edit: I should probably mention that this will produce slightly non-linear results.  Changes in the X axis will have some affect on the Y value and vice versa.  This non-linearity can be reduces with longer rods between the servo and the joystick.
It could likely be mapped out with some math (trig).
It might be handled with PID.

dougp

Probably extreme overkill but, what about a robot?

lollinopil

Hi douggp, yes that's overkill and also I have cost constrains. Thanks anyway for the suggestion!

Vinceherman, so many thanks for your time! Yes, the stick style is the same of the example, thus your assumption is correct. Attached is my understanding of your solution. Let me know if it matches your idea.

vinceherman

#10
Sep 08, 2017, 04:05 pm Last Edit: Sep 08, 2017, 04:13 pm by vinceherman
OPs photo


Almost what I had in mind.  Forgive my MS paint editing, but here is more what I was thinking.

MarkT

inline OPs pics



Those thumbsticks are very sensitive, perhaps a resolution of <0.5mm, this puts tough demands
on any mechanical linkage.  It might be worth considering using springs to apply a force control
rather than position - this makes the linkage design far less critical too.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

vinceherman

@lollinopil,
The picture of the joystick you posted looks very similar to the Sparkfun Thumb Joystick.
Do you know that this is the one used on your UI device?

I see that in addition to its 2 axis pots, it has select button functionality.
Is this one of the button clicks that you need to be able to automate?

If so, we are going to have to do some rethinking.

But please do confirm whether you know this is the joystick in use on your device.  And if not, how close it looks to the device used.


lollinopil

@MarkT - Thanks for your suggestion. Is it possible to have a quick draft of the spring force control? I am not able to visualize this alternative linkage system.

@Vince - I cannot be 100% sure that it is the same part, but it does have the same dimensions and functionalities. And yes, it does have the integrated button. Sorry I forgot about that, I was too much focusing on the XY position control.

vinceherman

So, XYZ where Z is the joystick button press.
Is your task just that one control or are there other buttons/joysticks?
I am just trying to work through the physical configuration in my mind.




Go Up