Erste Schritte mit CamScripter#

Überblick#

Was ist das?#

Der CamScripter ist ein Werkzeug, das Sie beim Schreiben und Debuggen benutzerdefinierter Skripte für die CMUcam3 unterstützt. Er macht es möglich, Skripte mit der Programmiersprache Lua zu schreiben. Mit dieser Sprache und der bereitgestellten Lua API für die CMUcam3 können Sie die Kamera für nahezu jeden Zweck anpassen, den Sie sich vorstellen können. In diesem Tutorial führen wir Sie durch den Installationsprozess und entwickeln dann ein Beispielskript, das auf der Kamera ausgeführt wird.

Bevor Sie beginnen#

Dieses Tutorial setzt voraus:

  • Sie besitzen bereits eine CMUcam3

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

  • Sie haben alles, was Sie benötigen, um die Kamera an Ihren Computer anzuschließen

Installation, Teil 1: Lua, serielle Portkommunikation#

Lua#

Der CamScripter ermöglicht es Ihnen, die CMUcam3 mit der Programmiersprache Lua zu programmieren. Bevor wir das tun können, müssen wir diese Sprache auf Ihrem Computer installieren.

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

  2. Entpacken Sie die Lua-Binärdatei nach C:\lua

  3. Öffnen Sie eine Eingabeaufforderung (wählen Sie in Windows „Ausführen…“ aus dem Startmenü und geben Sie ‚cmd‘ ein).

  4. cd in das Verzeichnis, in das Sie die Lua-Dateien entpackt haben. Bei mir tippe ich ‚cd C:lua‘

  5. Geben Sie ‚luax.x.exe -v‘ ein, wobei x die Lua-Version ist

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

Verwenden Sie unter Windows mit cygwin die folgenden Zeilen zum Kompilieren:

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

Für den CamScripter wird eine Java-Laufzeitumgebung (Version 6 oder höher) benötigt. Falls Sie noch keine JRE installiert haben, können Sie eine hier herunterladen und installieren.

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.

Zum Installieren (nur Windows – für andere Betriebssysteme befolgen Sie die Anweisungen in der rxtx-INSTALL-Datei):

  1. Entpacken Sie den RXTX-Download und navigieren Sie in den resultierenden Ordner

  2. Doppelklicken Sie auf Windows

  3. Doppelklicken Sie auf i368-mingw32

  4. Nun müssen Sie herausfinden, wo sich Ihre Java-Laufzeitumgebung befindet. Sie befindet sich wahrscheinlich in C:\Program Files\Java\jre<version number>. Meine befindet sich zum Beispiel in C:\Program Files\Java\jre1.6.0_01. Kopieren Sie die Dateien rxtxSerial.dll und rxtxParallel.dll aus dem Ordner RXTX i368-mingw32 in den Ordner jre/bin. In meinem Beispiel lege ich diese beiden Dateien also in den Ordner C:\Program Files\Java\jre1.6.0_01\bin.

Installation, Teil 2: Eclipse#

Okay, wir sind fast startklar! Nur noch ein paar Dinge sind zu erledigen.

Falls Sie es noch nicht haben, installieren Sie Eclipse (Version 3.2 oder neuer). Sie können es von http://eclipse.org/downloads installieren. Eclipse Classic ist eine sichere Wahl, obwohl auch jedes der anderen aufgeführten Pakete funktionieren sollte. Zur Installation entpacken Sie einfach das von Ihnen gewählte Paket nach C:\Program Files\eclipse.

Nachdem Eclipse installiert ist, müssen wir den CamScripter als Eclipse-Plugin installieren:

  1. Öffnen Sie Eclipse durch Doppelklick auf eclipse.exe in C:\Program Files\eclipse\

  2. Drücken Sie Enter, um den Standard-Arbeitsbereich zu akzeptieren

  3. Öffnen Sie den Installations-/Aktualisierungsassistenten, indem Sie Help -> Software Updates -> Find and Install auswählen

  4. Wählen Sie das Optionsfeld „Search for new features to install“ und klicken Sie auf Next.

  5. Klicken Sie auf die Schaltfläche „New Remote Site…“

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

  7. Stellen Sie sicher, dass das Kästchen neben Camscripter aktiviert ist, und klicken Sie auf die Schaltfläche „Finish“.

  8. Wählen Sie „Camscripter“ als zu installierende Funktion und klicken Sie auf Next.

  9. Akzeptieren Sie die Lizenzvereinbarung und klicken Sie auf Weiter

  10. Klicken Sie auf Finish - Eclipse lädt das Plug-in für Sie herunter

  11. Klicken Sie auf „Install“, um das Camscripter-Plug-in zu installieren.

  12. Klicken Sie auf Yes, um die Eclipse-Plattform neu zu starten

