Memulai dengan CamScripter#

Ikhtisar#

Apa itu?#

CamScripter adalah alat untuk membantu Anda menulis dan men-debug skrip khusus untuk CMUcam3. Ia memungkinkan penulisan skrip menggunakan bahasa pemrograman Lua. Menggunakan bahasa ini dan Lua API yang disediakan untuk CMUcam3, Anda dapat menyesuaikan kamera untuk hampir semua penggunaan yang dapat Anda pikirkan. Dalam tutorial ini kami akan memandu Anda melalui proses instalasi dan kemudian mengembangkan skrip contoh untuk dijalankan di kamera.

Sebelum Anda Memulai#

Tutorial ini mengasumsikan:

  • Anda sudah memiliki CMUcam3

  • You've already gotten the camera working, using either the Quick Start Guide or the SDK installation guide

  • Anda memiliki semua yang dibutuhkan untuk menghubungkan kamera ke komputer Anda

Instalasi, Bagian 1: Lua, Komunikasi Port Serial#

Lua#

CamScripter memungkinkan Anda memprogram CMUcam3 menggunakan bahasa pemrograman Lua. Sebelum kita dapat melakukan itu, kita perlu menginstal bahasa ini di komputer Anda.

  1. Download the appropriate ZIP binary. (For Windows: Lua-Windows or for other users https://luabinaries.sourceforge.net/download.html)

  2. Unzip biner Lua ke C:\lua

  3. Buka command prompt (di Windows, pilih "Run..." dari menu Start, dan ketik 'cmd').

  4. cd ke mana pun Anda meng-unzip file Lua. Bagi saya, saya ketik 'cd C:lua'

  5. Ketik 'luax.x.exe -v' di mana x adalah versi Lua

Assuming everything went smoothly in your installation, you should see the Lua version number printed out on your screen.

If possible, you should install lua from the CMUcam3 web site. If you want to recompile it on your own, you need to first patch the normal lua source to not use floating point (lua-5.1-no-fp.patch).

Di windows di bawah cygwin, gunakan baris berikut untuk mengompilasi:

cd src
make LUAC_T=luac.exe MYCFLAGS=-mno-cygwin MYLDFLAGS=-mno-cygwin luac.exe
...
make LUA_T=lua.exe MYCFLAGS=-mno-cygwin MYLDFLAGS=-mno-cygwin lua.exe

Java Runtime Environment (JRE)#

Java Runtime Environment (versi 6 atau lebih tinggi) diperlukan untuk CamScripter. Jika Anda belum memiliki JRE terpasang, Anda dapat mengunduh dan memasangnya di sini.

RXTX#

The CamScripter uses the RXTX serial communication library to communicate with the CMUcam3 over your computer's serial port. This library will have to be installed on your computer. First, download RXTX (at least version 2.1). Version 2.1.7 is here: http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip.

Untuk menginstal (Windows saja - untuk OS lain, ikuti instruksi dalam file INSTALL rxtx):

  1. Unzip unduhan RXTX, dan navigasi ke folder yang dihasilkan

  2. Klik ganda pada Windows

  3. Klik ganda pada i368-mingw32

  4. Sekarang Anda harus mencari tahu di mana Java Run-time environment Anda berada. Kemungkinan ada di C:\Program Files\Java\jre<version number>. Milik saya, misalnya, terletak di C:\Program Files\Java\jre1.6.0_01. Salin berkas rxtxSerial.dll dan rxtxParallel.dll dari folder RXTX i368-mingw32 ke folder jre/bin. Jadi dalam contoh saya, saya menempatkan kedua berkas tersebut di folder C:\Program Files\Java\jre1.6.0_01\bin.

Instalasi, Bagian 2: Eclipse#

Baiklah, kita hampir siap! Hanya beberapa hal yang tersisa untuk dilakukan.

Jika Anda belum memilikinya, pasang Eclipse (versi 3.2 atau lebih baru). Anda dapat memasangnya dari http://eclipse.org/downloads. Eclipse Classic adalah pilihan yang aman, meskipun paket lain yang tercantum juga seharusnya bekerja. Untuk memasang, cukup unzip paket pilihan Anda ke C:\Program Files\eclipse.

Sekarang setelah Eclipse terpasang, kita perlu memasang CamScripter sebagai plugin Eclipse:

  1. Buka Eclipse dengan mengklik ganda eclipse.exe di C:\Program Files\eclipse\

  2. Tekan Enter untuk menerima workspace default

  3. Buka wizard Install/Update dengan memilih Help -> Software Updates -> Find and Install

  4. Pilih tombol radio "Search for new features to install", dan klik Next.

  5. Klik tombol "New Remote Site..."

  6. For name, enter Camscripter, and for URL enter http://cmucam.org/~juanpablo/. Click OK.

  7. Pastikan kotak di sebelah Camscripter dicentang, dan klik tombol "Finish".

  8. Pilih "Camscripter" sebagai fitur yang akan dipasang, dan klik Next.

  9. Terima perjanjian lisensi, dan klik Next

  10. Klik Finish - Eclipse akan mengunduh plug-in untuk Anda

  11. Klik "Install" untuk memasang plug-in Camscripter.

  12. Klik Yes untuk memulai ulang Eclipse Platform

Eclipse kemudian akan memulai ulang, dengan plugin Camscripter terpasang untuk Anda. Untuk memastikan itu terpasang, pilih Window -> Show View -> Other...

Click the plus sign next to CMUcam3, select "CamScripter", and click OK. You should see the CamScripter view at the bottom of Eclipse (the area surrounded in red). You can expand the bottom area if it is too small.

  1. Tampilan CamScripter

  2. Panel konsol tempat pesan teks ditampilkan

  3. Panel umpan balik tempat pesan gambar dan grafik ditampilkan

  4. Menjalankan kode Lua. Anda dapat menjalankan seluruh berkas atau hanya baris kode yang dipilih.

  5. Memasang kode Lua pada kartu SD/MMC CMUcam3

Penyiapan#

Kami telah menginstal semuanya! Hanya beberapa langkah penyiapan dan kita akan memprogram CamScripter.

Muat proyek camscripter ke kamera#

Now that we have everything installed, we need to load the camera with our CamScripter project. Run make on the camscripter project located in projects/camscripter (in the source code tree you checked out in Quick Start Guide), and then load the hex file onto the camera. Turn the camera off once the file is loaded.

Atur Preferensi CamScripter#

Sekarang kembali ke Eclipse, dan buka layar CamScripter Preferences: Window --> Preferences --> CamScripter Setup.

  • Set the Luac location to point to your luacx.x.exe (where x is the Lua version) file (note the 'c') wherever you installed Lua in Installation, Part 1: Lua, Serial Port Communication.

    • Bagi yang tertarik, luac hanya mengompilasi kode lua, sedangkan luax.x.exe sebenarnya menafsirkan dan menjalankan kode. Kami mengompilasi kode di Eclipse, lalu menjalankannya di kamera -- karenanya, luac.

  • Berikan nama port serial tempat Anda menghubungkan kamera Anda. Anda dapat mengklik tombol "See Serial Ports" untuk melihat daftar port serial yang tersedia.

Hello, World!#

Now that we have everything installed and configured properly, let's tackle the obligatory Hello, World program. First, you'll have to create a new project. Select File --> New --> Project... You'll get a box allowing you to select the type of project you'd like to create. Double-click "General", select "Project", and click the Next button.

Beri nama proyek Anda "Hello", dan klik tombol Finish. Kemudian buat berkas baru dengan mengklik File --> New --> File (Di Eclipse 3.3 itu adalah File --> New --> Other --> General --> File). Di kotak nama berkas, masukkan "hello_world.lua", dengan Hello sebagai folder induk. Klik tombol Finish.

Periksa kembali bahwa kamera Anda terhubung ke port serial komputer Anda. Sebelum Anda menyalakan kamera, penting untuk memahami dua mode yang didukung kamera:

  • Standalone: kamera tidak mengharapkan interaksi apa pun dengan PC sama sekali. Secara default kamera memulai dalam mode ini.

  • Interaktif: kamera menerima kode Lua yang telah dikompilasi dari CamScripter di Eclipse dan mengembalikan umpan balik. Untuk menempatkan kamera dalam mode interaktif, nyalakan dan ketika Anda melihat LED oranye menyala, tekan tombol kamera (Anda memiliki 3 detik untuk menekan tombol). Pada saat itu, LED oranye akan berkedip beberapa kali memberi tahu Anda bahwa kita memasuki mode interaktif. Jika semuanya berjalan dengan baik, Anda akan melihat pesan Welcome to CamScripter Interactive mode. Click the execute button to run a script.

Mari mulai kamera dalam mode interaktif sehingga kita dapat menjalankan program Lua pertama kita.

Di jendela editor, masukkan baris kode:

print("Hello, World!");

Simpan berkas dan klik tombol Execute di tampilan CamScripter. Dan Voila!! Kode Anda akan telah dikirim melalui kabel ke kamera, yang mengeksekusinya, dan mengirim kembali pesan yang Anda cetak.

Sekarang mari coba sesuatu yang sedikit lebih menarik. Tambahkan tiga baris kode tambahan, sehingga berkas hello_world.lua Anda berisi:

print("Hello, World!");
take_picture("pic_name");
print_picture("pic_name");
print("It's a picture!");

Sekarang klik tombol Execute lagi. Kali ini akan memakan waktu lebih lama untuk dieksekusi, karena mengirim gambar melalui port serial cukup memakan waktu. Namun, setelah selesai, Anda seharusnya melihat kedua pesan Anda di area Console CamScripter, dan gambar yang Anda ambil dengan kamera di area Feedback (Anda sudah melepas tutup lensa, bukan?)

You'll notice that it's a pretty low resolution image. The camera is set to take low resolution pictures by default in the CamScripter, as it takes quite a bit longer to send high resolution images through the serial port. However, you can change the camera to high resolution using function LuaApiFunctions.