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.

Per avviare l’applicazione:

  • Fai doppio clic su CMUcam3 Frame Grabber

  • Seleziona la porta COM corretta dal menu a discesa «Available COM Ports»

  • Fai clic sul pulsante «Connect»

  • Accendi la tua CMUcam3 con il firmware di emulazione CMUcam2 (riavvia se è già accesa)

  • Dovresti vedere apparire del testo nella finestra «Terminal Console»

  • Premi «Grab Image» per scattare una foto

Ecco una descrizione dei campi nella scheda «Main» dell’interfaccia:

  • Porte COM disponibili

    • Questo mostra un elenco delle porte seriali che Windows riconosce

  • Baud Rate

    • Questo ti permette di modificare il baud rate se vuoi usare questo programma come client di terminale

  • Timeout

    • Questo imposta il timeout per qualsiasi risposta seriale che il programma potrebbe attendere

      • Di solito questo non deve essere modificato

  • Connect

    • Apre una connessione seriale

  • Disconnect

    • Chiude la connessione seriale

  • Send

    • Questo pulsante trasmetterà qualsiasi testo digitato nella casella di testo situata a sinistra del pulsante

    • La casella di testo aggiunge automaticamente un carattere di invio, quindi fare semplicemente clic su «Send» dovrebbe farti ottenere una risposta ACK dalla CMUcam2

    • Per impostazione predefinita il focus è sulla casella di testo di input, quindi puoi semplicemente digitare e premere invio per inviare i dati

  • CIF / QCIF

    • Questi pulsanti impostano la risoluzione dell’immagine visualizzata

    • Per impostazione predefinita la CMUcam3 invierà un’immagine a bassa risoluzione che viene scalata per riempire l’intera finestra

  • Grab Image

    • Questo invia il comando «SJ» (Send JPEG) alla CMUcam3 e visualizza il risultato

  • Loop

    • Questa casella di controllo fa sì che il client prema automaticamente «Grab Frame» ogni «Refresh Interval» millisecondi

    • Se la CMUcam3 non riesce a produrre un’immagine nel tempo specificato, il programma andrà in timeout con un errore

      • Se ciò accade, aumenta il Refresh Interval o diminuisci la risoluzione dell’immagine

  • Refresh Interval

    • Questo parametro imposta la frequenza con cui viene inviato il comando «Grab Image» quando «Loop» è selezionato

  • Stop

    • Questo interrompe la cattura delle immagini in loop

La scheda «Settings» ti consente di impostare alcune funzionalità comuni della CMUcam3. Ogni pulsante che premi trasmette semplicemente i corrispondenti comandi CMUcam2 tramite la porta seriale.

Ecco una descrizione dei campi nella scheda «Setting» dell’interfaccia:

  • Low Resolution / High Resolution

    • Questi pulsanti commutano tra l’alta risoluzione CIF (352x288) e la bassa risoluzione QCIF (176x144)

    • Questo corrisponde ai comandi seriali «HR 1» e «HR 0»

  • RGB / YCrCb

    • Questo seleziona la modalità pixel nativa della telecamera come RGB o YCrCb

    • Questo corrisponde ai comandi CMUcam2 «CR 18 44» o «CR 18 36»

  • Down Sample

    • Questo imposta la quantità di sottocampionamento basata sul firmware

    • Questo corrisponde a «DS X Y» dove X e Y sono i valori impostati in ciascuna casella di selezione

  • Window

    • Questo imposta i parametri della finestra virtuale per la telecamera

    • Questo corrisponde al comando CMUcam2 «VW x0 y0 x1 y1»

  • Servo Controller

    • Questo ti permette di impostare la posizione del servo delle 4 porte servo della CMUcam3

    • Questo farà muovere qualsiasi servo collegato alla CMUcam3

    • Questo corrisponde al comando CMUcam2 «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.

Risoluzione dei problemi#

Perché la fotocamera si blocca quando cambio le proprietà mentre acquisisco immagini in un loop?

  • Sfortunatamente, il Frame Grabber della CMUcam3 non è abbastanza intelligente da tenere davvero traccia di ciò che stai facendo. Quindi se stai eseguendo immagini in loop e cambi la risoluzione con una più grande, potrebbe inviare il comando «Grab Frame» successivo prima che l’immagine ad alta risoluzione abbia finito di essere trasferita. Dopo che ciò accade alcune volte, il Frame Grabber si desincronizza con la telecamera e la seriale va in timeout. Tipicamente, se premi «Stop» prima di cambiare i parametri e ti assicuri di impostare il «Refresh Interval» su un valore più grande per le immagini ad alta risoluzione, non otterrai errori di comunicazione o di timeout.

Perché non riesco a eseguire il loop con immagini ad alta risoluzione?

  • Questo è lo stesso problema descritto dalla domanda precedente. Se il «Refresh Interval» è troppo piccolo, la telecamera richiederà immagini più velocemente di quanto possa produrle.