Searching \ for '8 servo on f84' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/io/servo/index.htm?key=servo
Search entire site for: '8 servo on f84'.

Truncated match.
PICList Thread
'8 servo on f84'
2000\03\10@095613 by Soon Lee

flavicon
face
Hi everyone

   anyone have try writing a asm code for 16f84 to control 8 servo at one
time and the timing is serial in using rs232??

regards

soon lee

2000\03\10@112810 by Philippe

flavicon
face
At 22:58 10/03/00 +0800, you wrote:
>Hi everyone
>
>    anyone have try writing a asm code for 16f84 to control 8 servo at one
>time and the timing is serial in using rs232??

Few years ago I have designed a FM receiver with a PIC16C57. Perhaps you may
use the program to control your servo !
In all case, keep always in mind:
       - servo use analog signal to maintain a position,
       - microcontroller, whatever the speed, will make a digital
quantification, in that case a time quantification.
Such quantification reduce considerably the servo precision, the FM receiver
I have design use a 10us time step, so for a std. servo it reduce the precision
to 1000/10, 100 possible position.
Today you may use a PIC at 20Mhz, so perhpas you can reach a 2us time base. But
this will reduce servo precision to 500 positions. Depending what you are
searching to control, this may be usefull or not ... In addition you will be
surely obliged to add some digital filtering tio avoid jitter in servo position.
In my mind, the better way is still to keep only motor, bridge and
potentiometer. A 12 bit ADC and a PWM control + a good fuzzy or PID algorithm
will give better result.

Regards,
       Philippe.

 +--------------------------------------------------------+
 |  Virtual Micro Design                                  |
 |  Technopole Izarbel,                                   |
 |  64210 BIDART                                          |
 |  FRANCE                                                |
 |                                                        |
 |  Phone: ++33 559.438.458   Fax: ++33 559.438.401       |
 |                                                        |
 | E-Mail: spam_OUTp.techerTakeThisOuTspamvmdesign.com                          |
 | URL:    http://www.vmdesign.com                        |
 +--------------------------------------------------------+

2000\03\10@114025 by Andrew Kunz

flavicon
face
I would recommend using a 28-pin PIC, using the CCP and PWM modules.  WIth a 4
MHz system you can easily do a 1uS resolution to the servo(s).  Been there, done
that.

Andy








Philippe <.....ptecherKILLspamspam@spam@VMDESIGN.COM> on 03/10/2000 11:22:58 AM

Please respond to pic microcontroller discussion list <PICLISTspamKILLspamMITVMA.MIT.EDU>








To:      .....PICLISTKILLspamspam.....MITVMA.MIT.EDU

cc:      (bcc: Andrew Kunz/TDI_NOTES)



Subject: Re: 8 servo on f84








At 22:58 10/03/00 +0800, you wrote:
>Hi everyone
>
>    anyone have try writing a asm code for 16f84 to control 8 servo at one
>time and the timing is serial in using rs232??

Few years ago I have designed a FM receiver with a PIC16C57. Perhaps you may
use the program to control your servo !
In all case, keep always in mind:
       - servo use analog signal to maintain a position,
       - microcontroller, whatever the speed, will make a digital
quantification, in that case a time quantification.
Such quantification reduce considerably the servo precision, the FM receiver
I have design use a 10us time step, so for a std. servo it reduce the precision
to 1000/10, 100 possible position.
Today you may use a PIC at 20Mhz, so perhpas you can reach a 2us time base. But
this will reduce servo precision to 500 positions. Depending what you are
searching to control, this may be usefull or not ... In addition you will be
surely obliged to add some digital filtering tio avoid jitter in servo position.
In my mind, the better way is still to keep only motor, bridge and
potentiometer. A 12 bit ADC and a PWM control + a good fuzzy or PID algorithm
will give better result.

Regards,
       Philippe.

 +--------------------------------------------------------+
 |  Virtual Micro Design                                  |
 |  Technopole Izarbel,                                   |
 |  64210 BIDART                                          |
 |  FRANCE                                                |
 |                                                        |
 |  Phone: ++33 559.438.458   Fax: ++33 559.438.401       |
 |                                                        |
 | E-Mail: EraseMEp.techerspam_OUTspamTakeThisOuTvmdesign.com                          |
 | URL:    http://www.vmdesign.com                        |
 +--------------------------------------------------------+

