Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started
Asked — Edited
Resolved Resolved by DJ Sures!

Joystick 2 Control Help

Im trying to get joystick 2 on the game controller to control rotation of the torso on my B9. I currently am controlling rotation by pressing button 4 for counterclockwise and button 2 for clockwise ( I have the commands PWM(D1, 4) for button 4 down and PWM(D1, 0) for button 4 up and PWM(D1, 11) for button 2 down and PWM(D1, 0 ) for button 2 up)

I have the diverse electronics controller connected with only one signal wire and I'm not really sure what mode it needs or is working in as I cannot find any documentation on it.

Experimenting with only the' X axis' Joystick 2 settings, when I assign it o digital port D1, I can get the torso to turn in either direction by changing the values in the 'min' and 'max' box but have no idea why or what its doing.

Anyone have any ideas on what may be happening and how I might set the 'min' and 'max' values to get the joystick to change the direction of rotation?

Would I need to use both the 'x axis' and 'y axis' maybe? I have no idea.

Im just trying to free up buttons so I can assign more MP3 options for this afternoon to interact with the tick or treaters.


Upgrade to ARC Pro

ARC Pro will give you immediate updates and new features needed to unleash your robot's potential!

Can you be more specific on what you're asking?:)
What do the 'min' and 'max' values in the joystick control refer to? Any thoughts on how to set them to get the joystick to do what I describe doing above with buttons 2 and 4?
Can you screenshot what options you are referring too?

There are normally blue question marks everywhere to hover your cursor over. Perhaps I'm missing one of those on something important in the joystick control that no one has noticed yet.
I have buttons 2 and 4 currently configured as shown in the screencap and I would love to be able to have joystick 2 do the same job but not sure what the servo values mean or if that's possible without writing custom script.

User-inserted image

User-inserted image
These are servo values where min=1 and max=180. You can look at it as degrees of servo movement... This is used when the joystick is controlling regular servos....
United Kingdom
Hi. Don't want to highjack this thread, but I have a question relating to joystick 2. Is there a way of changing the servo speed so when joystick 2 is fully pressed in any direction, the servos they are controlling don't turn at maximum speed?

I know that joystick 2 has variable speed positions (the harder you press, the faster the servos spin) but I want to limit the maximum speed, like you would do with the buttons setup that change speeds using servospeed() script, as joystick 2 doesn't seem to have the scripting option (not that I have seen anyway).

Any help on this would be greatly appreciated, as always. :)

@Steve G...If you are talking about 360 deg servos then you would control speed via the modified servo movement panel....
United Kingdom
Sorry, I should have said but forgot to mention it *sleep*. No, I meant 180 deg servos.
Try setting servo speed first in a script...


servoSpeed(D0,3) #speed value 0 - 10
servoSpeed(D1,3) #speed value 0 - 10

United Kingdom

Thanks for that. I'll give it a try tomorrow morning. One question, may be a silly one, where abouts do I enter the servo speed script you supplied above, as I cannot see how or where to enter script in the joystick 2 setup screen when I click the gear icon?
@Steve G... Make a script called init... Make a point to run it at start up of your program... Or, what I do is use the script behind the connection control so it runs automatically when the ezb connects to ARC..

In this script you can set servo position, speed and set variables to default values as well.... etc

For the joystick script... Look at post# 5, second picture... This is where you would enter your button press script or scripts...
United Kingdom
Thanks @Richard. But the picture in post #5 is not relivent to what I'm asking as this is for scripting buttons, and not scripting joystick 2 (unless I'm misunderstanding something).
United Kingdom
Sorry, I think I might be confusing the issue with the 2 posts. *confused*. To recap, Hear I want to set a max speed on servos controlled by joystick 2.

User-inserted image

There is nothing on this page to enter scrips that I can see, only adjust "x" and "y" values.

The other post is regarding joystick buttons, not joystick 2.

User-inserted image
Yeah, ok.... you can't adjust speed there in the joystick control... You need to do that in a generic script that you run once (if you don't want to change the speed after that again)...
United Kingdom
Ok, thanks Richard. That sounds like what I'm after then, as I won't want to change the speed after the initial change, as I want to stay away from the maximum servo speed as it is to quick for what I need it for. So you know what I'm going to ask next, how and where do I do this?
Sorry for letting this go so long.

Not really resolved just haven't had time to try a couple thoughts based on this discussion.

Just wanted Joystick 2 to cause the same action I currently get with buttons 2 set to down = PWM(D1, 11) up = PWM(D1, 0) and button 4 set to down = PWM(D1, 4) up = PWM(D1, 0)