Hi I’m using the servos given in the kit of parts; one to move up and down and another to turn 200 degrees approximately. I plugged one servo into PWM 6 on the Digital Sidecar and one servo to PWM 5. The problem is when I press the button 3 on the joystick, the whole robot turns instead of the servo’s moving the camera. How do I change the programming to move the servos by itself instead of the motors? And the camera is able to track the target.
If your motors are on PWMs 1 and 2, then what you describe is exactly what the 2010 Game Robot Project is designed to do.
To see how to control the camera tilt/pan assembly instead of the drive motors, take a look at the Servo Camera Example (or the slightly more complex Track Two-Color Target Example).
I forgot to mention that we have 4 motors. But yea thanks for the help. But to clarify the camera is not supposed to move at all?
Button 3 is programmed to move the robot’s PWM 1 and PWM 2 (or however you set it up) through the motor controllers, not any servos. You need to add in the code to move the servos yourself if you want that functionality. So yes, by default, the camera is not supposed to move at all.
Where would I go to program the servos to move the camera, thats where I am lost.
See my first answer to your question.
so this is what I did so far:
Under Begin. vi-
- I wired a Servo Open. vi to the element thingy from a Servo RefNum Registry Get.vi which takes all the error outs and makes it into one wire to the main wire out
Under Telop. vi-
- I wired a Servo RefNum Registry Get .vi to the cage.
Now this is how I am confused, suppose if I wanted the camera to move left with 5 (on joysitck) and move right with 6. How would I configure the buttons on the joystick to do so? I want the camera to able to track the target with the motors and the servos. By the way I am keeping button 3 which turns the robot.
I assume you meant Set, not Get.
Under Telop. vi-
- I wired a Servo RefNum Registry Get .vi to the cage.
The “cage”? I don’t understand.
Now this is how I am confused, suppose if I wanted the camera to move left with 5 (on joysitck) and move right with 6. How would I configure the buttons on the joystick to do so?
Servos are controlled by commanding them to a position. This differs from motors which are controlled essentially by setting their speed.
What you could do is get the current position of the servo and run that value into a case block controlled by Button 5. In the “true” case, subtract one from the value; in the “false” case run it straight through. Take the output from the case and run it through another similar case controlled by Button 6. Use the output of the second case to set the new position of the servo.
There are other ways to do this, like using a Comparison Select vi, or converting the Button boolean to an integer and either adding or subtracting. It depends on how concise (and how cryptic) you want to make your code.
I want the camera to able to track the target with the motors and the servos. By the way I am keeping button 3 which turns the robot.
Tracking the target using both motors and servos is a vague requirement. In order for me to help you, I will need to know more precisely what it is you want to do.
So when I meant: “I want the camera to able to track the target with the motors and the servos. By the way I am keeping button 3 which turns the robot.”
I meant that I want the robot to be able to position itself using the tracking system by pressing the button 3 (the very first post I posted on this thread). Not only do I want this feature with the button 3, but I want the camera to be able to move left, right, up, and down. I want these functions to be programmed to buttons on the joystick.
Do you understand a little about what I am trying to do? In general I want the robot to be able to do what it is doing right now and the camera to move up, down, left, right.
P.S. I did mean Set instead of Get. My mistake.
What the robot does right now assumes that the camera is pointing firmly in a constant direction relative to the robot chassis. Manually controlling the camera’s pan and tilt violates that assumption. Please think carefully about what you are asking and how you can resolve the contradictory requirements.