CMUcam3 Frame Grabber#

The CMUcam3 Frame Grabber is a simple utility that can be used to test your CMUcam3. Its primary purpose is to act as a terminal program similar to HyperTerminal or Minicom. It also allows you to view jpeg images returned from the camera. You need run the CMUcam2 Emulation firmware on the camera to use this program. The Frame Grabber requires that you install .NET version 2.0 or later which can be found on our software page. Unfortunately, the CMUcam3 Frame Grabber only works in Windows. The source can be found in the tools directory (called cc3_image_viewer). For Linux or Mac, please try using the CMUcam2GUI.

Um die Anwendung zu starten:

  • Doppelklicken Sie auf CMUcam3 Frame Grabber

  • Wählen Sie den korrekten COM-Port aus dem Dropdown-Menü „Available COM Ports“

  • Klicken Sie auf die Schaltfläche „Connect“

  • Schalten Sie Ihre CMUcam3 ein, auf der die CMUcam2-Emulations-Firmware läuft (neu starten, falls sie bereits eingeschaltet ist)

  • Sie sollten Text im Fenster „Terminal Console“ erscheinen sehen

  • Drücken Sie „Grab Image“, um ein Bild aufzunehmen

Hier ist eine Beschreibung der Felder auf der Registerkarte „Main“ der Benutzeroberfläche:

  • Verfügbare COM-Ports

    • Dies zeigt eine Liste der seriellen Ports an, die Windows erkennt

  • Baudrate

    • Dies ermöglicht es Ihnen, die Baudrate zu ändern, wenn Sie dieses Programm als Terminal-Client verwenden möchten

  • Timeout

    • Dies legt das Zeitlimit für alle seriellen Antworten fest, auf die das Programm möglicherweise wartet

      • Dies muss normalerweise nicht geändert werden

  • Connect

    • Öffnet eine serielle Verbindung

  • Disconnect

    • Schließt die serielle Verbindung

  • Send

    • Diese Schaltfläche überträgt jeden Text, den Sie in das links neben der Schaltfläche befindliche Textfeld eingegeben haben

    • Das Textfeld fügt automatisch ein Wagenrücklaufzeichen hinzu, sodass Sie einfach durch Klicken auf „Send“ eine ACK-Antwort von der CMUcam2 erhalten sollten

    • Standardmäßig liegt der Fokus auf dem Eingabetextfeld, sodass Sie einfach tippen und die Eingabetaste drücken können, um Daten zu senden

  • CIF / QCIF

    • Diese Schaltflächen legen die Auflösung des angezeigten Bildes fest

    • Standardmäßig sendet die CMUcam3 ein Bild mit niedriger Auflösung, das skaliert wird, um das gesamte Fenster auszufüllen

  • Grab Image

    • Dies sendet den Befehl „SJ“ (Send JPEG) an die CMUcam3 und zeigt das Ergebnis an

  • Loop

    • Dieses Kontrollkästchen bewirkt, dass der Client automatisch alle „Refresh Interval“ Millisekunden „Grab Frame“ drückt

    • Wenn die CMUcam3 in der angegebenen Zeit kein Bild erzeugen kann, bricht das Programm mit einem Fehler ab

      • Wenn dies passiert, erhöhen Sie das Aktualisierungsintervall oder verringern Sie die Bildauflösung

  • Aktualisierungsintervall

    • Dieser Parameter legt fest, wie oft der Befehl „Grab Image“ gesendet wird, wenn „Loop“ aktiviert ist

  • Stop

    • Dies stoppt das Erfassen der geloopten Bilder

Die Registerkarte „Settings“ ermöglicht es Ihnen, einige gängige CMUcam3-Funktionen einzustellen. Jede Taste, die Sie drücken, überträgt einfach die entsprechenden CMUcam2-Befehle über die serielle Schnittstelle.

Hier ist eine Beschreibung der Felder auf der Registerkarte „Setting“ der Benutzeroberfläche:

  • Niedrige Auflösung / Hohe Auflösung

    • Diese Schaltflächen wechseln zwischen hochauflösendem CIF (352x288) und niedrig auflösendem QCIF (176x144)

    • Dies entspricht den seriellen Befehlen „HR 1“ und „HR 0“

  • RGB / YCrCb

    • Dies wählt den nativen Pixelmodus der Kamera als entweder RGB oder YCrCb aus

    • Dies entspricht den CMUcam2-Befehlen „CR 18 44“ oder „CR 18 36“

  • Down Sample

    • Dies legt die firmwarebasierte Downsampling-Menge fest

    • Dies entspricht „DS X Y“, wobei X und Y die in jedem Auswahlfeld eingestellten Werte sind

  • Window

    • Dies legt die virtuellen Fensterparameter für die Kamera fest

    • Dies entspricht dem CMUcam2-Befehl „VW x0 y0 x1 y1“

  • Servocontroller

    • Dies ermöglicht es Ihnen, die Servoposition der 4 CMUcam3-Servoports einzustellen

    • Dies bewirkt, dass sich alle an die CMUcam3 angeschlossenen Servos bewegen

    • Dies entspricht dem CMUcam2-Befehl „SV“

You can send any CMUcam2 command using the „Send“ button and the text input box. For example, sending „GM“ (Get Mean) returns the mean color of the image. To stop the streaming, simply click „Send“ or press return. This program does not visualize most of the CMUcam2 commands. For visualization try using the CMUcam2GUI java program.

Fehlerbehebung#

Warum friert die Kamera ein, wenn ich Eigenschaften ändere, während ich Bilder in einer Schleife aufnehme?

  • Leider ist der CMUcam3 Frame Grabber nicht intelligent genug, um wirklich zu verfolgen, was Sie tun. Wenn Sie also Bilder loopen und die Auflösung auf etwas Größeres ändern, sendet er möglicherweise den nächsten „Grab Frame“-Befehl, bevor das hochauflösende Bild fertig übertragen wurde. Nachdem dies einige Male passiert ist, gerät der Frame Grabber mit der Kamera aus dem Takt und die serielle Verbindung läuft in ein Timeout. Wenn Sie normalerweise „Stop“ drücken, bevor Sie Parameter ändern, und sicherstellen, dass Sie das „Refresh Interval“ für hochauflösende Bilder auf einen größeren Wert setzen, treten keine Kommunikations- oder Timeout-Fehler auf.

Warum kann ich nicht mit hochauflösenden Bildern in einer Schleife arbeiten?

  • Dies ist dasselbe Problem, das in der vorherigen Frage beschrieben wurde. Wenn das „Refresh Interval“ zu klein ist, fordert die Kamera Bilder schneller an, als sie sie produzieren kann.