Styra servo via parallellporten

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Skruven
Inlägg: 18
Blev medlem: 2 februari 2008, 02:41:11
Ort: Stockholm

Inlägg av Skruven »

Nu funkar det plötsligt inte igen när jag testade, utan att ha gjort ett dugg med nånting.
Har provat allt på en annan dator, men fick samma skumma resultat.
Är det mitt Sleep()-kommando i VB6 som inte fungerar? Kanske datorn är upptaget med annat till och från?

Så här är kommandot Sleep() definierat (hämtar ur Windows XP's kernel):

Kod: Markera allt

Private Declare Sub Sleep Lib "kernel32" ( _
    ByVal dwMilliseconds As Long)
Ninjaspaden
Inlägg: 24
Blev medlem: 2 mars 2007, 19:21:30
Ort: skåne

Inlägg av Ninjaspaden »

Tack skruven för en tråd jag verkligen behövde :P

håller på å pillar på detta och funderade ett tag på att köra servon direkt på parallellporten men kom senare med hjälp av icecap och andra killar från ett annat forum på hur man kopplar in servokontrollern direkt på serialporten :P

men mycket bra tråd för senare projekt :P
Användarvisningsbild
Icecap
Inlägg: 26629
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Att förlita sig på att Windows ska klara av att skicka ut pulser på ett pålitligt sätt är helt fel antagande!

Sättet Windows är uppbyggd på medger INTE att datorn kan göra detta med något pålitligt resultat, många andra har gett upp och löst det på andra sätt och som Ninjaspaden skriver har jag en lösning på min hemsida (under "freebies") som kan styra ett antal RC-servon och där man skickar kommandon via serieporten.

Och det fungerar pålitligt...
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31418
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Skruven: Öhm... varför i hela friden ska man koppla in plus på pulsingången utan att mata servot med matningsspänning? Det skulle jag aldrig få för mig att göra. Strömmen kommer ju gå bakvägen runt inne i elektroniken, och motorn får då sin ström via en ingång där det inte är meningen att det ska gå knappt nån ström alls!

Här är en 1MB stor filmfil på ett servo jag styrt med parallellporten, från en laptop med DOS6.22 och QBasic. http://madmodders.se/temp/Servo.avi

Inga problem. Futaba-servon ska ha plusmatning på mittensladden (röd), jord på svarta sladden, och styrsignalen på vita sladden (kan vara gul också).
Kolla mittenbilden här http://www.uoguelph.ca/~antoon/hobby/servopin.htm

Icecap: Mach3 kör ju under windows, och skickar lätt ut 4st signaler på 25kHz vardera på parallellporten utan att tappa "steg" så det går ju uppenbarligen. Frågan är hur de gjort...
Ninjaspaden
Inlägg: 24
Blev medlem: 2 mars 2007, 19:21:30
Ort: skåne

Inlägg av Ninjaspaden »

hur är färgerna på parallax servomotor?
Användarvisningsbild
Icecap
Inlägg: 26629
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

MM: Jag är ganska säker på att det finns ett "undersystem" som styr hårdvaran och tilldelar Windows resurserna som "blir över", jag är ganska säker på att när man installerar Mac3 måste man starta om datorn för än den kan börja fungera, just för att "lyfta upp" Windows och lägga en "egen bädd" under.
Användarvisningsbild
JimmyAndersson
Inlägg: 26532
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Oftast svart, röd och vit.

"Att förlita sig på att Windows ska klara av att skicka ut pulser på ett pålitligt sätt är helt fel antagande!"

Japp. Särskillt när det gäller NT-versionerna. Usch..
Vore intressant att veta hur Mach3 har löst det.

edit: Icecap: Ja visst ja. Man måste starta om datorn när man installerat Mach3 och någon annan tillhörande grejj.
Användarvisningsbild
Skruven
Inlägg: 18
Blev medlem: 2 februari 2008, 02:41:11
Ort: Stockholm

Inlägg av Skruven »

Ninjaspaden: Kul att tråden kan hjälpa dig/andra framöver. Sökte här på forumet innan jag skapade tråden, men hittade inget jag behövde riktigt.

Icecap: Din lösning har jag spanat på tidigare och borde kanske titta på den igen, lite närmare. Alternativet kanske är att ha en laptop med DOS och Qbasic annars, alternativt nån simpel Linuxdist med så lite som möjligt inlagt från början.

MadModder: Jag blev desperat/förbannad och satte matningsspänningen på pulsingången, och därmed såg jag resultatet. Förstår själv att det kan skada mer än göra nytta :D
Din film gick inte att öppna... :(

JimmyAndersson: Har laddat ner Mach3 nu. Mer för att ta reda på vad det är. Verkar intressant! :)


För övrigt: Vad grymt forum man har hittat! Fullt med smarta entusiaster som vill göra det omöjliga möjligt ;) Jag känner mig som hemma, hehe...
Användarvisningsbild
JimmyAndersson
Inlägg: 26532
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Välkommen hem. :D