2000\03\10@122011 by jamesnewton

face picon face
Scott Edwards
http://www.seetron.com

http://204.233.101.40/robots/ssc1684.html
16F84 serial 6 servo controller. No jitter, 9600 baud, back to back updates.

And other links at:
http://techref.massmind.org/io/servo

---
James Newton jamesnewtonspamspam_OUTgeocities.com 1-619-652-0593
http://techref.massmind.org NEW! FINALLY A REAL NAME!
Members can add private/public comments/pages ($0 TANSTAAFL web hosting)


-----Original Message-----
From: pic microcontroller discussion list
[@spam@PICLISTKILLspamspamMITVMA.MIT.EDU]On Behalf Of Soon Lee
Sent: Friday, March 10, 2000 06:58
To: KILLspamPICLISTKILLspamspamMITVMA.MIT.EDU
Subject: 8 servo on f84


Hi everyone

   anyone have try writing a asm code for 16f84 to control 8 servo at one
time and the timing is serial in using rs232??

regards

soon lee

2000\03\10@122014 by Soon Lee

flavicon
face
sorry but how do you do that?
me still new to pic
use timer interupt is it?

regards
----- Original Message -----
From: Andrew Kunz <RemoveMEakunzTakeThisOuTspamTDIPOWER.COM>
To: <spamBeGonePICLISTspamBeGonespamMITVMA.MIT.EDU>
Sent: Saturday, March 11, 2000 12:38 AM
Subject: Re: 8 servo on f84


> I would recommend using a 28-pin PIC, using the CCP and PWM modules.  WIth
a 4
> MHz system you can easily do a 1uS resolution to the servo(s).  Been
there, done
{Quote hidden}

<RemoveMEPICLISTspamTakeThisOuTMITVMA.MIT.EDU>
{Quote hidden}

one
> >time and the timing is serial in using rs232??
>
> Few years ago I have designed a FM receiver with a PIC16C57. Perhaps you
may
> use the program to control your servo !
> In all case, keep always in mind:
>         - servo use analog signal to maintain a position,
>         - microcontroller, whatever the speed, will make a digital
> quantification, in that case a time quantification.
> Such quantification reduce considerably the servo precision, the FM
receiver
> I have design use a 10us time step, so for a std. servo it reduce the
precision
> to 1000/10, 100 possible position.
> Today you may use a PIC at 20Mhz, so perhpas you can reach a 2us time
base. But
> this will reduce servo precision to 500 positions. Depending what you are
> searching to control, this may be usefull or not ... In addition you will
be
> surely obliged to add some digital filtering tio avoid jitter in servo
position.
> In my mind, the better way is still to keep only motor, bridge and
> potentiometer. A 12 bit ADC and a PWM control + a good fuzzy or PID
algorithm
{Quote hidden}

2000\03\10@123639 by Andrew Kunz

flavicon
face
>sorry but how do you do that?
>me still new to pic
>use timer interupt is it?

Create a PLD with a 3-bit input (0-7, to select which servo you want to
control).  The the PIC to generate outputs at a fixed 3mS slot per channel (3x8
= 24 mS per pass, a little slow but still fine).

In each 3mS pass, have it output the 1.0-2.0mS width desired.  Start the pulse
_after_ you select the servo channel (I used a 256uS interrupt period, that way
I was sure to give each servo 500uS of 0V before outputting the pulse, and still
had lots of time at the end (from 2.5mS to 3.0mS) to set up for the next servo.

Interrupts are not necessary, but you _will_ want to use the interrupt flags to
know when to do things.

Mine was all in C, too.

Andy

2000\03\10@140046 by Rob R

flavicon
face
While doing all that dont you still have to check the serial pin before each pass, so won't the servo's run choppy because of this??  8 is a lot to be running and updating as well as checking a serial input all under 20ms refresh rate that most servo's have.  Ive seen a project that does exactly this but uses only 6 outputs for 6 servo's to combat the time delays and keep things running smooth.  That is if you are using a 4mhz chip, a 10mhz would have more time to do things since instructions execute faster. ; )

rob

On Fri, 10 Mar 2000 12:34:40 -0500 Andrew Kunz <RemoveMEakunzEraseMEspamEraseMETDIPOWER.COM> wrote:
{Quote hidden}

