RC Mottagare och servon

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

RC Mottagare och servon

Inlägg av Korken »

Hej alla glada!

Jag har letat lite på google efter en sida där det finns information om hur pulsen ser ut från en RC - 2kanals motagare och hur signalerna ska se ut till ett RC servo.
Om någon vet en bra sida eller dylikt så säg gärna till! :)

//Emil
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Du behöver knappast någon sida, det är väldigt enkelt.

Varje 20 ms kommer det en puls.

Pulslängden varierar mellan 1.0 och 2.0 ms, där 1.5 ms är "mittläget"
och de två andra naturligtsvis är de två ändlägena.

Det som är kritiskt är pulslängden, 20 ms pausen kan variera
lite utan att det spelar någon större roll. Det gör det enklare att
generera pulser från en PIC/AVR, eftersom man kan köra med en
fast (ca) 20 ms paus mellan pulserna oberoende vilken pulsbredd
det råkar vara...

That's it.

Hur många *kanaler* anläggningen har spelar ingen roll alls...
limpan4all
Inlägg: 8457
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Inlägg av limpan4all »

Signalen går vanligen mellan 0 och 6V men troligen fungerar det mellan <2V=låg och >3,5=hög. Servot har 6V
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Nu har jag varit borta från RC-branchen i 30 år, men jag har för
mig att 4.8 V var vanligt drivspänning till servon (d.v.s 4 x 1.2V NiCad cell).

Men det kanske har hänt lite på 30 år... :-)
Användarvisningsbild
Henry
Inlägg: 24636
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Inlägg av Henry »

4.8v är väl nästan lite av en standard kan man säga, men numera klarar dom max 6v utan problem.
limpan4all
Inlägg: 8457
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Inlägg av limpan4all »

Självklart så är det vanligast med NiCd numera men grejorna/"standarden" är konstruerade för att jobba med vanliga brunstensbatterier och då blir matningen över 6V när batterierna är nya.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Ok!

Jag trodde det skulle vara mkt mer avancerat! :)
Bara en fråga, om man inte vill ha den i nått av ändlägena eller mitten typ lite till "höger" kanske vrida det 30*, finns det något speciellt sätt att göra det?

//Emil
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Läs det andra inlägget i tråden igen. :) Sodjan skrev:
"Pulslängden varierar mellan 1.0 och 2.0 ms, där 1.5 ms är "mittläget"
och de två andra naturligtsvis är de två ändlägena."


Dvs 1ms = ena ändläget, (0°). 2ms = andra ändläget, (180º)
1.5ms = Mittpositionen (90º)

Det är faktiskt mycket enklare att styra servon än vad man först tror. (Jag började för 4 dagar sedan och har precis byggt en kamera-styrning.) :)
limpan4all
Inlägg: 8457
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Inlägg av limpan4all »

Om servot arbetsområde är 270 grader och du vill vrida det 30 grader så blir det som följer 30/270=0,1111. Fullt utslag på servot är 1ms så 0,1111*1ms+1ms=1,1111ms eller för 270 - 30grader 1-0,1111*1ms+1ms=1,8889ms
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

När man bygger en servostyrning, så är en av sakerna som man
måste bestämma i förväg, vilken "upplösning" man vill ha.
D.v.s hur många distinkta "steg" vill man ha mellan "full vänster"
och "full höger" (eller vad man nu vill kalla ändlägena).

När det gäller styrning från en uC, så kan t.ex 256 steg (eller lägre) vara
lämpligt, eftersom det ger störst uppösning med enklaste beräkningar
med en 8 bitars uC.

Man behöver aldrig fundera på att köra avancerade beräkningar (med
floating point eller liknande), utan vanlig fixed point (med 8 eller 16 bitar)
räcker bra.

Sen kan man med en uC lägga till trevliga saker som acceleration/retardation
och maxhastighet genom att "rampa" pulsbredden på lämpligt sätt
vid ändringar, Kan vara lämpligt om servot hanterar något (t.ex en
kamera :-) ) med rellativt stor massa, men det är lite överkurs...
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Ok, ja tror jag börjar förstå mig på detta.
Alltså, om man kör med 8bitar så har man från 0-255.
Och om 0° är 1ms och 270° är 2ms så blir det att man delar upp 270° i 256 så får man hur stort steget är och 1ms i 256 så får man hur lång pulsen ska vara (270/256 ~ 1.55 -> 1.55° per bit | 1/256 ~ 0,0039ms -> 1+0,0039ms per steg) så varje bit står för en speciell punkt i vridningen på servot, har jag rätt så långt?

//Emil
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> har jag rätt så långt?

Japp. :-)

Sen får dessa värden "mappas" över till vilka resurser som processorn har.
Man får räkna på olika inställningar av timers o.s.v. och justera
sina värden och steg så att det hela blir enkelt och smidigt i processorn.

Det kanske inte är just 256 steg som är optimalt, vad vet jag, det beror
på vilken timer man väljer att använda (de har lite olika pre/post scalers
t.ex) och naturligtsvis vilka krav man har på hela lösningen...

Det kan ju även finnas externa (mekaniska) krav som gör att man vill
ha en viss upplösning.

Det är inte heller helt nödvändigt att köra med 8-bitar, med *lite* mer
job i koden kan man använda en 16-bitars timer och få betydligt
bättre upplösning. Som sagt, det beror på vilka krav man har.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Det viktiga är ju bara att servot inte hackar fram.

Men, en sak ja har funderat lite på som jag inte förstår mig på är hur man ställer in hastigheten på servot.
Många servon vrider sig väldigt fort men om man inte vill att det ska det så fort kan man ju "hacka" sig fram men om man inte vill att det ska hacka hur gör man då?

//Emil
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Det jag menade var att även om man har ett visst antal fasta "steg",
så kan man i programvaran göra så att pulslängden inte ändras abrupt, utan
med en ramp. Det blir lite mer pyssel i koden.
En linjär ramp är enklast, en ramp med accelaration och inbromsning
är lite mer komplicerat men inte omöjligt (man kanske onödigt... :-) ).

Sen beror det på vad du menar med "hackar". Ett RC servo är i princip
byggt för att så snabbt som möjligt nå ett visst läge. Det finns inget
läge där det går med jämn fart, eller så. Mer än vad man kan simulera
genom att ändra pulslängden "mjukt" från någon
Skriv svar