20 servon, val av komponenter

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
ghost_rider
Inlägg: 2211
Blev medlem: 26 maj 2008, 21:48:15
Ort: Genarp

20 servon, val av komponenter

Inlägg av ghost_rider »

Har tidigare tänk att jag skulle styra mina 18-20 servon med ett atmel168 och två tlc5940 chipp. Dock verkar det som att det inte kommer att funka pga att arduinochippet inte stödjer mer än 12 servon.
Har då kollat på följade lösningar.
ArduinoMega som stödjer upp till 48 servon
atmel168+ scc micro controller (som verkar vara det bästa alternativet)
Fulmekka tlc +kod ?

Själv hittade jag http://www.pololu.com/catalog/product/207 på ebay för ett fördelsaktigt pris.
Vad tror folket? Vet att vi har nån robotnörd här inne :)
eqlazer
Inlägg: 923
Blev medlem: 22 september 2007, 13:53:45
Ort: Göteborg

Re: 20 servon, val av komponenter

Inlägg av eqlazer »

En m168 borde väl kunna styra 24 servon? En per utgång och då använda mjukvaru-PWM.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: 20 servon, val av komponenter

Inlägg av bearing »

Jag tror att man ganska enkelt kan göra servosignalen i mjukvara i en AVR, och således styra ett servo per ledig I/O.

Det är ju en ganska långsam signal med period på 20 ms och längd på 1 ms. Ifall AVR:en körs på 20 MHz blir 1 ms 20000 klockcykler. Om mjukvaran ger ett jitter på ett tiotal klockcyckler tror jag inte det gör något.
Användarvisningsbild
ghost_rider
Inlägg: 2211
Blev medlem: 26 maj 2008, 21:48:15
Ort: Genarp

Re: 20 servon, val av komponenter

Inlägg av ghost_rider »

men går det att få till exakta rörelser?
Alla de projekt jag har kollat på använder sig utav ett eller flera Pololu controllers just för den anlednigen att de vill kunna styra hastighet,gradantal osv. Men det är kanske en ren programerings fråga?
Användarvisningsbild
Icecap
Inlägg: 26658
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: 20 servon, val av komponenter

Inlägg av Icecap »

Det är uteslutet en programmeringsfråga!

Jag har ett projekt på min hemsida med en PIC som kan styra 12 RC-servo. Varje servo har en variabel i minnet som "spelas" upp och det fungerar skitbra. Att expandera detta till 24 kanaler är knappast ett problem, finns det 2 timers som kan användas kan man ha dom till att klara 12 vardera.

Sedan kan mjukvaran "trilla" på variablerna som det behövs, det klarar den enkelt.

Så själva pulsningen sköts helt autonomt av en (eller två) timer(s) som "spelar upp" värden, sedan kan huvudprogrammet sköta ändringar av variabler helt efter eget tycke.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: 20 servon, val av komponenter

Inlägg av sodjan »

> men går det att få till exakta rörelser?

Vad är din definition av "exakt" ?
Användarvisningsbild
ghost_rider
Inlägg: 2211
Blev medlem: 26 maj 2008, 21:48:15
Ort: Genarp

Re: 20 servon, val av komponenter

Inlägg av ghost_rider »

Ok. Exakta rörelser menade jag att servona rör sig t.ex 20grader i en repetion av 10ggr o att det skulle hamna på samma ställe, men jag kom senare på att det handlar nog mer om kvaliteten på servot än min begränsade programmering ?. Dock
så har jag inte studerat koden för Pololu, så det går kanske att fixa på annat sätt. Tänkte, baserat på det jag har läst att ett pololu chip är 'lättare' att komma igång med.
Användarvisningsbild
Icecap
Inlägg: 26658
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: 20 servon, val av komponenter

Inlägg av Icecap »

Pulserna i sig har mycket hög repetitionsnoggrannhet så det lär vara en fråga om servoernas kvalitet helt enkelt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: 20 servon, val av komponenter

Inlägg av sodjan »

OK. Du vet säkert vad du menar, men notera att begreppet
"samma ställe" har samma problem som "exakt"... :-)
Båda begreppen måste omsättas i "% av fullt utslag" eller
något liknande konkret för att kunna tas ställning till. D.v.s är
"inom 1% av fullt utslag" detsamma som "samma ställe" ?
(Du behöver inte svar, det vara bara ett exempel...)
Gimbal
Inlägg: 8687
Blev medlem: 20 april 2005, 15:43:53

Re: 20 servon, val av komponenter

Inlägg av Gimbal »

Har för mig att du kan få ut 32st servo pulser med 16 bitars upplösning (som genereras av hårdvaran. dvs, inget svaj alls i pulserna), med en atmega168 och 4st 74237 kretsar. Det var ett tag sedan jag pysslade med det och minnet är lite svajigt.

Nämde tekniken i en äldre post, se http://elektronikforumet.com/forum/view ... 37#p602122
Användarvisningsbild
ghost_rider
Inlägg: 2211
Blev medlem: 26 maj 2008, 21:48:15
Ort: Genarp

Re: 20 servon, val av komponenter

Inlägg av ghost_rider »

Hur är det med förflyttning av flera servon simultant?
Sist jag höll på med servon så fick jag bara ett servo att röra sig per gång. Men det var ngt pga av min bristfälliga kodning.
Användarvisningsbild
Icecap
Inlägg: 26658
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: 20 servon, val av komponenter

Inlägg av Icecap »

Det är helt säkert ett kodningsfel! Med en (eller fler) timer-ISR till att skicka ut pulserna är det bara att ändra värdet som motsvarar deras position, sedan kör resten automatisk.
Gimbal
Inlägg: 8687
Blev medlem: 20 april 2005, 15:43:53

Re: 20 servon, val av komponenter

Inlägg av Gimbal »

ghost_rider skrev:Hur är det med förflyttning av flera servon simultant?
Sist jag höll på med servon så fick jag bara ett servo att röra sig per gång. Men det var ngt pga av min bristfälliga kodning.
Inga problem. Pulslängden laddas hela tiden om inför nästa puls (en rad i irq-rutinen) så alla positioner kan ändras från puls till puls.

Edit, var visst ungefär vad icecap skrev.
Användarvisningsbild
ghost_rider
Inlägg: 2211
Blev medlem: 26 maj 2008, 21:48:15
Ort: Genarp

Re: 20 servon, val av komponenter

Inlägg av ghost_rider »

ah okej.
Men en sista fråga, varför stödjer det nya servo biblioteket bara upp till 12 servon? Är det bristen på PWM pins? http://www.arduino.cc/en/Reference/Servo
Användarvisningsbild
Icecap
Inlägg: 26658
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: 20 servon, val av komponenter

Inlägg av Icecap »

Om du har 12 servon som alla kör med ytterställning (2ms) blir PRT 2ms * 12 = 24ms. Man brukar att säga att standard bör vara runt 20ms ± något så 12 st är väl ganska lagom.

Och man använder väl knappast ett PWM-modul till detta, man använder en (eller fler) timer!

Med en Renesas M16C med 120 pinnar kan jag nog fixa mjukvaran att styra runt 80 st servon om det behövs.

Hela idéen med timer-ISR är att "huvudprogrammet" bara har en tabell där det petar in vilka positioner servon ska ta, interrupt-programmet ser sedan till att skapa pulserna enl. dessa värden och huvudprogrammet kör bara sin grej.

Se det som 2 olika program som kör: det ena skriver i en tabell vilka positioner som ska användas och det andra ser till att skicka pulserna enligt samma tabell. Dessa 2 program stör inte varandra men tuggar på i sin egen takt.
Skriv svar