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.