Send someone a cool Dynamitemail flashcard greeting!! And get rewarded.
GO AHEAD! http://cards.dynamitemail.com/index.php3?rid=fc-41

2000\03\10@142349 by Andrew Kunz

flavicon
face
No, the parts we're talking about all have serial ports in them.  I used an
interrupt to process the serial stream.  It really is a "no brain" project if
you have the peripherals in hardware.  I did mine back before I got a brain.

Andy

ps.  "If I only had a heart..."










Rob R <RemoveMEelektrikmanspam_OUTspamKILLspamDYNAMITEMAIL.COM> on 03/10/2000 02:00:09 PM

Please respond to pic microcontroller discussion list <RemoveMEPICLISTTakeThisOuTspamspamMITVMA.MIT.EDU>








To:      EraseMEPICLISTspamspamspamBeGoneMITVMA.MIT.EDU

cc:      (bcc: Andrew Kunz/TDI_NOTES)



Subject: Re: 8 servo on f84








While doing all that dont you still have to check the serial pin before each
pass, so won't the servo's run choppy because of this??  8 is a lot to be
running and updating as well as checking a serial input all under 20ms refresh
rate that most servo's have.  Ive seen a project that does exactly this but uses
only 6 outputs for 6 servo's to combat the time delays and keep things running
smooth.  That is if you are using a 4mhz chip, a 10mhz would have more time to
do things since instructions execute faster. ; )

rob

On Fri, 10 Mar 2000 12:34:40 -0500 Andrew Kunz <RemoveMEakunzKILLspamspamTDIPOWER.COM> wrote:
{Quote hidden}

still
>had lots of time at the end (from 2.5mS to 3.0mS) to set up for the next servo.
>
>Interrupts are not necessary, but you _will_ want to use the interrupt flags to
>know when to do things.
>
>Mine was all in C, too.
>
>Andy
>

Send someone a cool Dynamitemail flashcard greeting!! And get rewarded.
GO AHEAD! http://cards.dynamitemail.com/index.php3?rid=fc-41

2000\03\10@143801 by Dan Creagan

flavicon
face
Your link to the servo controller below is now out of date. We are changing
corporate ISPs and we are in the throws of moving servers around.  We will
do that twice. The new interim <sigh> number  for my webpage is:

http://192.195.23.217/robots/ssc1684.html

Dan Creagan
Robots and Stuff at: http://192.195.23.217/robots/sigrobots.html

{Original Message removed}

2000\03\10@153426 by William Chops Westfield

face picon face
   I would recommend using a 28-pin PIC, using the CCP and PWM modules.
   WIth a 4 MHz system you can easily do a 1uS resolution to the
   servo(s).  Been there, done that.

1uS?  Why?  You need a pulse somewhere between 1 and 2 ms, 20 to 100
times a second or so, right?  1us would be 10 bits of precision, which
seems very many bits for something corrosponding to a relatively small
amount of physical movement.  (This is a serious question, BTW...)

Based on the recent PWM discussions, it shouldn't be difficult even on
a 16F84, even without any HW support for PWM.  As someone else pointed
out, RC servo timing is explicitly designed to that the servos can be
driven serially (output 1-2ms pulse on A, taking 2ms total, procede to
B, etc...)

BillW

2000\03\10@154854 by David VanHorn

flavicon
face
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



- From what I've seen, they actually have about 6 bits of resolution.
They do have a definite deadband, which keeps them from forever hunting
around and wasting batteries. I did an 8 bit version, and I found that
randomly altering the two LSB had no effect at all.

In my version, I had 125nS resolution on the counter. pulse width
programmable mins, and maxes. (Some servos want 400uS min!) The routine
works out how large each bit is, relative to (max-min) / 255 for each
servo, and sets a timer to count down to that time, starts the servo pulse,
and exits.  The ISR turns off the servo, and increments the servo pointer
to the next servo (I had eight) and enables the generation of the next pulse.

No jitter that way.

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.2 for non-commercial use <http://www.pgp.com>

iQA/AwUBOMmJU4FlGDz1l6VWEQIcGACgvXNi8UUXyJnwwEQ6aPvOL5DaJ9cAoLwg
cwYIYSLOrS+Hpwf55JEj0P/a
=pDjH
-----END PGP SIGNATURE-----

2000\03\10@155910 by Andrew Kunz

flavicon
face
Kelly,

"Because I could."