När det gäller filmen som inte går att öppna:
Jag har samma problem med främst avi-filmer. Klickar man på länken så står det att den inte kan hittas. Men om man däremot högerklickar, väljer spara och sedan tittar (när den ligger på datorn) så fungerar det fint.

Jag använder Icecap's lösning i ett projekt. Den fungerar utmärkt. Inte för att jag trodde något annat heller.. :D
Ninjaspaden
Inlägg: 24
Blev medlem: 2 mars 2007, 19:21:30
Ort: skåne

Inlägg av Ninjaspaden »

Skruven: samma här .. hittade inget jag tyckte var något.

någon som har kod/program till att köra parallax servokontroller på serial porten?

vet nämligen inte ifall det är mitt freebasic program eller min krets som inte fungerar :S


+ vad är mach3?
Användarvisningsbild
Icecap
Inlägg: 26629
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Mach3 är ett program som används för att styra CNC-maskiner från en PC via parallellporten.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31418
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Ta bort quicktime! Det förstör bara, och försöker öppna allt möjligt i webbläsaren istället för i rätt program. Det har ALDRIG fungerat för mig. Det kommer upp att det går inte att öppna, och det är fel på sidan, och det fattas ett objekt...
Lägg in quicktime alternative (en codec) istället om du vill se MOV-filmer. Bra mycket bättre.

Servofilmen är kodad med XviD. (DX50)
Användarvisningsbild
Skruven
Inlägg: 18
Blev medlem: 2 februari 2008, 02:41:11
Ort: Stockholm

Inlägg av Skruven »

Det gick bra när jag väl sparade ner filmen först! Tack!
Har ännu inte hunnit testa Mach3, men kan man använda det till en servo?
Kanske lite väl avancerat däremot, men ändå.. :)
Användarvisningsbild
Icecap
Inlägg: 26629
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Mach3 och RC-servo är 2 helt skilda världar!

Mach3 styr CNC-fräser och dessa har INGET med RC-servo att göra, det är stegmotorer som gäller där.
Användarvisningsbild
JimmyAndersson
Inlägg: 26532
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

OffTopic:
MadModder: Jag har inte Quicktime (varken codec eller programpaketet) på någon av Windows-datorerna, men ändå får jag det felet. På Mac'arna har jag det däremot och där går det fint att se avi-filmer direkt utan att först ladda hem dem.

Quicktime alternative är annars bra, lika så Real alternative. Skulle inte klara mig utan den sistnämnda. :)



Ninjaspaden:
"någon som har kod/program till att köra parallax servokontroller på serial porten?"

Om du har möjlighet att programmera en PIC-krets så har Icecap en mycket bra lösning på sin freebie-sida (vilket nämnts tidigare.) Om det sedan behövs något speciellt program i datorn beror på hur du vill kunna styra servona, men man kan enkelt styra dem från ett helt vanligt terminalprogram.

Allt står egentligen i källkoden, men en kort förklaring:

En styr-instruktion börjar och slutar med "2" respektive "3". Däremellan anger man vilket servo som ska styras, följt av positionen. För att flytta servo nr 0 till position 100 så ser en komplett styr-instruktion ut såhär:
2 0 100 3
(Från serieporten skickas det egentligen såhär: 2 0 1 0 0 3.)


Ska du byta position på servoaxeln varenda minut är det kanske jobbigt att skriva det manuellt i ett terminalprogram. Då kan du istället använda vilket programmeringspråk som helst (som kan skriva till serieporten) och få servoaxeln att flytta sig precis som du vill.
Väldigt smidigt! :)
Skriv svar