Bắt Đầu với CamScripter#

Tổng Quan#

Nó là gì?#

CamScripter là một công cụ hỗ trợ bạn trong việc viết và gỡ lỗi các script tùy chỉnh cho CMUcam3. Nó giúp có thể viết các script bằng ngôn ngữ lập trình Lua. Sử dụng ngôn ngữ này và Lua API được cung cấp cho CMUcam3, bạn có thể tùy chỉnh camera cho gần như bất kỳ mục đích sử dụng nào bạn có thể nghĩ đến. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn qua quá trình cài đặt và sau đó phát triển một script mẫu để chạy trên camera.

Trước Khi Bạn Bắt Đầu#

Hướng dẫn này giả định:

  • Bạn đã có một CMUcam3

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

  • Bạn có mọi thứ cần thiết để kết nối camera với máy tính của bạn

Cài Đặt, Phần 1: Lua, Truyền Thông Cổng Serial#

Lua#

CamScripter cho phép bạn lập trình CMUcam3 bằng ngôn ngữ lập trình Lua. Trước khi chúng ta có thể làm điều đó, chúng ta sẽ cần cài đặt ngôn ngữ này trên máy tính của bạn.

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

  2. Giải nén tệp nhị phân Lua vào C:\lua

  3. Mở một command prompt (trong Windows, chọn "Run..." từ menu Start, và gõ 'cmd').

  4. cd đến bất cứ nơi nào bạn đã giải nén các tập tin Lua. Đối với tôi, tôi gõ 'cd C:lua'

  5. Gõ 'luax.x.exe -v' trong đó x là phiên bản 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).

Trong windows dưới cygwin, hãy sử dụng các dòng sau để biên dịch:

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

Môi Trường Chạy Java (JRE)#

Cần một Môi Trường Chạy Java (phiên bản 6 trở lên) cho CamScripter. Nếu bạn chưa cài đặt JRE, bạn có thể tải xuống và cài đặt một cái tại đây.

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.

Để cài đặt (chỉ Windows - đối với các hệ điều hành khác, hãy làm theo hướng dẫn trong tập tin rxtx INSTALL):

  1. Giải nén bản tải xuống RXTX, và điều hướng vào thư mục kết quả

  2. Nhấp đúp vào Windows

  3. Nhấp đúp vào i368-mingw32

  4. Bây giờ bạn sẽ phải tìm hiểu xem môi trường Java Run-time của bạn nằm ở đâu. Nó có lẽ nằm ở C:\Program Files\Java\jre<số phiên bản>. Của tôi, ví dụ, nằm ở C:\Program Files\Java\jre1.6.0_01. Sao chép các tập tin rxtxSerial.dllrxtxParallel.dll từ thư mục RXTX i368-mingw32 vào thư mục jre/bin. Vì vậy trong ví dụ của tôi, tôi đặt hai tập tin đó vào thư mục C:\Program Files\Java\jre1.6.0_01\bin.

Cài Đặt, Phần 2: Eclipse#

Được rồi, chúng ta gần như đã sẵn sàng! Chỉ còn vài thứ phải làm.

Nếu bạn chưa có nó, hãy cài đặt Eclipse (phiên bản 3.2 hoặc mới hơn). Bạn có thể cài đặt nó từ http://eclipse.org/downloads. Eclipse Classic là một lựa chọn an toàn, mặc dù bất kỳ gói nào khác được liệt kê cũng sẽ hoạt động tốt. Để cài đặt, chỉ cần giải nén gói bạn chọn vào C:\Program Files\eclipse.

Bây giờ Eclipse đã được cài đặt, chúng ta cần cài đặt CamScripter dưới dạng một plugin của Eclipse:

  1. Mở Eclipse bằng cách nhấp đúp vào eclipse.exe trong C:\Program Files\eclipse\

  2. Nhấn Enter để chấp nhận workspace mặc định

  3. Mở trình hướng dẫn Install/Update bằng cách chọn Help -> Software Updates -> Find and Install

  4. Chọn nút radio "Search for new features to install", và nhấp Next.

  5. Nhấp nút "New Remote Site..."

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

  7. Chắc chắn rằng ô bên cạnh Camscripter được chọn, và nhấp nút "Finish".

  8. Chọn "Camscripter" làm tính năng để cài đặt, và nhấp Next.

  9. Chấp nhận thỏa thuận cấp phép, và nhấp Next

  10. Nhấp Finish - Eclipse sẽ tải plug-in cho bạn

  11. Nhấp "Install" để cài đặt plug-in Camscripter.

  12. Nhấp Yes để khởi động lại Nền tảng Eclipse