My target market was the high-precision Airtronics servos, which have 1/2uS
resolution and pretty close to it for positional repeatability (at least the
ones these guys were using).  1uS was a compromise - it was easy enough to do,
and met the customer's positional requirements.  I believe that Multiplex has
equal or better servos.

The reason I did the servos in 3mS chunks was because we had problems with
skewed timing.  The PWM module would start the pulse before I could switch the
GAL over to the new servo, creating a small spike on Servo N that belonged to
Servo N+1.

I also had the liberty of doing a DSP-type algorithm for a S.M.A.R.T
(http://www.fmadirect.com) receiver.  The thing had to analyze an incoming pulse train
to verify that it belonged to the intended transmitter, update the servos with
the correct positions, and other stuff.  Fortunately it was running at 10.7 MHz
(we used the IF crystal).  This project was part of the reason we had our
falling out with FMA.  Luckily I still own the rights to all the neat stuff I
developed.

Andy

2000\03\10@160108 by Andrew Kunz

flavicon
face
You must have been using pretty bad servos.

Andy








David VanHorn <dvanhornSTOPspamspamspam_OUTCEDAR.NET> on 03/10/2000 06:46:27 PM

Please respond to pic microcontroller discussion list <spamBeGonePICLISTSTOPspamspamEraseMEMITVMA.MIT.EDU>








To:      KILLspamPICLISTspamBeGonespamMITVMA.MIT.EDU

cc:      (bcc: Andrew Kunz/TDI_NOTES)



Subject: Re: 8 servo on f84








-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



- From what I've seen, they actually have about 6 bits of resolution.
They do have a definite deadband, which keeps them from forever hunting
around and wasting batteries. I did an 8 bit version, and I found that
randomly altering the two LSB had no effect at all.

In my version, I had 125nS resolution on the counter. pulse width
programmable mins, and maxes. (Some servos want 400uS min!) The routine
works out how large each bit is, relative to (max-min) / 255 for each
servo, and sets a timer to count down to that time, starts the servo pulse,
and exits.  The ISR turns off the servo, and increments the servo pointer
to the next servo (I had eight) and enables the generation of the next pulse.

No jitter that way.

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.2 for non-commercial use <http://www.pgp.com>

iQA/AwUBOMmJU4FlGDz1l6VWEQIcGACgvXNi8UUXyJnwwEQ6aPvOL5DaJ9cAoLwg
cwYIYSLOrS+Hpwf55JEj0P/a
=pDjH
-----END PGP SIGNATURE-----

2000\03\10@160934 by Greg Hartung

flavicon
face
Since we're on the servo subject, do I need resistors on the supply voltage to
the servos or just straight 6v?

David VanHorn wrote:

{Quote hidden}

2000\03\10@161530 by David VanHorn

flavicon
face
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

At 03:57 PM 3/10/00 -0500, you wrote:
>You must have been using pretty bad servos.

Standard futaba stuff. That only works out to about a 2% deadband, I wasn't
all that suprised.
-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.2 for non-commercial use <http://www.pgp.com>

iQA/AwUBOMmP/4FlGDz1l6VWEQICpwCeL96P1L5XxegQyty7myy75gE6ndYAoLv6
CVSU1oOFrcm5xlFnO/0I4tNB
=99AV
-----END PGP SIGNATURE-----

2000\03\10@161807 by David VanHorn

flavicon
face
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

At 02:08 PM 3/10/00 -0700, you wrote:
>Since we're on the servo subject, do I need resistors on the supply
voltage to
>the servos or just straight 6v?

6V is fine, I wouldn't put any resistors in the power leads, it just slows
the servos down.
Do make sure that when slewing all the servos, you don't crash the processor!
Separate supplies for development and debug, then work out the power
problem as the separate issue that it is.

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.2 for non-commercial use <http://www.pgp.com>

iQA/AwUBOMmQg4FlGDz1l6VWEQLFJACdFbKdvOAcq9p69dwhzd5rLwuAVpsAoNwY
fgAEKlIkKFS/WG263RNTlUzW
=njes
-----END PGP SIGNATURE-----

2000\03\10@161945 by Andrew Kunz

flavicon
face
Futaba isn't what it used to be, but they still beat some of the others.  Their
high-end stuff isn't bad.

Andy

More... (looser matching)
- Last day of these posts
- In 2000 , 2001 only
- Today
- New search...