Elektronisk servo

hey

Jeg er i gang med et projekt hvor en mikroprocessor skal styre 6 små servo'er (Futaba 3002 Radio Controlled). Jeg har det egentlig til at virke ganske godt med PCM signalet (Puls Code Modulation). 1 ms = venstre, 1.5 ms = midte og 2 ms = højre. Men der er et lille problem med at processoren ikke er hurtig nok til at opdatere. Den kan kun sende pulstoget ca. hver 80 ms og den skulle gerne ned på 15 ms for at servoerne ikke står og vibrerer når man ændrer position. Så var det jeg tænkte om en digital servo mon kan ændre på det, således at den ikke står og vibrerer når pulstoget kommer med lidt længere interval? Er der nogen som har betegnelsen på en servo når nu Futaba 3002 ikke dur´?

--
Tom

Unofficial FORD site Denmark
http://members.tripod.com/FORD_DK
Reply to
Tom
Loading thread data ...

ned

6 servoer af 2 msec giver 12 msec, hvorfor kan du ikke få mikroen til at køre hurtigt nok?

Du styrer det selvfølgelig via en hardware timer og interrupt?

Reply to
HKJ

Den skal læse 6 analoge indgange og konvertere signalerne. Så skal den opdatere et VFD display tja og så har den bare ikke mere tid tilbage. Det gør ingen forskel om det er interrupt eller ej. Processoren tager bare så lang tid før den har læst indgangene. Jeg gider dårligt prøve mere at optimere i softwaren eller smide hurtigere krystaller i (nu kører den med 4 MHz). Så hvis der findes en digital servo som kan leve med 80 ms mellem hver puls, ville mit projekt være færdig nu.

-- Tom

Reply to
Tom

Vi programmere åbenbart ikke på samme måde, det du beskriver der, ville ikke give mig nogle problemer. Jeg ville bruge en hardware timer og interrupt til servoerne, resten vil jeg klare uden interrupt.

puls,

Jeg kender ingen, men måske kan du modificere en almindelig servo, så den holder positionen længere (Jeg har ikke studeret kredsløbet i en servo, så jeg ved ikke om det er muligt).

Reply to
HKJ

Hej Tom

Jeg bruger selv chippen M51660L til et lignende formål. Jeg mener at have læst et sted, at den bør have en repetitionstid på mellem 40 og 70 ms, men der står ikke noget om det i det datablad, jeg har. Men du kan jo prøve at søge på google.

Mvh. Torsten Lund

Tom schrieb:

Reply to
Torsten Lund

Hej Tom,

Hvis du mener at det er et problem at nå det hele, kunne du da bruge en lille controller til servoerne og så kommunikere med den via I2C ell. lign. Den ekstra processor skal så blot gentage positionen indtil kontraordrer kommer.

--
Venlig hilsen,
Søren
              * If it puzzles you dear... Reverse engineer *
LM317-PSU-Designer v1,0b
Reply to
Søren

ikke

jeg

Tak til alle.

Har fået det til at virke med at køre interrupt med det signal som skal sendes afsted. Det bliver så bare kun et nyt signal hver 4. gang fordi A/D konverteren ikke er hurtig nok. Men en ny værdi 80 ms er også nok.

-- Tom

Reply to
Tom

Hehe ... det lyder som en velkendt løsning :o) det måtte jeg også gøre ... mit problem var bare at jeg ikke havde gennemtænkt min programmering og jeg idag kan opdatere over 8 servoer med samme tidsbelastede servo i samme processor som alt andet kører i ... jeg skiftede også fra 2 processorere til

1 efter jeg fik skrevet koden smart men ok ... man lærer af sine dumheder ....

Det er så nemt at sige at processoren ikke har tid men når man tænker over det er f.eks. 2mS jo uhyggeligt mange tusinde instruktioner :) lige som det altid er nemt at give compileren skylden hvis man kæmper med et SW problem :o)

m.v.h. l. madsen

Reply to
Lasse Madsen

Hej Lasse,

Også i den grad ! ;)

Enig... Det er slet ikke samfundets skyld :)

--
Venlig hilsen,
Søren
              * If it puzzles you dear... Reverse engineer *
LM317-PSU-Designer v1,0b
Reply to
Søren

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.