Sau đó Eclipse sẽ khởi động lại, với plugin Camscripter đã được cài đặt cho bạn. Để chắc chắn rằng nó đã được cài đặt, chọn 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. Khung Nhìn CamScripter

  2. Khung console nơi hiển thị các thông báo văn bản

  3. Khung phản hồi nơi hiển thị các thông báo ảnh và đồ họa

  4. Thực thi mã Lua. Bạn có thể thực thi cả một tập tin hoặc chỉ các dòng mã được chọn.

  5. Cài đặt mã Lua trên thẻ SD/MMC của CMUcam3

Thiết Lập#

Chúng tôi đã cài đặt mọi thứ! Chỉ vài bước thiết lập và chúng ta sẽ lập trình CamScripter.

Nạp dự án camscripter lên camera#

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.

Đặt CamScripter Preferences#

Bây giờ quay lại Eclipse, và mở màn hình CamScripter Preferences: 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.

    • Đối với những ai quan tâm, luac chỉ đơn giản biên dịch mã lua, trong khi luax.x.exe thực sự thông dịch và chạy mã. Chúng ta biên dịch mã trong Eclipse, sau đó chạy nó trên camera -- do đó, luac.

  • Cung cấp tên của cổng serial mà bạn kết nối camera của mình. Bạn có thể nhấp nút "See Serial Ports" để xem một danh sách các cổng serial khả dụng.

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.

Đặt tên cho dự án của bạn là "Hello", và nhấp nút Finish. Sau đó tạo một tập tin mới bằng cách nhấp File --> New --> File (Trong Eclipse 3.3. Đó là File --> New --> Other --> General --> File). Trong ô tên tập tin, nhập "hello_world.lua", với Hello làm thư mục cha. Nhấp nút Finish.

Kiểm tra lại rằng camera của bạn được kết nối với cổng serial của máy tính. Trước khi bạn bật camera, điều quan trọng là phải hiểu hai chế độ mà camera hỗ trợ:

  • Độc Lập: camera không mong đợi bất kỳ tương tác nào với PC. Theo mặc định camera khởi động ở chế độ này.

  • Tương Tác: camera nhận mã Lua đã biên dịch từ CamScripter trong Eclipse và trả về phản hồi. Để đưa camera vào chế độ tương tác, hãy bật nó lên và khi bạn thấy LED màu cam sáng, nhấn nút camera (bạn có 3 giây để nhấn nút). Tại thời điểm đó, LED màu cam sẽ nhấp nháy vài lần để cho bạn biết rằng chúng ta đang vào chế độ tương tác. Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy thông báo Welcome to CamScripter Interactive mode. Click the execute button to run a script.

Hãy khởi động camera ở chế độ tương tác để chúng ta có thể thực thi chương trình Lua đầu tiên của mình.

Trong cửa sổ soạn thảo, nhập dòng mã:

print("Hello, World!");

Lưu tập tin và nhấp nút Execute trong khung nhìn CamScripter. Và Voila!! Mã của bạn sẽ đã đi qua dây tới camera, camera đã thực thi nó, và gửi lại thông báo bạn đã in ra.

Bây giờ hãy thử một thứ gì đó thú vị hơn một chút. Thêm ba dòng mã bổ sung, để tập tin hello_world.lua của bạn chứa:

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

Bây giờ nhấp nút Execute lần nữa. Lần này sẽ mất nhiều thời gian hơn để thực thi, vì việc gửi ảnh qua cổng serial khá tốn thời gian. Tuy nhiên, một khi nó hoàn tất, bạn sẽ thấy hai thông báo của mình trong khu vực Console của CamScripter, và ảnh bạn đã chụp bằng camera trong khu vực Feedback (bạn đã tháo nắp ống kính rồi, phải không?)

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.