Első lépések a CamScripterrel#

Áttekintés#

Mi ez?#

A CamScripter egy eszköz, amely segít a CMUcam3-hoz testreszabott szkriptek írásában és hibakeresésében. Lehetővé teszi szkriptek írását a Lua programozási nyelv használatával. Ennek a nyelvnek és a CMUcam3-hoz biztosított Lua API-nak a használatával a kamerát szinte bármilyen elképzelhető célra testreszabhatja. Ebben az oktatóanyagban végigvezetjük a telepítési folyamaton, majd kifejlesztünk egy mintaszkriptet a kamerán való futtatáshoz.

Mielőtt hozzákezdene#

Ez az oktatóanyag feltételezi:

  • Már van egy CMUcam3-a

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

  • Mindene megvan, ami a kamera számítógéphez való csatlakoztatásához szükséges

Telepítés, 1. rész: Lua, soros port kommunikáció#

Lua#

A CamScripter lehetővé teszi a CMUcam3 programozását a Lua programozási nyelv használatával. Mielőtt ezt megtehetnénk, telepítenünk kell ezt a nyelvet a számítógépére.

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

  2. Csomagolja ki a Lua binárist a C:\lua mappába

  3. Nyisson meg egy parancssort (Windowsban válassza a „Run…” lehetőséget a Start menüből, és gépelje be a «cmd»-t).

  4. cd oda, ahová kicsomagolta a Lua fájlokat. Én a «cd C:lua»-t gépelem be

  5. Gépelje be a «luax.x.exe -v»-t, ahol az x a Lua verzió

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

Windowson cygwin alatt a következő sorokkal fordíthat:

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

A CamScripterhez Java Runtime Environmentre (6-os vagy újabb verzió) van szükség. Ha még nincs telepítve JRE, letölthet és telepíthet egyet itt.

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.

A telepítéshez (csak Windows - más operációs rendszerek esetén kövesse az rxtx INSTALL fájlban lévő utasításokat):

  1. Csomagolja ki az RXTX letöltést, és navigáljon a kapott mappába

  2. Kattintson duplán a Windows mappára

  3. Kattintson duplán az i368-mingw32 mappára

  4. Most ki kell derítenie, hogy hol található a Java futtatókörnyezete. Valószínűleg a C:\Program Files\Java\jre<verziószám> mappában van. Az enyém például a C:\Program Files\Java\jre1.6.0_01 mappában található. Másolja a rxtxSerial.dll és rxtxParallel.dll fájlokat az RXTX i368-mingw32 mappából a jre/bin mappába. Tehát az én példámban ezt a két fájlt a C:\Program Files\Java\jre1.6.0_01\bin mappába tettem.

Telepítés, 2. rész: Eclipse#

Rendben, majdnem készen állunk! Már csak néhány tennivaló van hátra.

Ha még nincs meg, telepítse az Eclipse-t (3.2-es vagy újabb verzió). Telepítheti a http://eclipse.org/downloads oldalról. Az Eclipse Classic biztos választás, bár a felsorolt többi csomag bármelyike is működnie kell. A telepítéshez egyszerűen csomagolja ki a választott csomagot a C:\Program Files\eclipse mappába.

Most, hogy az Eclipse telepítve van, telepítenünk kell a CamScriptert Eclipse pluginként:

  1. Nyissa meg az Eclipse-t az eclipse.exe fájlra való dupla kattintással a C:\Program Files\eclipse\ mappában

  2. Nyomja meg az Entert az alapértelmezett munkaterület elfogadásához

  3. Nyissa meg a Telepítés/Frissítés varázslót a Help -> Software Updates -> Find and Install kiválasztásával

  4. Válassza a „Search for new features to install” választógombot, és kattintson a Next gombra.

  5. Kattintson a „New Remote Site…” gombra

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

  7. Győződjön meg róla, hogy a Camscripter melletti négyzet be van jelölve, és kattintson a „Finish” gombra.

  8. Válassza a „Camscripter”-t telepítendő funkcióként, és kattintson a Next gombra.

  9. Fogadja el a licencszerződést, és kattintson a Next gombra

  10. Kattintson a Finish gombra - az Eclipse letölti Önnek a plug-int

  11. Kattintson az „Install” gombra a Camscripter plug-in telepítéséhez.

  12. Kattintson a Yes gombra az Eclipse Platform újraindításához

