Noggrannhet RC servo
Noggrannhet RC servo
Köpte ett par st billiga Futaba s3003 servon för 125kr styck till att styra en laserpunkt på väggen med. Att köra dom från XP var lätt match bara man hittat rätt dll'er. Port.dll till tidsstyrning och io.dll för portarna. Inte en endaste kring komponent behövdes ifall man kör på LPT porten annat än strömförsörjning till servot. Därför jag provade den lösningen före stegmotorer.
Valde billiga servon för att jag inte vet ifall det kommer o funka som jag vill.
Men de har för ändamålet en ganska ryckig gång. Provade med att lägga på massa i form av svänghjul då accerationen är okritisk men jämn gång går före. Det gick inte då man fick självsvängning.
Men digitalservon då? I reklamen så skryter dom om noggranhet och fin upplösning. Hur ser verkligheten ut med de lite dyrare ?
Mikael
Valde billiga servon för att jag inte vet ifall det kommer o funka som jag vill.
Men de har för ändamålet en ganska ryckig gång. Provade med att lägga på massa i form av svänghjul då accerationen är okritisk men jämn gång går före. Det gick inte då man fick självsvängning.
Men digitalservon då? I reklamen så skryter dom om noggranhet och fin upplösning. Hur ser verkligheten ut med de lite dyrare ?
Mikael
Ett RC-servo är tillräckligt bra för att hantera en RC-modell.
Annan användning är naturligtsvis inte garanterad på något sätt.
Det låter osannolikt att man skulle kunna uppnå någon slags noggranhet
i styrningen av RC-servon med funktioner i DLL'er direkt från Windows...
> Men de har för ändamålet en ganska ryckig gång.
Är du helt säker på att det är *servots* fel ?
Dessutom, för det du försöker göra, så kanske alla typer
av RC-servon har "en ganska ryckig gång"...
Annan användning är naturligtsvis inte garanterad på något sätt.
Det låter osannolikt att man skulle kunna uppnå någon slags noggranhet
i styrningen av RC-servon med funktioner i DLL'er direkt från Windows...
> Men de har för ändamålet en ganska ryckig gång.
Är du helt säker på att det är *servots* fel ?
Dessutom, för det du försöker göra, så kanske alla typer
av RC-servon har "en ganska ryckig gång"...
Micke_71: om du kör din timing från XP utan någon hårdvara mellan som den pulsgenererande delen ger jag inte mycket för din styrning. Att försöka göra något tidskritisk under Windows är nära nog omöjligt, speciellt de pulser som det ska till för att få en RC-servo att ställa sig noga.
På min hemsida (under "Freebies") finns det ett litet projekt (med källkod) som kan styra ett antal RC-servos via kommandon på serieporten, det kanske kunne vara en idé för dig?
På min hemsida (under "Freebies") finns det ett litet projekt (med källkod) som kan styra ett antal RC-servos via kommandon på serieporten, det kanske kunne vara en idé för dig?
Jag törs nästan garantera att signalen är tämligen fin.Icecap skrev:Micke_71: om du kör din timing från XP utan någon hårdvara mellan som den pulsgenererande delen ger jag inte mycket för din styrning. Att försöka göra något tidskritisk under Windows är nära nog omöjligt, speciellt de pulser som det ska till för att få en RC-servo att ställa sig noga.
På min hemsida (under "Freebies") finns det ett litet projekt (med källkod) som kan styra ett antal RC-servos via kommandon på serieporten, det kanske kunne vara en idé för dig?
Under normal övrig belastning står servot still. Lastar jag ner med att dra igång en massa program så vill det rycka någon grad i servo axeln.
Men det finns kommandon under windows för att köra i realtid. Jag har testat slingor som kör servona under realtid för att utesluta fel. Gör jag det så undviker man driftstörningar då det övriga fryses till slingan är klar. Bra funktion men lite farlig att testköra ifall man inte sparat. Fick en kontinuerlig slinga....

