Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo
oratus sum
17.05.2007, 19:31
Abend,
Ich habe folgendes Problem:
Ich nehme einen Servo von JR, und schliesse es am C-Control II an (richtig), dann folgt dieser Code:
thread main
{
plm.settimebase(0,plm.BASE_800); //setzt plm 0
plm.setmode(0,0); //unwichtig
plm.setperiod(0,25000); //periode
plm.out(0,1000); // setzt high 1000ms
quit 63; //beendet das Programm und wechselt in den Host mode
}
ABER es passiert folgendes:
Ich drücke auf reset (zum starten des Programmes) er fährt den Servo ganz nach LInks (stimmt wegen den 1000ms), allerdings mit 3 mal ruckeln, also nicht durchgehen von z,b, Rechts nach Links sondern er bewegt den Servo ca 10ms lange dann stoppt er, dann wieder 10ms lang, dann stoppt er, bis der Servor Links anschlägt.
Dann hört aber nicht mehr auf, also er beendet sich nicht und versucht den Servro noch weiter Links zu bringen! Er führt auch öfters ein reset durch, nachdem der Servo Links anschlägt.
Woran liegt es?
vklaffehn
17.05.2007, 22:45
Moin!
Hat der Servo eine eigene Stromversorgung?
Ich hatte das gleiche Problem auch einmal, weil ich für die Logik und den Servo dieselben 5V genommen hatte....
MfG Volker
oratus sum
17.05.2007, 23:17
Nein keine eigene Stromversorgung!
Wie meinst du das konkret? GND und PLM müssen ja auf jedenfall gleich sein. Wie meinst du das?
vklaffehn
18.05.2007, 01:06
Moin!
Also bei mir sieht das so aus :
6V aus Bleiakku -> an Plus vom Servo
Low-Drop Spannungsregler für 5V am Akku, 5V -> Controller und Logik, Massen zusammen (logischerweise), PWM vom Controller an Servo...
Ich hoffe, es ist verständlich, was ich meine, ist schon spät .....
Das Problem ist, daß der Servo auf der Versorgungsspannung stört, da macht der Controller gern mal einen Reset... und so ein Servo kann unter Last auch ganz schön Strom ziehen, da kann z.B. die Versorgung auch mal zusammenbrechen -> Reset .
MfG
Volker
Fällt mir gerade ein.
Auf jeden Fall dicke Kondensatoren vor den Servo setzten. Die sollten das Problem des Resets lösen.
jon
oratus sum
18.05.2007, 08:50
Wozu der Spannungsregler? Heisst das aber nicht, dass du die selbe Versorgung hat für Servo und COntroller? Also
Akku
plus an Servo und über Spannungsregler an Controller
minus an Servo und Controller is ja das selbe oder?
SO muss jetzt in die Schule!
MfG
Wozu der Spannungsregler? Heisst das aber nicht, dass du die selbe Versorgung hat für Servo und COntroller?
Letztendlich ist es die selbe Spannungsversorgung.
Akku
plus an Servo
Wie Viel Volt hat dein Akku? Der sollte nicht mehr als 6 Volt haben. Sonst gibt die servointerne Elektronik den Geist auf.
SO muss jetzt in die Schule!
Dann mal viel Spaß! (Hab heute keine Schule :) )
jon
Klingon77
18.05.2007, 08:58
hi,
wenn das Problem wirklich durch einen "Unterspannungs-Reset" ausgelöst wird, dann nimm mal eine zweite Spannungsquelle (z.B: ein vorhandenes Labornetzteil) und verbinde die beiden Massen (Labornetzteil und Batterie) miteinander.
Dann hängst Du den C-Control an das Labornetzteil (mitsamt der Steuerelektronik) und den Servo an die Batterie.
Somit hast Du sie beide voneinander getrennt. Sollte nun wirklich die Spannung der Batterie durch den Servo einbrechen, berührt dies den C-Control am Labornetzteil nicht.
Falls dies zutrift, wäre der Sicherste Weg ein stabiles System aufzubauen, zwei Akkus zu nehmen. Einen kleineren für die Elektronik und Steuerung und einen großen für die Aktoren.
Eine andere Möglichkeit wäre es, von 6V auf 12V zu gehen und die Batterie größer zu dimensionieren.
Du müsstest dann aber (am effizientesten mit LowDrop-Reglern) Deine Spannungen für die Steuerelektronik und die Servos separat runterregeln.
Also: 2 Stromkreise aufbauen - mit gemeinsamer Masse.
Bei einem 12 V-System hättest Du den Vorteil, daß das System nicht unter 10,5V kommt. Spätestens dann mußt Du die Batterie wieder laden, damit sie nicht zerstört wird. Davon ausgehend hast Du nach unten zu 5V Steuerelektronik und evtl. 6V für die Servos immer noch genug "Luft".
Bei einem 6V Batteriesystem liegt die Ladeschlußspannung des Akkus (je nach Typ) knapp über 5V. Der Spannungsregler braucht zum Betrieb auch noch (je nach Typ) 1-2V. Also kann die Systemspannung schon mal auf 4V oder darunter absinken. Dann kann der C-Control schon mal "maulen".
Schau mal da: https://www.roboternetz.de/wissen/index.php/Spannungsregler
Gruß, Klingon77
oratus sum
18.05.2007, 13:32
nn mal viel Spaß! (Hab heute keine Schule )
Hab auch morgen Schule...
Ich werde das jetzt mal probieren, hab zwar keine AHnung wie aber mal sehen :-D
Was willst du probieren?
Extra Akku für den Servo, oder dicke Kondensatoren vor den Servo setzten?
jon
Klingon77
18.05.2007, 16:15
hi Jon,
er kann auch beides machen. Dicke Kondensatoren vor dem Servo schaden nie.
Gruß, Klingon77
PS: war gerade auf Deiner HP und wollte mir Deinen Kettenbot nochmal anschauen. Das große Bild der Startseite konnte ich nicht laden.
"Objekt nicht gefunden!"
Große Bilder sind gut, wenn man was im Detail anschauen möchte!
Bitte nochmal reinsetzen.
Baust Du gerade um?
PS: war gerade auf Deiner HP und wollte mir Deinen Kettenbot nochmal anschauen. Das große Bild der Startseite konnte ich nicht laden.
"Objekt nicht gefunden!"
Liegt wahrscheinlich an dem "ß". Ich werde es mal mit nem "ss" versuchen. Die Bilder werden gerade hochgeladen.
Baust Du gerade um?
Ja und nein. Ich habe nur die Rubrik "Kleinprojekte" hinzugefügt. Da bin ich den ganzen Tag über dabei gewesen für zu schreiben.
jon
EDIT: Sollte jetzt gehen.
Klingon77
18.05.2007, 19:25
hi Jon,
hast Du auch ein 6V- System?
Sind bei Deinem Bot ebenfalls zwei Spannungsregler eingbaut?
Warum hast Du die Leitung zum Akku mit Alufolie umwickelt. Wegen der Einstreuung von Fremdsignalen?
Geht das mit Alufolie hast Du da was gemessen (OSZI) oder eine Veränderung festgestellt?
Wäre ja auch für oratus sum interessant.
PS: Nochmal!
Ich finde Deinen Bot echt prima! Sehr sauber verarbeitet und viele kreative Lösungen drinnen!!!
Gruß, Klingon77
oratus sum
18.05.2007, 19:29
So nebenbei: meine Seite wurde heute auch aktualisiert!
Ich nehme mal an er hats mit Alufolie umwickelt, weil sonst der Kompass und/oder Funkmodul nicht richtig Funktioniert!
Ich ahbe das Jetzt probiert, was ihr gesagt habt geht aber trotzdem nicht! Jetzt knackst der Servo dauernd, was sich sehr ungesund anhört!
Ich ahb volgendes gemacht:
Stromversorgung vom Programmerboard des Micro genommen (5v) GND an - des Servos und GND des CII angeschlossen, 5V an Servo + angschlossen und PLM an Servo PLM angschlossen.
Passt das?
hast Du auch ein 6V- System?
Ich habe einen 7,2Volt Racing-Pack.
Sind bei Deinem Bot ebenfalls zwei Spannungsregler eingbaut?
Japs. Einen für die Steuerelektronik (Sensoren, µCs etc.) und einen für die Motoren. Wobei ich gerade dabei bin eine Elektronik zu bauen, sodass der ATMega32 zw. 5Volt und Akkuspannung schalten kann.
PS: Nochmal!
Ich finde Deinen Bot echt prima! Sehr sauber verarbeitet und viele kreative Lösungen drinnen!!!
Das freut mich!!
So nebenbei: meine Seite wurde heute auch aktualisiert!
Sieht gut aus! (Nur ein paar viele Rechtschreibfehler)
Ich nehme mal an er hats mit Alufolie umwickelt, weil sonst der Kompass und/oder Funkmodul nicht richtig Funktioniert!
Es ging dabei darum das Elektromagnetische Feld um das Akkukabel einzudämmen. Das Feld wird bei einem Strom von 3A doch recht groß und stark.
Geht das mit Alufolie hast Du da was gemessen (OSZI) oder eine Veränderung festgestellt?
Mit nem Oszi habe ich noch nicht gemessen. Ich weiß nur, dass der Kompass mit dem Horn recht gut funktioniert.
Ich ahbe das Jetzt probiert, was ihr gesagt habt geht aber trotzdem nicht! Jetzt knackst der Servo dauernd, was sich sehr ungesund anhört!
Oje...
Ich ahb volgendes gemacht:
Stromversorgung vom Programmerboard des Micro genommen (5v) GND an - des Servos und GND des CII angeschlossen, 5V an Servo + angschlossen und PLM an Servo PLM angschlossen.
Passt das?
Eigentlich schon^^
Hast du mal Kondensatoren angeschlossen?
Ich werde nochmal nachdenken. Vielleicht finde ich noch ne potentielle Lösung.
jon
Klingon77
18.05.2007, 23:16
hi,
das war mein einziger Lösungsansatz.
Leider habe ich noch nicht mir Servos gearbeitet. Aber das mit der Spannungsversorgung schien mir einleuchtend - einen Versuch wert.
oratus sum
War mal auf Deiner Page. Schöner Bot.
Hast Du das mal mit den dicken Elkos getestet?
Ist der Servo den OK? Hast Du mal einen anderen versucht?
Kannst Du das PWM Signal mit einem Oszi messen?
Bitte mal den Schaltplan posten.
Gruß, Klingon77
oratus sum
18.05.2007, 23:58
War mal auf Deiner Page. Schöner Bot
Danke
Hast Du das mal mit den dicken Elkos getestet?
Nein. Mein dickster Elko hat 100 uF.
Ist der Servo den OK? Hast Du mal einen anderen versucht?
Ja.
Kannst Du das PWM Signal mit einem Oszi messen?
Ja. Ich habe LEDs drangeschlossen und die lassen sich einwandfrei abdunkeln/erhellen
Bitte mal den Schaltplan posten.
Gut, werde ich Morgen (in 4 Minuten,ne) machen. Hab aber Morgen Schule. (ja am Samstag)
Also werde mal in die Falle gehen! Danke für eure Hilfe!
MfG
Hast Du das mal mit den dicken Elkos getestet?
Nein. Mein dickster Elko hat 100 uF.
Das sollte eigentlich für den Anfang reichen.
Also werde mal in die Falle gehen!
Mein Vater hätte mich in eine ganz andere Falle befördert. Um diese Zeit (23.58Uhr)...
Hast du in der Schule die Möglichkeit mit nem Oszi zu messen, was mit der Spannung passier? Also ob es kurze Einbrüche etc. gibt?
jon
oratus sum
19.05.2007, 12:26
Mein Vater hätte mich in eine ganz andere Falle befördert. Um diese Zeit (23.58Uhr)...
Tja praktisch wenn die Eltern nicht da sind^^
Hast du in der Schule die Möglichkeit mit nem Oszi zu messen, was mit der Spannung passier? Also ob es kurze Einbrüche etc. gibt?
Nein, nicht das ich wüste!
Ich werde das mal mit dem Servo lassen, ist nicht so wichtig die Kamera zu drehen! Werde einfach die LEDs anschliessen, damit man die Helligkeit steuern kann!
@Jon
gibts schon was neue in Sache Funkmodul? Ich habe bisher keine neuen erketnisse wieso es vom PC nicht geht!
Hallo,
ein 100µ Elko reicht von der Kapazität her. - Aber es reicht nicht, was die Güte betrifft. Darum schalte parallel zum Elko noch einen 100n Keramikkondenstor. Erster ist dann für die niedrigfrequenten Störungen zuständig, letzter für die höherfrequenten. Das macht man allgemein so.
grüsse,
Hannes
ein 100µ Elko reicht von der Kapazität her. - Aber es reicht nicht, was die Güte betrifft. Darum schalte parallel zum Elko noch einen 100n Keramikkondenstor. Erster ist dann für die niedrigfrequenten Störungen zuständig, letzter für die höherfrequenten. Das macht man allgemein so.
Deswegen habe ich gefragt, ob oratus sum das in der Schule mit nem Oszi nachmessen kann. Wenn man ein Oszi hat und eine Auswahl verschiedener Kondensatortypen (Elko, Tantal, Keramik etc.) in verschiedenen Größen, kann man das experimentell machen.
@oratus sum:
Frag man in der Fachschaft Physik nach (wenn es so etwas in Österreich gibt). Normalerweise haben die nen Oszi.
jon
Klingon77
19.05.2007, 20:33
Ich werde das mal mit dem Servo lassen...
hi,
gib nicht so schnell auf. Hast noch nicht Deinen Schaltplan gepostet.
Schau mal hier im Forum gibt es auch ein C-Control Teil. Versuch es mal da.
Dort findest Du evtl. auch Anregungen. Mal stöbern und lesen.
Du kannst noch Google´n. C-Control II Servoansteuerung oder ähnlich.
Gehe ich recht in der Annahme, daß der Code in Deiner ersten Nachricht nicht alles ist, was zu dazu geschrieben hast?
Wenn ja, bitte alles zusammen mit dem Schaltplan posten. Ist wichtig für die Informatiker und Elektroniker im Forum.
Die Lösung gibt es. Wir haben sie nur noch nicht gefunden!
mit Durchhaltegruß,
Klingon77
Ich war gerade mit dem Fahrrad unterwegs und dabei ist mir eingefallen, dass du Reload vergessen hast. Also der Abstand zw. den Impulsen. (Siehe Servo Artikel)
http://kos.informatik.uni-osnabrueck.de/download/report/img34.gif
Versuche das mal noch einzubauen. Wenn das fehlt, kommt es zu dem Verhalten, das dein Servo zeigt.
jon
oratus sum
20.05.2007, 17:58
Meinst du etwas, dass ale 20ms der Highpegel 1-2 ms anhalten sollte?
Ich glaube das macht der eh automatisch mit dem setperiod 25000
Werds mal versuchen
Zw. dem Signal, dass dem servo die Position angibt soll eine Pause von ca. 20ms liegen. Wenn diese nicht da ist, dann weiß der Servo nicht, was er machen soll.
Wenn du das glaubst, dann informiere dich doch bitte mal, ob das wirklich so ist. Ich glaube, dass das nicht so ist.
jon
oratus sum
20.05.2007, 18:52
Zw. dem Signal, dass dem servo die Position angibt soll eine Pause von ca. 20ms liegen. Wenn diese nicht da ist, dann weiß der Servo nicht, was er machen soll.
Zwischen dem Signal, dass dem Servo die Position angibt und was? soll eine Pause sein?
Du musst dem Servo solange die Position senden, bis die Position erreicht wurde.
Bsp.: Motor soll zur Mitte fahren
Impuls von 1,5ms high
Impuls con 20ms low
->Die Zeit, die bis jetzt vergangen ist ist so klein, dass der Servo die Position noch nicht erreicht hat. Also:
Impuls von 1,5ms high
Impuls con 20ms low
->Position immernoch nicht erreicht. Nochmal:
Impuls von 1,5ms high
Impuls con 20ms low
->Dies muss jetzt solange wiederhohlt werden, bis die Position erreicht wurde.
Hat der Servo die Position erreicht, dann ignoriert er die Signalfolge. Es ist aber gut, wenn man die Signalfolge noch weiter sendet, damit der Servo, wenn er durch äußere Einflüsse eine andere Stellung einnimmt, wieder zur gewünschten Position zurückdreht.
Ich hoffe, du hast es jetzt verstanden.
jon
oratus sum
20.05.2007, 20:20
Ja, dass ist ja klar, deswegen wird ja die periode mit setperiod eingestellt!
d.h.:
Wenn ich setperiod 20000 einstelle sind das 20ms
dann sag ich plm.out 1000 das heisst alle 20 ms wird 1000ms lang der Highpegel gesetzt.
Ja, dass ist ja klar, deswegen wird ja die periode mit setperiod eingestellt!
Achso. Ich kann diese Programmiersprache nicht, weiß also auch nicht, was die einzelnen befehle bedeuten.
dann sag ich plm.out 1000 das heisst alle 20 ms wird 1000ms lang der Highpegel gesetzt.
1000ms!!! das ist viel zu lange. Setzte das mal auf maximal 5ms runter. 2 sollten das Beste sein.
jon
oratus sum
20.05.2007, 20:35
1000ms!!! das ist viel zu lange. Setzte das mal auf maximal 5ms runter. 2 sollten das Beste sein.
Natürlich blödsinn!
Es wird ja davor noch mit
plm.settimebase BASE_800
die Taktrate auf 0,8us gestellt. Eine Periode von 25000 ergibt dann 20ms. Eine IMPULSlänge ist dann 1000 = 0,8ms die obere Grenze währe dann 2750 = 2,2ms.
Eins ist 100% sicher, es liegt NICHT am Programm. Ich hab ja ein Buch zum CII gekauft und da ist die Servosteuerung SEHR genau beschrieben, allerdings leider nur Softwareseitig!
Aber wirklich 1000 Dank, dass ihr mir helft ;-)
Der Servo funktioniert wirklich? Wie hast du das getestet? Kannst du mal ein kurzes Video zum Verhalten des Servos machen?
Ich bin mittlerweile etwas ratlos, wenn es nicht am Programm liegt, der Servo aber OK ist :-k :-k
jon
Klingon77
20.05.2007, 20:56
hi,
und den Schaltplan.
und ein anderer Servo verhält sich genauso?
Gruß, Klingon77
oratus sum
20.05.2007, 21:04
Es verhalten sich alle Servos genauso! Sind etwas älter noch aus dem letzten Jahrtausend. Funktionieren aber, hab es mit der normalen Ferndeienung getestet und haben früher in einem Modellflugzeug gedient! Habe 3 davon und alle verhalten sich so!
Video poste ich, aber nicht heute. Schaltplan mach ich auch!
Hallo Gergor,
das ist ja ein etwas mühsames Stochern im Nebel. Ich würd mir an deiner Stelle ein Soundkarten Oszi aus dem Net herunterladen und die Signale ansehen. Das gibt es als Freeware und hilft bei solchen Fragen.
http://www.jbergsmann.at/neutral.GIF
Das ist beispielsweise ein funktionierendes Servo Signal aus einem meiner Projektleins. Ein Soundkarten Oszi ist zwar nicht mit einem richtigen Oszi zu vergleichen, es ist kein Messgerät, aber um ein Servo Signal zu testen reicht es aus. Die Impulsform kann man nicht wirklich beurteilen, da die Grenzfrequenz viel zu niedrig liegt, aber die Impuls Zeiten kann man gut ablesen. Störungen durch die Motoren sieht man auch. Das Einbrechen der Versorgungsspannung lässt sich wieder weniger beurteilen, das geht aber mit dem Multimeter.
wünsche Ausdauer und Erfolg,
Hannes
Das Einbrechen der Versorgungsspannung lässt sich wieder weniger beurteilen, das geht aber mit dem Multimeter.
Wie willst du das mit einem Multimeter sehen? das ist doch viel zu lahm.
jon
radbruch
21.05.2007, 09:18
Hallo
Bei meinen Servospielereien (https://www.roboternetz.de/phpBB2/viewtopic.php?p=279989#279989) hatte ich den Eindruck, die Geschwindigkeit und auch die Stromaufnahme des Servos hängt von der Länge der Pause zwischen den PWM-Impulsen ab.
Gruß
mic
BastelWastel
21.05.2007, 12:30
Die Pause ist relativ tolerant, hatte mal wenig rumgespielt mit Zeiten um die 100ms ohne dass sich das Verhalten des Servos geaendert hat.
Am besten waere es wirklich wenn du dir dein Signal mal am Oszi anschaust, und wenns nur deine Soundkarte is...dann hast du zumindest mal einen Anhaltspunkt...
@Hannes,
kannst du ein bestimmtes Soundkarten-Oszi Programm empfehlen?
jon
Wie willst du das mit einem Multimeter sehen? das ist doch viel zu lahm
Nein, so lahm ist das auch wieder nicht. Wenn ich das Servo fortlaufend mit Maximalgeschwindigkeit von von ganz links nach ganz rechts und wieder zurück laufen lasse, pendelt sich das erfahrungsgemäss schon ein. Die Spannung geht ja nicht während eines Impulses in die Knie, sondern durch die Motortätigkeit.
Zur Impulspause: Bei grösseren Pausen lässt angeblich die Stellkraft nach. Das hab ich nicht nachgemessen. Getestet habe ich kürzere Pausen, da sind meine Servos bei ungefähr 10 ms komplett ausgestiegen.
Das Soundkarten Oszi, das ich verwende heisst: Winscope.
Leider kann ich es nicht uneingeschränkt empfehlen, da es bei längerem Betrieb das System (xp sp2) zum Absturz bringt. Ich kann aber damit leben, weil ich gleichzeitig einfach keine anderen Daten verarbeite. Ohne das Soundkarten Oszi hätte ich mein Projekt https://www.roboternetz.de/phpBB2/viewtopic.php?t=30833 nicht so leicht fertig gestellt.
Aber vielleicht kennt jemand ein besseres.
Grüsse,
Hannes
Hallo,
noch ein Nachtrag zum Soundkarten Oszi. Hab jetzt herausgefunden, dass ich mit kleineren refresh Raten (= grösserer Abstand in ms) keine Abstürze mehr habe.
Oscilloscope for Windows95, version 2.51.
Copyright (C) Konstantin Zeldovich, 1996-1997.
This software is free for personal use and can be redistributed provided it is not altered in any way and no fee is requested.
grüsse,
Hannes
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.