Seriellporten på datorn
Seriellporten på datorn
Hej!
Har ett par frågor ang. signaler från seriellporten på datorn.
Har nämligen hittat ett kort: "Serial Servo Controller" som gör det möjligt att styra 8st RC-servon från en pc.
Hur långt kan man skicka en sådan signal utan att få några problem?
Och hur svårighetsgraden är att göra ett prog som ger mig möjlighet att styra dessa med en "vanlig handkontroll"?
Jag hoppas att jag varit tydlig, annars gnäll lite så åtgärdar jag det säkert.
Mvh:Jim
Har ett par frågor ang. signaler från seriellporten på datorn.
Har nämligen hittat ett kort: "Serial Servo Controller" som gör det möjligt att styra 8st RC-servon från en pc.
Hur långt kan man skicka en sådan signal utan att få några problem?
Och hur svårighetsgraden är att göra ett prog som ger mig möjlighet att styra dessa med en "vanlig handkontroll"?
Jag hoppas att jag varit tydlig, annars gnäll lite så åtgärdar jag det säkert.
Mvh:Jim
Lite svårt att veta då "vanlig handkontroll" är en otrolig oklar definition.
På min hemsida (under "freebies") finns det ett färdigt projekt som medger att man styr 13 RC-servos vid att skicka kommandon på en seriell länk. Den kräver inte mycket, en PIC16F628A, en transistor, ett par motstånd och avkopplingskondensator. Ska man reglera spänningen ner behövs det en 7805 + avkoppling också.
Finns komplett med källkod, schema och det kan enkelt byggas.
På min hemsida (under "freebies") finns det ett färdigt projekt som medger att man styr 13 RC-servos vid att skicka kommandon på en seriell länk. Den kräver inte mycket, en PIC16F628A, en transistor, ett par motstånd och avkopplingskondensator. Ska man reglera spänningen ner behövs det en 7805 + avkoppling också.
Finns komplett med källkod, schema och det kan enkelt byggas.
Ett sätt att få bättre signaler är att köra RS422.
finns RS232-RS422 konverterare, de är kanske inte så billiga men men.
Annars om du bygger RS232-RS422 konverternarna själv så kan du komma undan billigt.
Kolla på MAX202 och MAX 490. Då kan du nog få upp till 1km om du vill.
Ström från datorn kan du ta från ett USB uttag.
typ ett schema hur jag tänker.
http://www.kmitl.ac.th/~kswichit%20/Rs422/Rs422.pdf
Är det http://www.pololu.com/catalog/product/727/resources
där sitter redan en max202 nämligen.
finns RS232-RS422 konverterare, de är kanske inte så billiga men men.
Annars om du bygger RS232-RS422 konverternarna själv så kan du komma undan billigt.
Kolla på MAX202 och MAX 490. Då kan du nog få upp till 1km om du vill.
Ström från datorn kan du ta från ett USB uttag.
typ ett schema hur jag tänker.
http://www.kmitl.ac.th/~kswichit%20/Rs422/Rs422.pdf
Är det http://www.pololu.com/catalog/product/727/resources
där sitter redan en max202 nämligen.
Icecap: Ja, joystick eller något liknande Sony Playstations handkontroll.
Micke_s: Jag tittade på HobbyTroniks hemsida:
http://www.hobbytronik.se/product_info. ... cts_id/103
Men den från pololu fungerar lika bra.
Micke_s: Jag tittade på HobbyTroniks hemsida:
http://www.hobbytronik.se/product_info. ... cts_id/103
Men den från pololu fungerar lika bra.
Balanserat och twistad kabel är det som gäller för längre sträckor tex. med redan angivna RS422 eller RS485 som bufferkretsar - går säkert att göra balanserade steg med OP-ampar också om man har sådana kretsar och kör långsamt nog - Dock bör dom vara stabila även vid komplex kapacitiv last och 50 Ohm lastimpedans, vilke inte alla OP-ampar garanterat är...
Man bör tänka på att frekvensinnehållet i överförd signal mellan 50kHz - 200 kHz alltid är knepig att föra över i oskadat skick på längre kabelsträcka oavsett om det är single-ended ala RS232 eller balanserat ala RS485 - även om man kommer mycket längre med balanserat.
Detta har att göra med kabelns fysiska egenskaper, hur den är terminerat etc. och i mindre grad driverns drivförmåga då kabelns egenskaper går från komplex kapacitiv impedans till reel impedans inom frekvensområdet, vilket påverkar vågformsutseendet (dist) på olika sätt så att enkla mottagare kanske inte känner igen den anländande pulsformen rätt och misstolkar.
Det fins orsaker till att 115200 baud över RS232 inte fungerar så bra på längre sträckor än några meter medans 9600 baud ofta fungerar bra på mer 50 meter kabel.
Man bör tänka på att frekvensinnehållet i överförd signal mellan 50kHz - 200 kHz alltid är knepig att föra över i oskadat skick på längre kabelsträcka oavsett om det är single-ended ala RS232 eller balanserat ala RS485 - även om man kommer mycket längre med balanserat.
Detta har att göra med kabelns fysiska egenskaper, hur den är terminerat etc. och i mindre grad driverns drivförmåga då kabelns egenskaper går från komplex kapacitiv impedans till reel impedans inom frekvensområdet, vilket påverkar vågformsutseendet (dist) på olika sätt så att enkla mottagare kanske inte känner igen den anländande pulsformen rätt och misstolkar.
Det fins orsaker till att 115200 baud över RS232 inte fungerar så bra på längre sträckor än några meter medans 9600 baud ofta fungerar bra på mer 50 meter kabel.
-
- Inlägg: 8424
- Blev medlem: 15 april 2006, 18:57:29
- Ort: Typ Nyköping
-
- Inlägg: 8424
- Blev medlem: 15 april 2006, 18:57:29
- Ort: Typ Nyköping
Det påverkar tiden det tar att överföra informationen till styrenheten, påverkan är dock minimal om ens kännbar.
Jag har kört 650m på nergrävd RKLK-installationskabel med 12V diffrentialsignalering på 2400 baud och det fungerade klockrent.
Men om vi räknar lite: om vi utgår ifrån att RC-servon får en puls var 15ms kommer du på 16,5ms (15ms + 1,5ms[mittläge]) att sända:
* 1,98 byte med 1200 baud
* 190 bytes med 115200 baud
Om vi sedan utgår ifrån mitt projekt (hemsidan du vet) ska det överföras upp till 7 tecken för att skicka en position, detta kommer att ta:
* 58,3ms vid 1200 baud
* 608µs vid 115200 baud
Om det sedan är "för lång tid" är ju omöjligt för mig att svara på.
Jag har kört 650m på nergrävd RKLK-installationskabel med 12V diffrentialsignalering på 2400 baud och det fungerade klockrent.
Men om vi räknar lite: om vi utgår ifrån att RC-servon får en puls var 15ms kommer du på 16,5ms (15ms + 1,5ms[mittläge]) att sända:
* 1,98 byte med 1200 baud
* 190 bytes med 115200 baud
Om vi sedan utgår ifrån mitt projekt (hemsidan du vet) ska det överföras upp till 7 tecken för att skicka en position, detta kommer att ta:
* 58,3ms vid 1200 baud
* 608µs vid 115200 baud
Om det sedan är "för lång tid" är ju omöjligt för mig att svara på.