Jump to content

Markus

Members
  • Gesamte Inhalte

    13
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von Markus

  1. @ 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 

     

     

  2. @ 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

     

  3. 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

     

  4. 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

  5. @ 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

  6. @ 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

     

  7. 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

×
×
  • Neu erstellen...