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 guideBạ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.
Download the appropriate ZIP binary. (For Windows: Lua-Windows or for other users https://luabinaries.sourceforge.net/download.html)
Giải nén tệp nhị phân Lua vào
C:\luaMở một command prompt (trong Windows, chọn "Run..." từ menu Start, và gõ 'cmd').
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'
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):
Giải nén bản tải xuống RXTX, và điều hướng vào thư mục kết quả
Nhấp đúp vào Windows
Nhấp đúp vào i368-mingw32
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 tinrxtxSerial.dllvàrxtxParallel.dlltừ thư mục RXTX i368-mingw32 vào thư mụcjre/bin. Vì vậy trong ví dụ của tôi, tôi đặt hai tập tin đó vào thư mụcC:\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:
Mở Eclipse bằng cách nhấp đúp vào eclipse.exe trong
C:\Program Files\eclipse\Nhấn Enter để chấp nhận workspace mặc định
Mở trình hướng dẫn Install/Update bằng cách chọn Help -> Software Updates -> Find and Install
Chọn nút radio "Search for new features to install", và nhấp Next.
Nhấp nút "New Remote Site..."
For name, enter Camscripter, and for URL enter
http://cmucam.org/~juanpablo/. Click OK.Chắc chắn rằng ô bên cạnh Camscripter được chọn, và nhấp nút "Finish".
Chọn "Camscripter" làm tính năng để cài đặt, và nhấp Next.
Chấp nhận thỏa thuận cấp phép, và nhấp Next
Nhấp Finish - Eclipse sẽ tải plug-in cho bạn
Nhấp "Install" để cài đặt plug-in Camscripter.
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.
Khung Nhìn CamScripter
Khung console nơi hiển thị các thông báo văn bản
Khung phản hồi nơi hiển thị các thông báo ảnh và đồ họa
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.
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.
Các Liên Kết Hữu Ích#
CamScripter giờ đã được cài đặt và cấu hình hoàn chỉnh, và bạn đã thấy một ví dụ nhỏ thể hiện chức năng của nó. Nếu bạn muốn thấy một số ví dụ lớn hơn sử dụng CamScripter, hãy xem các chương trình mẫu được bao gồm trong thư mục camscripter/examples. Một vài ghi chú và liên kết khác có thể giúp bạn:
CamScripter Lua API mô tả các hàm CMUcam3 mà bạn có thể sử dụng trong các chương trình Lua của mình để điều khiển các hành động của CMUcam3.
Đây là một số liên kết giúp bạn bắt đầu sử dụng Lua. Lưu ý rằng các thư viện ngoài như thư viện string và math không được bao gồm trong phiên bản Lua được cài đặt trên CMUcam3. Chúng phải được lược bỏ để trình thông dịch Lua vừa với không gian hạn chế trên CMUcam3.
Lua Tutorial Một hướng dẫn giúp bạn bắt đầu.
Lua Reference Manual: Tài liệu đầy đủ về Lua.
Lua Wiki Một nơi hữu ích để tìm câu trả lời. Mã mẫu, FAQ, và các liên kết đến các tài nguyên khác.
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.