Початок роботи з CamScripter#
Огляд#
Що це таке?#
CamScripter — це інструмент, який допомагає вам писати та налагоджувати власні скрипти для CMUcam3. Він дає змогу писати скрипти, використовуючи мову програмування Lua. Використовуючи цю мову та надане Lua API для CMUcam3, ви можете налаштувати камеру майже для будь-якого використання, яке ви можете уявити. У цьому посібнику ми проведемо вас через процес встановлення, а потім розробимо зразковий скрипт для запуску на камері.
Перш ніж почати#
Цей посібник передбачає:
У вас вже є CMUcam3
You’ve already gotten the camera working, using either the Quick Start Guide or the
SDK installation guideУ вас є все необхідне для підключення камери до вашого комп’ютера
Встановлення, частина 1: Lua, зв’язок через послідовний порт#
Lua#
CamScripter дозволяє вам програмувати CMUcam3, використовуючи мову програмування Lua. Перш ніж ми зможемо це зробити, нам потрібно встановити цю мову на вашому комп’ютері.
Download the appropriate ZIP binary. (For Windows: Lua-Windows or for other users https://luabinaries.sourceforge.net/download.html)
Розпакуйте двійковий файл Lua у
C:\luaВідкрийте командний рядок (у Windows виберіть «Run…» з меню Пуск і введіть „cmd“).
cd до місця, куди ви розпакували файли Lua. Для мене я вводжу „cd C:lua“
Введіть „luax.x.exe -v“, де x — версія 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).
У windows під cygwin використовуйте наступні рядки для компіляції:
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)#
Для CamScripter потрібне середовище виконання Java (версії 6 чи новішої). Якщо у вас ще не встановлено JRE, ви можете завантажити та встановити його тут.
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.
Щоб встановити (лише Windows — для інших ОС дотримуйтесь інструкцій у файлі rxtx INSTALL):
Розпакуйте завантажений RXTX та перейдіть до отриманої папки
Двічі клацніть на Windows
Двічі клацніть на i368-mingw32
Тепер вам доведеться з’ясувати, де розташоване ваше середовище виконання Java. Ймовірно, воно в
C:\Program Files\Java\jre<version number>. Моє, наприклад, розташоване вC:\Program Files\Java\jre1.6.0_01. Скопіюйте файлиrxtxSerial.dllіrxtxParallel.dllз теки RXTX i368-mingw32 до текиjre/bin. Отже, у моєму прикладі я поклав ці два файли до текиC:\Program Files\Java\jre1.6.0_01\bin.
Встановлення, частина 2: Eclipse#
Гаразд, ми майже готові! Залишилося зробити лише кілька речей.
Якщо у вас його ще немає, встановіть Eclipse (версії 3.2 чи новішої). Ви можете встановити його з http://eclipse.org/downloads. Eclipse Classic — це надійний вибір, хоча будь-який з інших перелічених пакетів також повинен працювати. Щоб встановити, просто розпакуйте обраний вами пакет у C:\Program Files\eclipse.
Тепер, коли Eclipse встановлено, нам потрібно встановити CamScripter як плагін Eclipse:
Відкрийте Eclipse, двічі клацнувши eclipse.exe у
C:\Program Files\eclipse\Натисніть Enter, щоб прийняти робочий простір за замовчуванням
Відкрийте майстер встановлення/оновлення, вибравши Help -> Software Updates -> Find and Install
Виберіть перемикач «Search for new features to install» і натисніть Next.
Натисніть кнопку «New Remote Site…»
For name, enter Camscripter, and for URL enter
http://cmucam.org/~juanpablo/. Click OK.Переконайтеся, що прапорець поруч із Camscripter позначено, і натисніть кнопку «Finish».
Виберіть «Camscripter» як функцію для встановлення та натисніть Next.
Прийміть ліцензійну угоду та натисніть Далі
Натисніть Finish - Eclipse завантажить плагін для вас
Натисніть «Install», щоб встановити плагін Camscripter.
Натисніть Yes, щоб перезапустити платформу Eclipse
Потім Eclipse перезапуститься зі встановленим для вас плагіном Camscripter. Щоб переконатися, що його встановлено, виберіть 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.
Подання CamScripter
Панель консолі, де відображаються текстові повідомлення
Панель зворотного зв’язку, де відображаються зображення та графічні повідомлення
Виконує код Lua. Ви можете виконати або весь файл, або лише вибрані рядки коду.
Встановлює код Lua на картку SD/MMC CMUcam3
Налаштування#
Ми все встановили! Ще кілька кроків налаштування, і ми програмуватимемо CamScripter.
Завантажте проєкт camscripter на камеру#
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#
Тепер поверніться до Eclipse і відкрийте екран налаштувань 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.Для тих, кому цікаво: luac просто компілює код lua, тоді як luax.x.exe фактично інтерпретує та запускає код. Ми компілюємо код у Eclipse, потім запускаємо його на камері – звідси й luac.
Вкажіть ім’я послідовного порту, до якого ви підключаєте камеру. Ви можете натиснути кнопку «See Serial Ports», щоб побачити список доступних послідовних портів.
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.
Назвіть свій проєкт «Hello» і натисніть кнопку Finish. Потім створіть новий файл, клацнувши File –> New –> File (у Eclipse 3.3 це File –> New –> Other –> General –> File). У полі імені файлу введіть «hello_world.lua», з Hello як батьківською текою. Натисніть кнопку Finish.
Ще раз перевірте, що вашу камеру підключено до послідовного порту вашого комп’ютера. Перш ніж увімкнути камеру, важливо зрозуміти два режими, які підтримує камера:
Автономний: камера взагалі не очікує жодної взаємодії з ПК. За замовчуванням камера запускається в цьому режимі.
Інтерактивний: камера отримує скомпільований код Lua від CamScripter в Eclipse і повертає зворотний зв’язок. Щоб перевести камеру в інтерактивний режим, увімкніть її, і коли ви побачите, що світиться помаранчевий світлодіод, натисніть кнопку камери (у вас є 3 секунди, щоб натиснути кнопку). У цей момент помаранчевий світлодіод блимне кілька разів, повідомляючи вам, що ми входимо в інтерактивний режим. Якщо все пройшло добре, ви побачите повідомлення Welcome to CamScripter Interactive mode. Click the execute button to run a script.
Запустімо камеру в інтерактивному режимі, щоб ми могли виконати нашу першу програму Lua.
У вікні редактора введіть рядок коду:
print("Hello, World!");
Збережіть файл і натисніть кнопку Execute у поданні CamScripter. І вуаля!! Ваш код пройде дротом до камери, яка виконає його та надішле назад повідомлення, яке ви надрукували.
Тепер спробуймо щось трохи цікавіше. Додайте три додаткові рядки коду, щоб ваш файл hello_world.lua містив:
print("Hello, World!");
take_picture("pic_name");
print_picture("pic_name");
print("It's a picture!");
Тепер знову натисніть кнопку Execute. Цього разу виконання займе більше часу, оскільки надсилання зображень через послідовний порт досить тривале. Однак, щойно воно завершиться, ви повинні побачити ваші два повідомлення в області консолі CamScripter, а зображення, яке ви зробили камерою, в області зворотного зв’язку (ви ж зняли кришку об’єктива, чи не так?)
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.
Корисні посилання#
Тепер CamScripter повністю встановлено та налаштовано, і ви побачили невеликий приклад, що демонструє його функціональність. Якщо ви хочете побачити більші приклади використання Camscripter, погляньте на зразкові програми, включені до каталогу camscripter/examples. Кілька інших приміток і посилань, які можуть вам допомогти:
CamScripter Lua API описує функції CMUcam3, які ви можете використовувати у своїх програмах Lua для керування діями CMUcam3.
Ось кілька посилань, які допоможуть вам почати роботу з Lua. Зверніть увагу, що зовнішні бібліотеки, як-от бібліотеки string і math, не включено до версії Lua, встановленої на CMUcam3. Їх довелося вилучити, щоб інтерпретатор Lua помістився в обмежений простір на CMUcam3.
Посібник Lua Посібник, який допоможе вам розпочати роботу.
Довідковий посібник Lua: Повна документація Lua.
Lua Wiki Корисне місце для пошуку відповідей. Зразки коду, поширені запитання та посилання на інші ресурси.
LuaEclipse is a useful Eclipse plug-in that you may find helpful. It provides syntax highlighting and other facilities to make writing Lua code easier.