Az Eclipse ezután újraindul, telepítve az Ön számára a Camscripter plugint. Hogy megbizonyosodjon a telepítésről, válassza a Window -> Show View -> Other… menüpontot.

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 nézet

  2. Konzol ablaktábla, ahol a szöveges üzenetek megjelennek

  3. Visszajelző ablaktábla, ahol a kép- és grafikus üzenetek megjelennek

  4. Lua kódot hajt végre. Végrehajthat egy egész fájlt, vagy csak a kód kiválasztott sorait.

  5. Telepíti a Lua kódot a CMUcam3 SD/MMC-kártyájára

Beállítás#

Mindent telepítettünk! Már csak néhány beállítási lépés, és programozni fogjuk a CamScriptert.

Töltse be a camscripter projektet a kamerára#

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.

A CamScripter beállításainak megadása#

Most menjen vissza az Eclipse-be, és nyissa meg a CamScripter beállítások képernyőt: 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.

    • Az érdeklődők számára: a luac egyszerűen lefordítja a lua kódot, míg a luax.x.exe ténylegesen értelmezi és futtatja a kódot. Az Eclipse-ben fordítjuk a kódot, majd a kamerán futtatjuk – innen a luac.

  • Adja meg annak a soros portnak a nevét, amelyhez a kameráját csatlakoztatja. A „See Serial Ports” gombra kattintva megtekintheti az elérhető soros portok listáját.

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.

Nevezze el a projektjét „Hello”-nak, és kattintson a Finish gombra. Ezután hozzon létre egy új fájlt a File –> New –> File gombra kattintva (Eclipse 3.3-ban ez a File –> New –> Other –> General –> File). A fájlnév mezőbe írja be a „hello_world.lua” nevet, a Hello szülőmappával. Kattintson a Finish gombra.

Ellenőrizze, hogy a kamera csatlakoztatva van-e a számítógép soros portjához. Mielőtt bekapcsolná a kamerát, fontos megérteni azt a két módot, amelyet a kamera támogat:

  • Önálló (standalone): a kamera egyáltalán nem vár interakciót a PC-vel. Alapértelmezés szerint a kamera ebben a módban indul.

  • Interaktív: a kamera lefordított Lua kódot fogad a CamScriptertől az Eclipse-ben, és visszajelzést ad. A kamera interaktív módba helyezéséhez kapcsolja be, és amikor látja, hogy a narancssárga LED világít, nyomja meg a kamera gombját (3 másodperce van a gomb megnyomására). Ekkor a narancssárga LED többször felvillan, jelezve, hogy interaktív módba lépünk. Ha minden jól ment, megjelenik a Welcome to CamScripter Interactive mode. Click the execute button to run a script. üzenet.

Indítsuk el a kamerát interaktív módban, hogy végrehajthassuk az első Lua programunkat.

A szerkesztőablakban írja be a következő kódsort:

print("Hello, World!");

Mentse el a fájlt, és kattintson az Execute gombra a CamScripter nézetben. És íme!! A kódja átment a vezetéken a kamerához, amely végrehajtotta azt, és visszaküldte az Ön által kiírt üzenetet.

Most próbáljunk ki valami egy kicsit érdekesebbet. Adjon hozzá három további kódsort, hogy a hello_world.lua fájlja a következőt tartalmazza:

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

Most kattintson újra az Execute gombra. Ezúttal tovább fog tartani a végrehajtás, mivel a képek soros porton keresztüli küldése meglehetősen időigényes. Amint befejeződik azonban, látnia kell a két üzenetét a CamScripter konzolterületén, valamint a kamerával készített képet a visszajelző területen (levette a lencsevédőt, ugye?)

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.