CamScripter 시작하기#

개요#

그것은 무엇입니까?#

CamScripter는 CMUcam3용 사용자 정의 스크립트를 작성하고 디버깅하는 데 도움을 주는 도구입니다. Lua 프로그래밍 언어를 사용하여 스크립트를 작성할 수 있게 합니다. 이 언어와 CMUcam3용으로 제공되는 Lua API를 사용하여, 생각할 수 있는 거의 모든 용도로 카메라를 사용자 정의할 수 있습니다. 이 튜토리얼에서는 설치 과정을 안내한 다음 카메라에서 실행할 샘플 스크립트를 개발합니다.

시작하기 전에#

이 튜토리얼은 다음을 가정합니다:

  • 이미 CMUcam3를 가지고 있습니다

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

  • 카메라를 컴퓨터에 연결하는 데 필요한 모든 것을 가지고 있습니다

설치, 1부: Lua, 시리얼 포트 통신#

Lua#

CamScripter를 사용하면 Lua 프로그래밍 언어로 CMUcam3를 프로그래밍할 수 있습니다. 그렇게 하기 전에, 이 언어를 컴퓨터에 설치해야 합니다.

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

  2. Lua 바이너리를 C:\lua에 압축 해제하십시오

  3. 명령 프롬프트를 여십시오 (Windows에서는 시작 메뉴에서 “Run…”을 선택하고 ‘cmd’를 입력하십시오).

  4. Lua 파일의 압축을 푼 위치로 cd 하십시오. 저는, ‘cd C:lua’를 입력합니다

  5. x가 Lua 버전인 ‘luax.x.exe -v’를 입력하십시오

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 런타임 환경(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 전용 - 다른 OS의 경우, rxtx INSTALL 파일의 지침을 따르십시오):

  1. RXTX 다운로드의 압축을 풀고, 결과 폴더로 이동하십시오

  2. Windows를 더블 클릭하십시오

  3. i368-mingw32를 더블 클릭하십시오

  4. 이제 Java 런타임 환경이 어디에 위치하는지 알아내야 합니다. 아마 C:\Program Files\Java\jre<version number>에 있을 것입니다. 예를 들어, 제 것은 C:\Program Files\Java\jre1.6.0_01에 있습니다. RXTX i368-mingw32 폴더에서 rxtxSerial.dllrxtxParallel.dll 파일을 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 플러그인으로 설치해야 합니다:

  1. C:\Program Files\eclipse\에서 eclipse.exe를 더블 클릭하여 Eclipse를 여십시오

  2. 기본 작업 공간을 수락하려면 Enter를 누르십시오

  3. Help -> Software Updates -> Find and Install을 선택하여 설치/업데이트 마법사를 여십시오

  4. “Search for new features to install” 라디오 버튼을 선택하고, Next를 클릭하십시오.

  5. “New Remote Site…” 버튼을 클릭하십시오

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

  7. Camscripter 옆의 상자가 체크되어 있는지 확인하고, “Finish” 버튼을 클릭하십시오.

  8. 설치할 기능으로 “Camscripter”를 선택하고, Next를 클릭하십시오.

  9. 라이선스 계약에 동의하고 Next를 클릭하십시오

  10. Finish를 클릭하십시오 - Eclipse가 플러그인을 다운로드합니다

  11. Camscripter 플러그인을 설치하려면 “Install”을 클릭하십시오.

  12. Eclipse 플랫폼을 다시 시작하려면 Yes를 클릭하십시오

그러면 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.

  1. CamScripter 뷰

  2. 텍스트 메시지가 표시되는 콘솔 창

  3. 이미지 및 그래픽 메시지가 표시되는 피드백 창

  4. Lua 코드를 실행합니다. 전체 파일을 실행하거나 선택한 코드 줄만 실행할 수 있습니다.

  5. CMUcam3의 SD/MMC 카드에 Lua 코드 설치

설정#

모든 것을 설치했습니다! 몇 가지 설정 단계만 거치면 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로 하여 “hello_world.lua”를 입력하십시오. Finish 버튼을 클릭하십시오.

카메라가 컴퓨터의 시리얼 포트에 연결되어 있는지 다시 한 번 확인하십시오. 카메라를 켜기 전에 카메라가 지원하는 두 가지 모드를 이해하는 것이 중요합니다:

  • 독립 실행형: 카메라는 PC와의 어떠한 상호 작용도 기대하지 않습니다. 기본적으로 카메라는 이 모드에서 시작됩니다.

  • 대화형: 카메라는 Eclipse의 CamScripter로부터 컴파일된 Lua 코드를 수신하고 피드백을 반환합니다. 카메라를 대화형 모드로 전환하려면, 카메라를 켜고 주황색 LED가 켜지는 것이 보이면 카메라 버튼을 누르십시오(버튼을 누를 시간이 3초 있습니다). 그 시점에 주황색 LED가 여러 번 깜박이며 대화형 모드로 진입하고 있음을 알려줍니다. 모든 것이 잘 진행되면 Welcome to CamScripter Interactive mode. Click the execute button to run a script. 라는 메시지가 표시됩니다.

첫 번째 Lua 프로그램을 실행할 수 있도록 대화형 모드에서 카메라를 시작해 봅시다.

편집기 창에서, 코드 줄을 입력하십시오:

print("Hello, World!");

파일을 저장하고 CamScripter 뷰에서 Execute 버튼을 클릭하십시오. 그러면 짜잔!! 코드가 유선으로 카메라로 전송되고, 카메라가 이를 실행한 다음, 출력한 메시지를 다시 보냅니다.

이제 좀 더 흥미로운 것을 시도해 봅시다. 세 줄의 코드를 추가하여, 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.