Markus
-
Gesamte Inhalte
13 -
Benutzer seit
-
Letzter Besuch
Posts erstellt von Markus
-
-
@ borg
Mit "Schlachtplan" meinte ich eigentlich sowas wie: "guck dir am besten zuerst Clock XY an"
Mach dir aber bitte wegen mir keinen Stress - mein Aufbau läuft ja auch so einigermaßen!
Ich lasse von mir hören, falls ich in der Sache irgendwas gebacken kriege!
Vielen Dank und beste Grüße,
Markus
-
@ borg
Hallo,
hast du dir das mit den niedrigen Frequenzen schon angeschaut? Falls dir der Aufwand zu groß ist, wäre ich dir sehr dankbar, wenn du eine Art "Schlachtplan" posten könntest - ich würde mir das dann hier am Institut mit jemandem angucken, der hin und wieder Controller programmiert.
Vielen Dank und beste Grüße,
Markus
-
@ Nic
Es ist eine Sony CCD mit Flächensensor
-
Ich bin gespannt! Unter 15Hz zu kommen würde mir schon sehr helfen (ist die maximale Frequenz der Kamera, die ich verwende --> deswegen sind die 15,26Hz auch so ärgerlich^^)
Viele Grüße,
Markus
-
@ photron
Danke für den Tipp. Die Funktion dürfte ideal sein, um Kamera und Beleuchtung aufeinander abzustimmen. (anscheinend hatte ich das mit der Bitmask in der API-Beschreibung einfach nicht richtig verstanden, als ich es zum ersten Mal gelesen hatte^^)
Das einzige was ich jetzt noch bräuchte ist eine Möglichkeit, die Frequenzlimitierung der Servo-Funktion aufzulösen.
Meine for-Schleifen-Variante ist extrem ungenau und völllig ungeeignet für mehrere Signale.
Meinst du, die Idee mit dem 10er Multiplikator in der Brick-Software ist möglich, oder ist die Dauer des Spannungspulses irgendwie über die Hardware beschränkt?
Vielen Dank und beste Grüße,
Markus
-
@ AuronX
Hi,
für mein Problem (2) wäre eine Funktion, die die Parameter mehrerer Servos und eine Beziehung zwischen diesen an den Brick weiter reicht natürlich die optimale Lösung.
Ich befürchte bloß, dass die Komplexität einer solchen Lösung meine Möglichkeiten überfordern würde.
Hast Du eine Idee, wie man an Problem (1) rangehen könnte?
Grüße,
Markus
-
Hallo Tinker,
ich habe jetzt schon seit einiger Zeit den Servo-Brick und bin ziemlich zufrieden mit den Ergebnissen. Das Ventil lässt sich genauso ansteuern, wie ich mir das vorgestellt hatte.
Um auch niedriger Frequenzen abbilden zu können, habe ich mir in C eine Krücke gebastelt:
for(counter = 1; counter < npuls; counter++)
{
servo_enable(&servo, 0); // Servo an
servo_set_position(&servo, 0, counter); // Servo einen weiter
servo_disable(&servo, 0); // Servo aus
usleep(apuls); // z.B. 0,5 Sekunden Pause für apuls = 500000
}
Das Ganze klappt ganz gut für sehr niedrige Frequenzen (unter 4Hz) – darüber allerdings hat die Schwankung von usleep() (vermutlich auch die USB-Latenz) einen starken Einfluss. Immerhin kann ich jetzt die Frequenz zumindest in den niedrigen Bereichen (<4Hz) und den hohen Bereichen (>13Hz) genau einstellen.
Aber: Wenn ich zwei Servos (bzw. zwei Ausgänge für Ventil und Kamera) innerhalb der for-Schleife ansteuere, springt das Signal des als zweites angesteuerten Servos wie wild durch die Gegend, bzw. ist sehr unsynchron (lt. Oszilloskop).
Ich kann so zwar prinzipiell meine Versuche durchziehen, aber ich habe mir zwei Dinge überlegt, die ich gerne noch ändern würde:
1) ich habe mir überlegt, dass wenn ich die Servo-Perioden-Funktion auf dem Brick so umschreiben könnte, dass sie für einen Wert von „65500“ (als Eingabewert) nicht 65500, sondern 655000 Mikrosekunden rausgibt (für mehr Spielraum bei den Frequenzen). Kurzum: ein 10er Multiplikator in die Brick-Software einbauen.
2) eine sichere Variante, um 2 Signale, die der Brick an verschiedenen Ausgängen ausgibt mit einem vorgegebenen Versatz zu synchronisieren (z.B. Kamera macht immer 1000ys nachdem das Ventil geöffnet hat ein Bild) - könnte etwas tricky werden
Über Anregungen und Ideen würde ich mich sehr freuen!
Beste Grüße,
Markus
-
-
Danke für die vielen Antworten!
@ Nic
Ich möchte über einen Ausgang die Kamera und über einen anderen Ausgang das Ventil ansteuern. Die Periodenlänge sollte dabei für beide Ausgänge gleich sein, lediglich zeitversetzt zueinander. (ich wollte nicht über einen Ausgang abwechselnd Kamera und Ventil ansteuern)
@ AuronX
Die Latenz wird für meine Anwendung in der Tat nur zum Problem, wenn sie stark schwankt - in einem anderen Forum habe ich dazu gelesen, dass die Latenzzeiten stark von den übertragenen Datenmengen abhängig sind. Vermutlich muss ich es einfach mal ausprobieren.
@ ThomasKI
So in etwa könnte ich mir das vorstellen. Du meinst also man könnte den Zeitversatz einfach über die Startzeiten von 1 und 2 einstellen.
Da Du anscheind auch von der prinzipiellen Machbarkeit überzeugt bist, werd ich mir den Brick einfach mal bestellen und mit einem Oszilloskop durchmessen, was tatsächlich an Spannungen rauskommt.
Vielen Dank und beste Grüße,
Markus
-
@ Nic
Jop genauso hatte ich mir das vorgestellt. Ich will ein Linux-System aufstezen.
@ Christian
USB gibt aber keinen "eigenen Takt" vor oder?
Das heißt, wenn das System (wenn es denn echtzeitfähig ist) die Befehle/Nachrichten zum richtigen Zeitpunkt sendet (und z.B. bei 15Hz dürften das ja deutlich weniger sein als 1000) könnte es doch funktionieren oder? Also solange nicht zwei Befehle mit weniger als einer Millisekunde Abstand losgeschickt werden.
Viele Grüße,
Markus
-
@ Nic
Hi,
Mit dem Ventil wird ein Druckstoß erzeugt und die Kamera nimmt dessen Auswirkungen auf.
Die Steuerung müsste eine Genauigkeit im Bereich von 0,1ms aufweisen - wenn Du sagst, dass eine µs-Genauigkeit nicht realisierbar ist, meinst Du die Skalen von 1µs bis 10µs?
Würdest Du denn sagen, dass die Programmierung von Zeitverzögerungen (auch mit Abhängigkeiten zwischen verschiedenen Steuerausgängen) möglich ist?
Grüße,
Markus
-
Hallo Tinker,
Ich würde gern einen Servo Brick zur Ansteuerung eines Schnellschlussventils und einer Kamera in einem Versuchsaufbau benutzen. Bevor ich jedoch den Brick bestelle, würde ich gern wissen, ob die Art der Programmierung die mir vorschwebt realisierbar ist.
Sowohl das Ventil, als auch die Kamera benötigen einen bestimmten Spannungsimpuls um angesteuert zu werden. Der Servo Brick hat 7 Anschlüsse und die verfügbaren Impulslängen und –höhen aus dem Datenblatt passen schonmal sehr gut.
Über die folgenden Fragen bin ich mir jedoch im Unklaren:
1) Kann man den Abstand zwischen 2 Spannungsimpulsen z.B. durch eine Art Timer künstlich strecken? (bei der maximalen Periodendauer im Datenblatt landet man bei ca. 15Hz, könnte man diesen Wert irgendwie auf z.B. 3Hz oder sogar auf einen einzelnen Impuls herabsenken?)
2) Die Kamera soll um einige hundert Mikrosekunden versetzt zum Ventil angesteuert werden. Kann man in der Programmierung einen solchen Bezug zwischen den Ansteuerungszeiten von zwei Anschlüssen herstellen? (Periodenversatz durch einen Timer?)
3) Kann man die ganzen Parameter des Servo Bricks über den USB-Anschluss „online“ variieren? (der Abschnitt Test your Servo Brick im Datenblatt vermittelt den Eindruck, dass dies möglich ist)
Vielen Dank und beste Grüße,
Markus
Servo Brick als "Moderator" für Versuchsaufbau
in Projektvorstellungen und Projektideen
Geschrieben
@ borg
Moin,
Hast Du Dir mein Perioden-Länge Problem schon angeschaut, bzw. eine Lösungsidee?
Beste Grüße,
Markus