Main Site Documentation

Syncronous Servo Movement with Servo Shield


#1

Having obtained the servo controller shield and starting off with the example I’ve noticed 3 things:

  1. The servos don’t all move at the same time (big problem for me)
  2. The servos don’t freeze at the location that I specify (huge problem for me)
  3. The servos don’t actuate the full 180 degrees (won’t even go there)

Thing is when I reset the shield the servos move to the zero position and freeze there. Is there something obvious that I can check that will help me solve these 3 problems mentioned above?


#2

What servos do you use?


#3

Our drivers are there for demonstration purposes only. They can be enhanced in many ways.

For example we use 2400 baud through OutputCompare so you can use the board with any IO but it is better to use a real COM port instead of OutputCompare and use a high baud rates to you can send the commands faster.
This may help you http://www.inexglobal.com/downloads/zx-servo16_e.pdf

With you own drivers, you will be able to send commands fast to they seem synchronous or maybe the board supports synchronous control.


#4

One thing you might check is the timings. I did some servo experiments a bit back, and I noticed that the GHI timings are a tad too wide. In my experiment, I found that the best timings were 410 - 2140 every 20ms. Those timings are what I observed to be a full 180 (NOT a full turn of the servo, mind you).

As for the servos not syncing, this may be an obvious question, but you do have power other than USB connected, right?

The “standard” servo timings are 1-2ms. With these timings,the servo will never go a full 180 degrees.


#5

@ Foekie : I’m using 3 JR Servo DS821 FET digital

@ Chris: yes I am using external power to run the servo shield. I have a battery pack connected with 4 1.5 volt Duracell batteries. I realized early on that amperage is a big deal, and that the 500 miliamps of my adapter wasn’t cutting it. I’ll try modifying the timings and see.

@ Chimpanzee: I relized that 2.4 kbps is a bit slow. However having read the manual for the servo from that manufacturer (I found it right away when I purchased the part), I’m still no closer to understanding how to up the baud rate. I understand that it’s a serial port and that we’re sending textual commands !SC etc etc newline char; but that’s pretty much it. how would I go about using “a real com port” between the fez and the servo?


#6

We use the serial port with GPS drivers and it is also explained in our free ebook