Početak rada s CamScripterom#

Pregled#

Što je to?#

CamScripter je alat koji vam pomaže u pisanju i ispravljanju pogrešaka prilagođenih skripti za CMUcam3. Omogućuje pisanje skripti pomoću programskog jezika Lua. Koristeći ovaj jezik i priloženi Lua API za CMUcam3, možete prilagoditi kameru za gotovo bilo koju upotrebu koju možete zamisliti. U ovom vodiču provest ćemo vas kroz proces instalacije, a zatim razviti primjer skripte za pokretanje na kameri.

Prije nego što počnete#

Ovaj vodič pretpostavlja:

Instalacija, 1. dio: Lua, komunikacija preko serijskog priključka#

Lua#

CamScripter vam omogućuje programiranje CMUcam3 pomoću programskog jezika Lua. Prije nego što to možemo učiniti, morat ćemo instalirati ovaj jezik na vaše računalo.

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

  2. Raspakirajte Lua binarnu datoteku u C:\lua

  3. Otvorite naredbeni redak (u Windowsima odaberite „Run…” iz izbornika Start i upišite ‘cmd’).

  4. cd u mjesto gdje ste raspakirali Lua datoteke. Ja upisujem ‘cd C:lua’

  5. Upišite ‘luax.x.exe -v’ gdje je x verzija 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).

U Windowsima pod cygwinom, koristite sljedeće linije za kompajliranje:

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)#

Za CamScripter je potrebno Java Runtime Environment (verzija 6 ili novija). Ako već nemate instaliran JRE, možete ga preuzeti i instalirati ovdje.

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.

Za instalaciju (samo Windows - za druge OS-ove, slijedite upute u rxtx INSTALL datoteci):

  1. Raspakirajte preuzeti RXTX i navigirajte u dobivenu mapu

  2. Dvaput kliknite na Windows

  3. Dvaput kliknite na i368-mingw32

  4. Sada ćete morati otkriti gdje se nalazi vaše Java Run-time okruženje. Vjerojatno je u C:\Program Files\Java\jre<version number>. Moje se, na primjer, nalazi u C:\Program Files\Java\jre1.6.0_01. Kopirajte datoteke rxtxSerial.dll i rxtxParallel.dll iz mape RXTX i368-mingw32 u mapu jre/bin. Dakle, u mom primjeru, te dvije datoteke stavio sam u mapu C:\Program Files\Java\jre1.6.0_01\bin.

Instalacija, 2. dio: Eclipse#

U redu, gotovo smo spremni! Ostalo je samo nekoliko stvari za napraviti.

Ako ga već nemate, instalirajte Eclipse (verzija 3.2 ili novija). Možete ga instalirati s http://eclipse.org/downloads. Eclipse Classic je siguran izbor, iako bi trebao raditi i bilo koji od ostalih navedenih paketa. Za instalaciju jednostavno raspakirajte odabrani paket u C:\Program Files\eclipse.

Sada kada je Eclipse instaliran, moramo instalirati CamScripter kao Eclipse dodatak:

  1. Otvorite Eclipse dvostrukim klikom na eclipse.exe u C:\Program Files\eclipse\

  2. Pritisnite Enter za prihvaćanje zadanog radnog prostora

  3. Otvorite čarobnjak Install/Update odabirom Help -> Software Updates -> Find and Install

  4. Odaberite radio gumb „Search for new features to install” i kliknite Next.

  5. Kliknite tipku „New Remote Site…”

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

  7. Provjerite je li okvir pored Camscriptera označen i kliknite tipku „Finish”.

  8. Odaberite „Camscripter” kao značajku za instalaciju i kliknite Next.

  9. Prihvatite licencni ugovor i kliknite Next

  10. Kliknite Finish - Eclipse će preuzeti dodatak za vas

  11. Kliknite „Install” za instalaciju Camscripter dodatka.

  12. Kliknite Yes za ponovno pokretanje Eclipse Platforme

Eclipse će se zatim ponovno pokrenuti, s instaliranim Camscripter dodatkom. Kako biste bili sigurni da je instaliran, odaberite 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. CamScripter prikaz

  2. Konzolno okno u kojem se prikazuju tekstualne poruke

  3. Okno povratnih informacija u kojem se prikazuju slikovne i grafičke poruke

  4. Izvršava Lua kod. Možete izvršiti cijelu datoteku ili samo odabrane linije koda.

  5. Instalira Lua kod na SD/MMC karticu CMUcam3

Postavljanje#

Sve smo instalirali! Samo nekoliko koraka postavljanja i programirat ćemo CamScripter.

Učitajte camscripter projekt na kameru#

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.

Postavite CamScripter postavke#

Sada se vratite u Eclipse i otvorite zaslon 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.

    • Za one koji su zainteresirani, luac jednostavno kompajlira lua kod, dok luax.x.exe zapravo interpretira i pokreće kod. Mi kompajliramo kod u Eclipseu, a zatim ga pokrećemo na kameri – otuda, luac.

  • Navedite naziv serijskog priključka na koji spajate svoju kameru. Možete kliknuti gumb „See Serial Ports” za prikaz popisa dostupnih serijskih priključaka.

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.

Nazovite svoj projekt „Hello” i kliknite gumb Finish. Zatim izradite novu datoteku klikom na File –> New –> File (U Eclipseu 3.3. to je File –> New –> Other –> General –> File). U polje za naziv datoteke unesite „hello_world.lua”, s Hello kao nadređenom mapom. Kliknite gumb Finish.

Dvaput provjerite je li vaša kamera spojena na serijski priključak vašeg računala. Prije nego što uključite kameru, važno je razumjeti dva načina rada koja kamera podržava:

  • Samostalno: kamera uopće ne očekuje nikakvu interakciju s računalom. Prema zadanim postavkama kamera se pokreće u ovom načinu rada.

  • Interaktivno: kamera prima kompilirani Lua kod od CamScriptera u Eclipseu i vraća povratnu informaciju. Da biste kameru stavili u interaktivni način rada, uključite je i kada vidite da svijetli narančasti LED, pritisnite tipku kamere (imate 3 sekunde za pritisak tipke). U tom će trenutku narančasti LED nekoliko puta zatreptati dajući vam do znanja da ulazimo u interaktivni način rada. Ako je sve prošlo u redu, vidjet ćete poruku Welcome to CamScripter Interactive mode. Click the execute button to run a script.

Pokrenimo kameru u interaktivnom načinu rada kako bismo mogli izvršiti naš prvi Lua program.

U prozoru uređivača unesite liniju koda:

print("Hello, World!");

Spremite datoteku i kliknite gumb Execute u prikazu CamScripter. I voilà!! Vaš kod otići će žicom do kamere, koja ga je izvršila i vratila poruku koju ste ispisali.

Sada pokušajmo nešto malo zanimljivije. Dodajte tri dodatna retka koda tako da vaša datoteka hello_world.lua sadrži:

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

Sada ponovno kliknite gumb Execute. Ovaj put će izvršavanje trajati dulje jer je slanje slika kroz serijski priključak prilično dugotrajno. Kada završi, ipak biste trebali vidjeti svoje dvije poruke u području Console CamScriptera i sliku koju ste snimili kamerom u području Feedback (skinuli ste poklopac leće, zar ne?)

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.