Eclipse startet dann neu, wobei das Camscripter-Plugin für Sie installiert ist. Um sicherzustellen, dass es installiert ist, wählen Sie 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-Ansicht

  2. Konsolenbereich, in dem Textnachrichten angezeigt werden

  3. Feedback-Bereich, in dem Bild- und Grafiknachrichten angezeigt werden

  4. Führt Lua-Code aus. Sie können entweder eine ganze Datei oder nur ausgewählte Codezeilen ausführen.

  5. Installiert Lua-Code auf der SD/MMC-Karte der CMUcam3

Einrichtung#

Wir haben alles installiert! Nur noch ein paar Einrichtungsschritte und wir werden den CamScripter programmieren.

camscripter-Projekt auf die Kamera laden#

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.

CamScripter-Einstellungen festlegen#

Gehen Sie nun zurück zu Eclipse und öffnen Sie den CamScripter-Einstellungsbildschirm: 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.

    • Für Interessierte: luac kompiliert einfach den Lua-Code, während luax.x.exe den Code tatsächlich interpretiert und ausführt. Wir kompilieren den Code in Eclipse und führen ihn dann auf der Kamera aus – daher luac.

  • Geben Sie den Namen des seriellen Ports an, mit dem Sie Ihre Kamera verbinden. Sie können auf die Schaltfläche „See Serial Ports“ klicken, um eine Liste der verfügbaren seriellen Ports anzuzeigen.

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.

Benennen Sie Ihr Projekt „Hello“ und klicken Sie auf die Schaltfläche Finish. Erstellen Sie dann eine neue Datei, indem Sie auf File –> New –> File klicken (in Eclipse 3.3 ist es File –> New –> Other –> General –> File). Geben Sie im Dateinamenfeld „hello_world.lua“ ein, mit Hello als übergeordnetem Ordner. Klicken Sie auf die Schaltfläche Finish.

Vergewissern Sie sich noch einmal, dass Ihre Kamera mit dem seriellen Port Ihres Computers verbunden ist. Bevor Sie die Kamera einschalten, ist es wichtig, die beiden Modi zu verstehen, die die Kamera unterstützt:

  • Standalone: Die Kamera erwartet überhaupt keine Interaktion mit dem PC. Standardmäßig startet die Kamera in diesem Modus.

  • Interaktiv: Die Kamera empfängt kompilierten Lua-Code von CamScripter in Eclipse und gibt Rückmeldung. Um die Kamera in den interaktiven Modus zu versetzen, schalten Sie sie ein und drücken Sie, wenn die orangefarbene LED leuchtet, die Kamerataste (Sie haben 3 Sekunden Zeit, um die Taste zu drücken). An diesem Punkt blinkt die orangefarbene LED mehrmals, um Ihnen mitzuteilen, dass wir in den interaktiven Modus wechseln. Wenn alles gut gegangen ist, sehen Sie die Nachricht Welcome to CamScripter Interactive mode. Click the execute button to run a script.

Lassen Sie uns die Kamera im interaktiven Modus starten, damit wir unser erstes Lua-Programm ausführen können.

Geben Sie im Editorfenster die Codezeile ein:

print("Hello, World!");

Speichern Sie die Datei und klicken Sie in der CamScripter-Ansicht auf die Schaltfläche Execute. Und voilà!! Ihr Code wird über die Leitung an die Kamera gegangen sein, die ihn ausgeführt und die von Ihnen ausgegebene Nachricht zurückgesendet hat.

Lassen Sie uns nun etwas Interessanteres versuchen. Fügen Sie drei zusätzliche Codezeilen hinzu, sodass Ihre Datei hello_world.lua Folgendes enthält:

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

Klicken Sie nun erneut auf die Schaltfläche Execute. Die Ausführung dauert diesmal länger, da das Senden von Bildern über den seriellen Port recht zeitaufwändig ist. Sobald es jedoch fertig ist, sollten Sie Ihre beiden Nachrichten im Konsolenbereich des CamScripter sehen und das mit der Kamera aufgenommene Bild im Feedback-Bereich (Sie haben doch die Objektivkappe entfernt, oder?)

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.