Man anger då i programkoden >
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
Jag gissar på att feldriften ligger hos servot och att det beror på för hög förstärkning av "släpvärdet" . Höga hastigheter driver fint, under belastning går det också fint. Obelastat rycker det kanske 0.5 grad under gång. Obelastat med ökad massa blir hemskt det rycker kanske 5 grader. Jag påstår att det ligger i att motorn driver för hårt alldelles för nära sitt börvärde och rusar förbi, det allra minsta förbi så tvärnitar det.
Lastar jag ner så det blir lite moment så skenar det inte förbi utan stannar direkt när strömmen avtar.
En programslinga som enbart driver servot till position och därefter låter det gå i standby har jag testat. Helt utslag så låter jag servot få 25 pulser med 20ms mellan varje, en ändring på 1us får 5 pulser. Det måste ha några stycken vid så små utslag för att svänga in. 1 signal puls låter det rusa förbi utan korrigering. Servot kör blixtsnabbt till position och tvärstannar på plats. Perfekt beteende men det syns att det är hårt påställt i driften för sina prestanda.
Vi har haft CNC maskiner på jobbet som kommit i det skicket för att få sina fina siffror. Det slutar som oftast med att man får ställa ner driften pga slitage och problem med svängingar. Inte de små fleroparna dock utan de verkar klara det bättre med sin lilla rörliga massa. Det är som sagt skillnad mot att släpa på 300kg mot 10 ton........
Min tanke var ifall de lite dyrare servona klarade driften bättre pga av bättre/intelligentare styrning. Det finns ju många driftsparametrar att ta hänsyn till och de billiga gjorde ju inte det.
Mikael
REALTIME_PRIORITY_CLASS ger inte högsta prioritet ändå! Det är den högsta prioritet man kan köra från ett program men OS'et har än högre prioritet.
Sen anser jag att det är fel att servot får ett antal pulser och sen tar det stopp, servon jobbar med en PI-regulering och vid att stoppa pulserna blir effekten att I-delen försvinner.
Men till test kanske det fungerar, du kommer dock aldrig förbi det glapp som finns i servon och deras interna positionspotentiometra, vara sig de är digitalt styrda eller inte.
Du har såklart kollat dina signal och deras upplösning?
Sen anser jag att det är fel att servot får ett antal pulser och sen tar det stopp, servon jobbar med en PI-regulering och vid att stoppa pulserna blir effekten att I-delen försvinner.
Men till test kanske det fungerar, du kommer dock aldrig förbi det glapp som finns i servon och deras interna positionspotentiometra, vara sig de är digitalt styrda eller inte.
Du har såklart kollat dina signal och deras upplösning?
Nej, jag har inte utrustning för att noggrannt kolla signalernas kvalitet.
Det var medvetet som jag låter servot gå på standby i detta lilla program. Det finns inget som kommer o vilja driva det ur position, om så ändå skulle hända så är det ingen katastrof. Eftersom man sällan får ett släp värde=0 så kommer servot alltid att söka position och pulserna kommer inte sällan att kännas i axeln även fast de är för små för att flytta på den. Men det var mest som ett test för att se vad PC'n kan göra för skoj och hur man kan optimera vissa rörelser. Tanken var att styra en kamera, och då är inte vibrationer på stillastående kamera alltid så bra för bildkvaliteten. Observera det är inte vad jag ska göra utan bara en liten testfunktion jag knåpade ihop på 15min.
Glapp, startmoment är inget problem till min typ av applikation. Det jag söker är en jämn och fin gång, inte att det hoppar omkring +-0,25-0,5grader runt börvärdet på halvfart. Ser hellre att det släpar efter 1-2 grader på positionen. De mekaniska svagheterna är av mindre betydelse för en jämn rotation utan blir problem när det gäller att stå still, hitta och hålla position. Jag ska försöka få en laserpunkt att simulera en lerduvas flykt på väggen. Jag ska då vrida 60 grader på knappt en sekund.
För just det så har jag nerväxlade synkronmotorer som sitter på riktigt fina precisionsnäckväxlar.
Men jag har i tanke att simulera trapduvor också.
Mikael
Det var medvetet som jag låter servot gå på standby i detta lilla program. Det finns inget som kommer o vilja driva det ur position, om så ändå skulle hända så är det ingen katastrof. Eftersom man sällan får ett släp värde=0 så kommer servot alltid att söka position och pulserna kommer inte sällan att kännas i axeln även fast de är för små för att flytta på den. Men det var mest som ett test för att se vad PC'n kan göra för skoj och hur man kan optimera vissa rörelser. Tanken var att styra en kamera, och då är inte vibrationer på stillastående kamera alltid så bra för bildkvaliteten. Observera det är inte vad jag ska göra utan bara en liten testfunktion jag knåpade ihop på 15min.
Glapp, startmoment är inget problem till min typ av applikation. Det jag söker är en jämn och fin gång, inte att det hoppar omkring +-0,25-0,5grader runt börvärdet på halvfart. Ser hellre att det släpar efter 1-2 grader på positionen. De mekaniska svagheterna är av mindre betydelse för en jämn rotation utan blir problem när det gäller att stå still, hitta och hålla position. Jag ska försöka få en laserpunkt att simulera en lerduvas flykt på väggen. Jag ska då vrida 60 grader på knappt en sekund.
För just det så har jag nerväxlade synkronmotorer som sitter på riktigt fina precisionsnäckväxlar.
Men jag har i tanke att simulera trapduvor också.
Mikael
Skam den som ger sig. Envis som en gris och säker på att jag har tummen på problemet så halverade jag driftspänningen till 3V på servot. Då blir ju inte driften lika hård.
Flackandet runt bör värdet blev så mycket mindre. Men lämnar fortfarande mer att önska. Eftersom servot slår 120 grader och jag behöver 60 så finns ju möjlighet att växla ner för att då samtidigt får lite broms på det och mekaniskt släp. Samtidigt så får jag ju gasa till dubbla farten.
Men ifall jag kör servot på halvfart till en punkt och låter det gå direkt i standby så ser man direkt att det går förbi med ca 1-2 grader. Låter man driften vara på så går den kanske 0.5 grad förbi och 2st svängningar till position. Håller positionerna väldigt tajt förutom att man får en och en annan störning ifrån windows. Har sett kanske 5st och servot sticker 1-2grader för att omedelbart gå tillbaka.
Repeterar positionerna tämligen exakt. På 3m som det står på nu så hamnar laserpunkten inom 10mm varje gång.
Mikael
Flackandet runt bör värdet blev så mycket mindre. Men lämnar fortfarande mer att önska. Eftersom servot slår 120 grader och jag behöver 60 så finns ju möjlighet att växla ner för att då samtidigt får lite broms på det och mekaniskt släp. Samtidigt så får jag ju gasa till dubbla farten.
Men ifall jag kör servot på halvfart till en punkt och låter det gå direkt i standby så ser man direkt att det går förbi med ca 1-2 grader. Låter man driften vara på så går den kanske 0.5 grad förbi och 2st svängningar till position. Håller positionerna väldigt tajt förutom att man får en och en annan störning ifrån windows. Har sett kanske 5st och servot sticker 1-2grader för att omedelbart gå tillbaka.
Repeterar positionerna tämligen exakt. På 3m som det står på nu så hamnar laserpunkten inom 10mm varje gång.
Mikael
Det blir svårt att få till en jämn gång även om du "glider" pulserna, motorn drivs ju beroende på (mest) differensen och den ska över ett visst nivå innan den kör på plats.
Om du vill ha en sån glidande rörelse låter det för mig som om att du borde ha en stegmotor med mikrosteg till att styra det, då kan du gå den rörelse glidande och fint. Det kommer såklart att kräva en del mer hårdvara.
Principet är att man styr strömmen i stegmotorns lindningar, inte som vanligt (av eller på) men i kanske 256 (eller annat lämpligt tal) steg, Detta ger en mycket hög upplösning och man kan smyga runt de 60° på ett sekund om man kan skicka datan till strömstyrningen snabbt nog.
Om du vill ha en sån glidande rörelse låter det för mig som om att du borde ha en stegmotor med mikrosteg till att styra det, då kan du gå den rörelse glidande och fint. Det kommer såklart att kräva en del mer hårdvara.
Principet är att man styr strömmen i stegmotorns lindningar, inte som vanligt (av eller på) men i kanske 256 (eller annat lämpligt tal) steg, Detta ger en mycket hög upplösning och man kan smyga runt de 60° på ett sekund om man kan skicka datan till strömstyrningen snabbt nog.
Ja, det finns olika lösningar på problemet. Men blir det för mycket kringutrustning som ska byggas till så är risken mycket stor att det stannar vid ett halvfärdigt projekt.
Min första tanke var att låta 2st stegmotorer sköta en var sin spegel och köra dessa på microsteg. Men ska jag ha controller för detta till vettigt pris så misstänker att det blir o bygga själv. Det är så länge sedan jag höll på med elektronik på allvar så jag har inte kvar ett skit för etsning, lödpennan har brunnit så jag nödkör med spetsen i en 75w kolv som får gå en minut och jag löder på eftervärmen. Det är inga problem i att komma upp till samma pengar som för en projektor som kan visa helbild över hela väggen. Och det blir ju en väldigt massa hagelpatroner o duvor för dom pengarna.
SÅ därför är kravet att det ska vara enkelt, snabbt att bygga, komponenterna ska gärna kunna återanvändas till annat skoj när jag har tröttnat på att skjuta en laser punkt på en annan.
Med 2 servon skulle man kunna få igång en fungerande prototyp på minuter ifall man hade riktigt bråttom och allt gick problemfritt. Det tog mig inte många minuter från att jag kommit hem från hobbybutiken tills jag hade rotat fram rätt kablage i gömmorna, gjort mjukvara för test och fått igång portarna med dll'er och drivrutiner och kunde styra en laser i en riktning.
X motorn ska simulera duvans hastighet i allt från vinkel 0 till 90 grader i bägge riktningar. En duva som lämnar en trapkastare rakt ifrån mig med 0 grader så kommer ju X motorn att stå helt still. Och bara Y motorn kommer att arbeta med att simulera höjden på duvan.
Y kommer jag att kunna växla ner 4ggr o X 2ggr. Löser jag således duvans flykthastighet så ger sig höjden självmant. Jag hade hoppats att kunna slippa all typ av nedväxling men det ser inte ut att bli så.
Ev så har jag en genialiskt enkel idé på detta ifall jag har tänkt rätt.
Mikael
Min första tanke var att låta 2st stegmotorer sköta en var sin spegel och köra dessa på microsteg. Men ska jag ha controller för detta till vettigt pris så misstänker att det blir o bygga själv. Det är så länge sedan jag höll på med elektronik på allvar så jag har inte kvar ett skit för etsning, lödpennan har brunnit så jag nödkör med spetsen i en 75w kolv som får gå en minut och jag löder på eftervärmen. Det är inga problem i att komma upp till samma pengar som för en projektor som kan visa helbild över hela väggen. Och det blir ju en väldigt massa hagelpatroner o duvor för dom pengarna.
SÅ därför är kravet att det ska vara enkelt, snabbt att bygga, komponenterna ska gärna kunna återanvändas till annat skoj när jag har tröttnat på att skjuta en laser punkt på en annan.
Med 2 servon skulle man kunna få igång en fungerande prototyp på minuter ifall man hade riktigt bråttom och allt gick problemfritt. Det tog mig inte många minuter från att jag kommit hem från hobbybutiken tills jag hade rotat fram rätt kablage i gömmorna, gjort mjukvara för test och fått igång portarna med dll'er och drivrutiner och kunde styra en laser i en riktning.
X motorn ska simulera duvans hastighet i allt från vinkel 0 till 90 grader i bägge riktningar. En duva som lämnar en trapkastare rakt ifrån mig med 0 grader så kommer ju X motorn att stå helt still. Och bara Y motorn kommer att arbeta med att simulera höjden på duvan.
Y kommer jag att kunna växla ner 4ggr o X 2ggr. Löser jag således duvans flykthastighet så ger sig höjden självmant. Jag hade hoppats att kunna slippa all typ av nedväxling men det ser inte ut att bli så.
Ev så har jag en genialiskt enkel idé på detta ifall jag har tänkt rätt.
Mikael
klart kul, funderade på något liknande men ville ha en duva som rörde sig, provade med dom sorters bildlinser man kan sätta på laserpekare men det kändes lite b då man i så fall aven skulle behöva skala bilden för att få det realistiskt, sen skaffade jag mig en projektor och satte igång att göra en animerad lerduvefilm, på snygga fotografier så lades en fotograferad och sedan vektoriserad duva i framfart, funkade bra då man körde lite olika duvor från lite olika håll, men tyckte ändå inte det blev bra, sen skaffde jag mig en automatisk lerduvekastare och har mycket mera kul irl
har fortfarande en fundering på en sorts lerduve simulator, men saknar utrymme för att göra det snyggt, tankegången är ungefär följande
behövs lite olika saker, först en vanlig diabildsprojektor, den ska matas med vanliga snyggt tagna diabilder, lätt att blåsa upp med god ljustyrka över en hel vägg, sedan en billig datorprojektor som monteras svivlande, så man endast annvänder projektorn till det rörliga målet, för att målet ska vara snyggt och ljusstarkt, möjligtvis att man har en kamera som följer den rörliga projektorn och har ett irfilter, på vapnet ska det sitta en irlaser, och avtryckaren är kopplad till datorn, då kan man veta om man pekar med vapnet mot mitten på målet, med hygglig noggranhet,
ehh, blev nog lite luddigt men ni förstår säkert,
fast nu finns det bra simulatorer till hyggligt pris och en lerduvekastare irl är mycket mera kul


