Prise en main de CamScripter#

Aperçu#

Qu’est-ce que c’est ?#

Le CamScripter est un outil destiné à vous aider à écrire et à déboguer des scripts personnalisés pour la CMUcam3. Il permet d’écrire des scripts à l’aide du langage de programmation Lua. À l’aide de ce langage et de l’API Lua fournie pour la CMUcam3, vous pouvez personnaliser la caméra pour presque toute utilisation que vous pouvez imaginer. Dans ce tutoriel, nous vous guiderons à travers le processus d’installation, puis développerons un script d’exemple à exécuter sur la caméra.

Avant de commencer#

Ce tutoriel suppose :

  • Vous avez déjà une CMUcam3

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

  • Vous avez tout ce qu’il faut pour connecter la caméra à votre ordinateur

Installation, partie 1 : Lua, communication par port série#

Lua#

Le CamScripter vous permet de programmer la CMUcam3 à l’aide du langage de programmation Lua. Avant de pouvoir le faire, nous devrons installer ce langage sur votre ordinateur.

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

  2. Décompressez le binaire Lua dans C:\lua

  3. Ouvrez une invite de commande (sous Windows, sélectionnez « Run… » dans le menu Démarrer et tapez « cmd »).

  4. cd vers l’endroit où vous avez décompressé les fichiers Lua. Pour ma part, je tape « cd C:lua »

  5. Tapez « luax.x.exe -v » où x est la version de 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).

Sous Windows avec cygwin, utilisez les lignes suivantes pour compiler :

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

Un environnement d’exécution Java (version 6 ou supérieure) est nécessaire pour le CamScripter. Si vous n’avez pas déjà de JRE installé, vous pouvez en télécharger et en installer un ici.

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.

Pour installer (Windows uniquement - pour les autres systèmes d’exploitation, suivez les instructions du fichier INSTALL de rxtx) :

  1. Décompressez le téléchargement RXTX et accédez au dossier obtenu

  2. Double-cliquez sur Windows

  3. Double-cliquez sur i368-mingw32

  4. Vous devrez maintenant déterminer où se trouve votre environnement d’exécution Java. Il est probablement dans C:\Program Files\Java\jre<version number>. Le mien, par exemple, se trouve dans C:\Program Files\Java\jre1.6.0_01. Copiez les fichiers rxtxSerial.dll et rxtxParallel.dll du dossier RXTX i368-mingw32 dans le dossier jre/bin. Ainsi, dans mon exemple, je place ces deux fichiers dans le dossier C:\Program Files\Java\jre1.6.0_01\bin.

Installation, partie 2 : Eclipse#

Bon, nous sommes presque prêts ! Il ne reste que quelques petites choses à faire.

Si vous ne l’avez pas déjà, installez Eclipse (version 3.2 ou plus récente). Vous pouvez l’installer depuis http://eclipse.org/downloads. Eclipse Classic est un choix sûr, bien que n’importe lequel des autres paquets répertoriés devrait également fonctionner. Pour l’installer, il suffit de décompresser le paquet que vous avez choisi dans C:\Program Files\eclipse.

Maintenant qu’Eclipse est installé, nous devons installer CamScripter en tant que plug-in Eclipse :

  1. Ouvrez Eclipse en double-cliquant sur eclipse.exe dans C:\Program Files\eclipse\

  2. Appuyez sur Entrée pour accepter l’espace de travail par défaut

  3. Ouvrez l’assistant d’installation/mise à jour en sélectionnant Help -> Software Updates -> Find and Install

  4. Sélectionnez le bouton radio « Search for new features to install », puis cliquez sur Next.

  5. Cliquez sur le bouton « New Remote Site… »

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

  7. Assurez-vous que la case à côté de Camscripter est cochée, puis cliquez sur le bouton « Finish ».

  8. Sélectionnez « Camscripter » comme fonctionnalité à installer, puis cliquez sur Next.

  9. Acceptez le contrat de licence, puis cliquez sur Suivant

  10. Cliquez sur Finish - Eclipse téléchargera le plug-in pour vous

  11. Cliquez sur « Install » pour installer le plug-in Camscripter.

  12. Cliquez sur Yes pour redémarrer la plateforme Eclipse

Eclipse redémarrera alors, avec le plug-in Camscripter installé pour vous. Pour vous assurer qu’il est installé, sélectionnez 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. Vue CamScripter

  2. Volet de console où sont affichés les messages texte

  3. Volet de retour où sont affichés les messages d’image et graphiques

  4. Exécute du code Lua. Vous pouvez exécuter soit un fichier entier, soit uniquement certaines lignes de code sélectionnées.

  5. Installe le code Lua sur la carte SD/MMC de la CMUcam3

Configuration#

Nous avons tout installé ! Juste quelques étapes de configuration et nous programmerons le CamScripter.

Charger le projet camscripter sur la camé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.

Définir les préférences de CamScripter#

Retournez maintenant dans Eclipse et ouvrez l’écran des préférences de CamScripter : 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.

    • Pour les personnes intéressées, luac se contente de compiler le code lua, tandis que luax.x.exe interprète et exécute réellement le code. Nous compilons le code dans Eclipse, puis l’exécutons sur la caméra – d’où luac.

  • Indiquez le nom du port série auquel vous connectez votre caméra. Vous pouvez cliquer sur le bouton « See Serial Ports » pour voir une liste des ports série disponibles.

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.

Nommez votre projet « Hello », puis cliquez sur le bouton Finish. Créez ensuite un nouveau fichier en cliquant sur File –> New –> File (dans Eclipse 3.3, c’est File –> New –> Other –> General –> File). Dans la zone du nom de fichier, saisissez « hello_world.lua », avec Hello comme dossier parent. Cliquez sur le bouton Finish.

Vérifiez à nouveau que votre caméra est connectée au port série de votre ordinateur. Avant d’allumer la caméra, il est important de comprendre les deux modes que la caméra prend en charge :

  • Autonome : la caméra n’attend aucune interaction avec le PC. Par défaut, la caméra démarre dans ce mode.

  • Interactif : la caméra reçoit le code Lua compilé depuis CamScripter dans Eclipse et renvoie un retour d’information. Pour mettre la caméra en mode interactif, allumez-la et, lorsque vous voyez la LED orange allumée, appuyez sur le bouton de la caméra (vous avez 3 secondes pour appuyer sur le bouton). À ce moment-là, la LED orange clignotera plusieurs fois pour vous indiquer que nous entrons en mode interactif. Si tout s’est bien passé, vous verrez le message Welcome to CamScripter Interactive mode. Click the execute button to run a script.

Démarrons la caméra en mode interactif afin de pouvoir exécuter notre premier programme Lua.

Dans la fenêtre de l’éditeur, saisissez la ligne de code :

print("Hello, World!");

Enregistrez le fichier et cliquez sur le bouton Execute dans la vue CamScripter. Et voilà !! Votre code aura été transmis à la caméra, qui l’a exécuté et a renvoyé le message que vous avez affiché.

Essayons maintenant quelque chose d’un peu plus intéressant. Ajoutez trois lignes de code supplémentaires, de sorte que votre fichier hello_world.lua contienne :

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

Cliquez maintenant à nouveau sur le bouton Execute. L’exécution prendra plus de temps cette fois, car l’envoi d’images via le port série est assez long. Une fois terminée, cependant, vous devriez voir vos deux messages dans la zone de console de CamScripter, ainsi que l’image que vous avez prise avec la caméra dans la zone de retour (vous avez bien retiré le bouchon d’objectif, n’est-ce pas ?)

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.