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.

För att starta applikationen:

  • Dubbelklicka på CMUcam3 Frame Grabber

  • Välj rätt COM-port i rullgardinsmenyn ”Available COM Ports”

  • Klicka på knappen ”Connect”

  • Slå på din CMUcam3 som kör CMUcam2-emuleringsfirmware (starta om om den redan är på)

  • Du bör se text visas i fönstret ”Terminal Console”

  • Tryck på ”Grab Image” för att ta en bild

Här är en beskrivning av fälten på fliken ”Main” i gränssnittet:

  • Tillgängliga COM-portar

    • Detta visar en lista över seriella portar som Windows känner igen

  • Baudhastighet

    • Detta gör att du kan ändra baudhastigheten om du vill använda detta program som en terminalklient

  • Tidsgräns

    • Detta ställer in tidsgränsen för eventuella seriella svar som programmet kan vänta på

      • Detta behöver vanligtvis inte ändras

  • Anslut

    • Öppnar en seriell anslutning

  • Koppla från

    • Stänger den seriella anslutningen

  • Skicka

    • Denna knapp överför all text som du skrev i textrutan som finns till vänster om knappen

    • Textrutan lägger automatiskt till ett returtecken, så att bara klicka på ”Send” bör ge dig ett ACK-svar från CMUcam2

    • Som standard är fokus på inmatningstextrutan, så du kan bara skriva och trycka på retur för att skicka data

  • CIF / QCIF

    • Dessa knappar ställer in upplösningen på bilden som visas

    • Som standard skickar CMUcam3 en lågupplöst bild som skalas för att fylla hela fönstret

  • Fånga bild

    • Detta skickar kommandot ”SJ” (Send JPEG) till CMUcam3 och visar resultatet

  • Loop

    • Denna kryssruta gör att klienten automatiskt trycker på ”Grab Frame” varje ”Refresh Interval” millisekunder

    • Om CMUcam3 inte kan producera en bild inom den angivna tiden avbryts programmet med ett fel (timeout)

      • Om detta händer, öka uppdateringsintervallet eller minska bildupplösningen

  • Uppdateringsintervall

    • Denna parameter ställer in hur ofta kommandot ”Grab Image” skickas när ”Loop” är markerad

  • Stoppa

    • Detta stoppar de loopade bilderna från att fångas

Fliken ”Settings” gör att du kan ställa in några vanliga CMUcam3-funktioner. Varje knapp du trycker på skickar helt enkelt motsvarande CMUcam2-kommandon över den seriella porten.

Här är en beskrivning av fälten på fliken ”Setting” i gränssnittet:

  • Låg upplösning / Hög upplösning

    • Dessa knappar växlar mellan högupplöst CIF (352x288) eller lågupplöst QCIF (176x144)

    • Detta motsvarar de seriella kommandona ”HR 1” och ”HR 0”

  • RGB / YCrCb

    • Detta väljer kamerans ursprungliga pixelläge till antingen RGB eller YCrCb

    • Detta motsvarar CMUcam2-kommandona ”CR 18 44” eller ”CR 18 36”

  • Nedsampling

    • Detta ställer in den firmwarebaserade nedsamplingsmängden

    • Detta motsvarar ”DS X Y” där X och Y är de värden som ställts in i varje valruta

  • Fönster

    • Detta ställer in de virtuella fönsterparametrarna för kameran

    • Detta motsvarar CMUcam2-kommandot ”VW x0 y0 x1 y1”

  • Servostyrenhet

    • Detta gör att du kan ställa in servopositionen för de 4 CMUcam3-servoportarna

    • Detta gör att alla servon som är anslutna till CMUcam3 rör sig

    • Detta motsvarar CMUcam2-kommandot ”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.

Felsökning#

Varför fryser kameran när jag ändrar egenskaper medan jag fångar bilder i en loop?

  • Tyvärr är CMUcam3 Frame Grabber inte tillräckligt smart för att verkligen hålla reda på vad du gör. Så om du loopar bilder och ändrar upplösningen till något större kan den skicka nästa ”Grab Frame”-kommando innan den högupplösta bilden var färdigöverförd. Efter att detta händer några gånger kommer Frame Grabber ur synk med kameran och den seriella anslutningen får timeout. Om du trycker på ”Stop” innan du ändrar parametrar, och ser till att du ställer in ”Refresh Interval” till ett större värde för högupplösta bilder, får du vanligtvis inga kommunikations- eller timeout-fel.

Varför kan jag inte loopa med högupplösta bilder?

  • Detta är samma problem som beskrivs i föregående fråga. Om ”Refresh Interval” är för litet kommer kameran att begära bilder snabbare än den kan producera dem.