har fortfarande en fundering på en sorts lerduve simulator, men saknar utrymme för att göra det snyggt, tankegången är ungefär följande
behövs lite olika saker, först en vanlig diabildsprojektor, den ska matas med vanliga snyggt tagna diabilder, lätt att blåsa upp med god ljustyrka över en hel vägg, sedan en billig datorprojektor som monteras svivlande, så man endast annvänder projektorn till det rörliga målet, för att målet ska vara snyggt och ljusstarkt, möjligtvis att man har en kamera som följer den rörliga projektorn och har ett irfilter, på vapnet ska det sitta en irlaser, och avtryckaren är kopplad till datorn, då kan man veta om man pekar med vapnet mot mitten på målet, med hygglig noggranhet,
ehh, blev nog lite luddigt men ni förstår säkert,
fast nu finns det bra simulatorer till hyggligt pris och en lerduvekastare irl är mycket mera kul
Jo jag har själv funderat på någon sådan mer avancerad lösning.
Nu är det så att de lite roligare simulatorerna kostar en hel del flis. Kolla på ex marksman's. Du kan hyra den per timme på en sportbar i huvudstaden. Kostar 500:- timman och 1500:- med instruktör.
Dryfire och några andra finns ju för 6000-15000:- kronor.
Jag är ju en utpräglad kulskytt som skjutit åt h-e för mycket kula för att det ska göra hagelskyttet något gott. Jag hade tidigare in i h-e svårt att hålla fart på svingen o skjuta. Det omedvetna ville ju hålla så still det bara gick när jag tryckte av. Att jaga en laserprick som bara snurrar med en motor och skjuta strax framför med laserpatronen gav bra resultat på det. Jag träffar inte så värst många fler sidoduvor på skeetbanan men de lätta frånduvorna ligger jag på 90% mot kanske 60% innan. Då har jag bara tränat med lasern mellan de resultaten.
Jag har ännu svårare att svinga långsamt o skjuta utan att hamna efter. Därför ville jag simulera trapduvor också. Kanske lite av allt möjligt i slumpvalda mönster.
Sedan så skiftar jag, banan har uselt med tider och den andra klubben har vare sig ordnat eller tålamod för nybörjare som inte tävlar på elitnivå. Jag får inte så mycket träning som jag vill. Det här kommer ju att komplettera.
Jag har satt fast ett annat större roderok i ett av servots fastsättningshål och växlat med ett länkage. Det blev STOR skillnad. Nu så kan man inte med ögat längre se att driften rycker. Precis som jag ville ha det. Men nu så måste jag se till att bygga ihop det seriöst och börja göra program som räknar på alla vinklar som ingår. Vinklar i länkaget och det faktum att min vägg är plan inte är en radie runt lasern.
Mikael
Nu är det så att de lite roligare simulatorerna kostar en hel del flis. Kolla på ex marksman's. Du kan hyra den per timme på en sportbar i huvudstaden. Kostar 500:- timman och 1500:- med instruktör.
Dryfire och några andra finns ju för 6000-15000:- kronor.
Jag är ju en utpräglad kulskytt som skjutit åt h-e för mycket kula för att det ska göra hagelskyttet något gott. Jag hade tidigare in i h-e svårt att hålla fart på svingen o skjuta. Det omedvetna ville ju hålla så still det bara gick när jag tryckte av. Att jaga en laserprick som bara snurrar med en motor och skjuta strax framför med laserpatronen gav bra resultat på det. Jag träffar inte så värst många fler sidoduvor på skeetbanan men de lätta frånduvorna ligger jag på 90% mot kanske 60% innan. Då har jag bara tränat med lasern mellan de resultaten.
Jag har ännu svårare att svinga långsamt o skjuta utan att hamna efter. Därför ville jag simulera trapduvor också. Kanske lite av allt möjligt i slumpvalda mönster.
Sedan så skiftar jag, banan har uselt med tider och den andra klubben har vare sig ordnat eller tålamod för nybörjare som inte tävlar på elitnivå. Jag får inte så mycket träning som jag vill. Det här kommer ju att komplettera.
Jag har satt fast ett annat större roderok i ett av servots fastsättningshål och växlat med ett länkage. Det blev STOR skillnad. Nu så kan man inte med ögat längre se att driften rycker. Precis som jag ville ha det. Men nu så måste jag se till att bygga ihop det seriöst och börja göra program som räknar på alla vinklar som ingår. Vinklar i länkaget och det faktum att min vägg är plan inte är en radie runt lasern.
Mikael