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.

Untuk memulai aplikasi:

  • Klik ganda pada CMUcam3 Frame Grabber

  • Pilih port COM yang benar dari menu drop down "Available COM Ports"

  • Klik tombol "Connect"

  • Nyalakan CMUcam3 Anda yang menjalankan Firmware Emulasi CMUcam2 (reboot jika sudah menyala)

  • Anda seharusnya melihat teks muncul di jendela "Terminal Console"

  • Tekan "Grab Image" untuk mengambil gambar

Berikut adalah deskripsi field pada tab "Main" dari antarmuka:

  • Port COM yang Tersedia

    • Ini menunjukkan daftar port serial yang dikenali Windows

  • Baud Rate

    • Ini memungkinkan Anda mengubah baud rate jika Anda ingin menggunakan program ini sebagai klien terminal

  • Timeout

    • Ini mengatur timeout untuk setiap balasan serial yang mungkin ditunggu program

      • Ini biasanya tidak perlu diubah

  • Connect

    • Membuka koneksi serial

  • Disconnect

    • Menutup koneksi serial

  • Send

    • Tombol ini akan mentransmisikan teks apa pun yang Anda ketik di kotak teks yang terletak di sebelah kiri tombol

    • Kotak teks secara otomatis menambahkan karakter return, jadi cukup mengeklik "Send" seharusnya memberi Anda respons ACK dari CMUcam2

    • Secara default fokus berada pada kotak teks input, jadi Anda cukup mengetik dan menekan return untuk mengirim data

  • CIF / QCIF

    • Tombol-tombol ini mengatur resolusi gambar yang ditampilkan

    • Secara default CMUcam3 akan mengirim gambar resolusi rendah yang diskalakan untuk mengisi seluruh jendela

  • Grab Image

    • Ini mengirim perintah "SJ" (Send JPEG) ke CMUcam3 dan menampilkan hasilnya

  • Loop

    • Kotak centang ini menyebabkan klien secara otomatis menekan "Grab Frame" setiap "Refresh Interval" milidetik

    • Jika CMUcam3 tidak dapat menghasilkan gambar dalam waktu yang ditentukan, program akan timeout dengan kesalahan

      • Jika ini terjadi, tingkatkan Refresh Interval, atau kurangi resolusi gambar

  • Refresh Interval

    • Parameter ini mengatur seberapa sering perintah "Grab Image" dikirim ketika "Loop" dicentang

  • Stop

    • Ini menghentikan gambar yang di-loop agar tidak diambil

Tab "Settings" memungkinkan Anda mengatur beberapa fitur umum CMUcam3. Setiap tombol yang Anda tekan hanya mentransmisikan perintah CMUcam2 yang bersesuaian melalui port serial.

Berikut adalah deskripsi field pada tab "Setting" dari antarmuka:

  • Low Resolution / High Resolution

    • Tombol-tombol ini beralih antara CIF Resolusi Tinggi (352x288) atau QCIF Resolusi Rendah (176x144)

    • Ini bersesuaian dengan perintah serial "HR 1" dan "HR 0"

  • RGB / YCrCb

    • Ini memilih mode piksel native kamera menjadi RGB atau YCrCb

    • Ini bersesuaian dengan perintah CMUcam2 "CR 18 44" atau "CR 18 36"

  • Down Sample

    • Ini mengatur jumlah down sampling berbasis firmware

    • Ini bersesuaian dengan "DS X Y" di mana X dan Y adalah nilai yang diatur di setiap kotak seleksi

  • Window

    • Ini mengatur parameter jendela virtual untuk kamera

    • Ini bersesuaian dengan perintah CMUcam2 "VW x0 y0 x1 y1"

  • Servo Controller

    • Ini memungkinkan Anda mengatur posisi servo dari 4 port servo CMUcam3

    • Ini akan menyebabkan servo apa pun yang terhubung ke CMUcam3 bergerak

    • Ini bersesuaian dengan perintah 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.

Pemecahan Masalah#

Mengapa kamera membeku ketika saya mengubah properti saat mengambil gambar dalam loop?

  • Sayangnya, CMUcam3 Frame Grabber tidak cukup pintar untuk benar-benar melacak apa yang Anda lakukan. Jadi jika Anda melakukan loop gambar dan Anda mengubah resolusi menjadi sesuatu yang lebih besar, maka ia mungkin mengirim perintah "Grab Frame" berikutnya sebelum gambar resolusi tinggi selesai ditransfer. Setelah ini terjadi beberapa kali, Frame Grabber tidak sinkron dengan kamera dan serial mengalami timeout. Biasanya jika Anda menekan "Stop" sebelum mengubah parameter, dan memastikan bahwa Anda mengatur "Refresh Interval" ke nilai yang lebih besar untuk gambar resolusi tinggi, maka Anda tidak akan mendapatkan kesalahan komunikasi atau timeout.

Mengapa saya tidak bisa melakukan loop dengan gambar resolusi tinggi?

  • Ini adalah masalah yang sama seperti yang dijelaskan oleh pertanyaan sebelumnya. Jika "Refresh Interval" terlalu kecil, maka kamera akan meminta gambar lebih cepat daripada yang dapat diproduksinya.