CamScripter ile Başlarken#
Genel Bakış#
Nedir?#
CamScripter, CMUcam3 için özelleştirilmiş betikler yazmanıza ve hata ayıklamanıza yardımcı olan bir araçtır. Lua programlama dilini kullanarak betikler yazmayı mümkün kılar. Bu dili ve CMUcam3 için sağlanan Lua API’sini kullanarak, kamerayı aklınıza gelebilecek neredeyse her kullanım için özelleştirebilirsiniz. Bu öğreticide sizi kurulum sürecinde yönlendireceğiz ve ardından kamerada çalıştırmak için örnek bir betik geliştireceğiz.
Başlamadan Önce#
Bu öğretici şunları varsayar:
Zaten bir CMUcam3’ünüz var
You’ve already gotten the camera working, using either the Quick Start Guide or the
SDK installation guideKamerayı bilgisayarınıza bağlamak için gereken her şeye sahipsiniz
Kurulum, Bölüm 1: Lua, Seri Port İletişimi#
Lua#
CamScripter, CMUcam3’ü Lua programlama dilini kullanarak programlamanıza olanak tanır. Bunu yapabilmemizden önce, bu dili bilgisayarınıza kurmamız gerekecek.
Download the appropriate ZIP binary. (For Windows: Lua-Windows or for other users https://luabinaries.sourceforge.net/download.html)
Lua ikili dosyasını
C:\luaiçine açınBir komut istemi açın (Windows’ta, Başlat menüsünden “Run…” seçin ve ‘cmd’ yazın).
Lua dosyalarını çıkardığınız yere cd yapın. Benim için, ‘cd C:lua’ yazıyorum
x’in Lua sürümü olduğu ‘luax.x.exe -v’ yazın
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).
cygwin altında windows’ta, derlemek için aşağıdaki satırları kullanın:
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 Çalışma Zamanı Ortamı (JRE)#
CamScripter için bir Java Runtime Environment (sürüm 6 veya üzeri) gereklidir. Zaten kurulu bir JRE’niz yoksa, buradan indirip kurabilirsiniz.
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.
Kurmak için (yalnızca Windows - diğer işletim sistemleri için, rxtx INSTALL dosyasındaki talimatları izleyin):
RXTX indirmesini açın ve oluşan klasöre gidin
Windows üzerine çift tıklayın
i368-mingw32 üzerine çift tıklayın
Şimdi Java Çalışma Zamanı ortamınızın nerede bulunduğunu bulmanız gerekecek. Muhtemelen
C:\Program Files\Java\jre<sürüm numarası>içindedir. Örneğin benimkiC:\Program Files\Java\jre1.6.0_01içinde bulunuyor.rxtxSerial.dllverxtxParallel.dlldosyalarını RXTX i368-mingw32 klasöründenjre/binklasörüne kopyalayın. Yani benim örneğimde, bu iki dosyayıC:\Program Files\Java\jre1.6.0_01\binklasörüne koydum.
Kurulum, Bölüm 2: Eclipse#
Tamam, gitmeye neredeyse hazırız! Yapılacak birkaç şey kaldı.
Henüz sahip değilseniz, Eclipse (sürüm 3.2 veya daha yenisi) yükleyin. Bunu http://eclipse.org/downloads adresinden yükleyebilirsiniz. Eclipse Classic güvenli bir seçimdir, ancak listelenen diğer paketlerin herhangi biri de çalışmalıdır. Kurmak için, seçtiğiniz paketi C:\Program Files\eclipse içine açmanız yeterlidir.
Artık Eclipse kurulduğuna göre, CamScripter’ı bir Eclipse eklentisi olarak kurmamız gerekiyor:
C:\Program Files\eclipse\içindeki eclipse.exe dosyasına çift tıklayarak Eclipse’i açınVarsayılan çalışma alanını kabul etmek için Enter’a basın
Help -> Software Updates -> Find and Install seçerek Install/Update sihirbazını açın
“Search for new features to install” radyo düğmesini seçin ve Next’e tıklayın.
“New Remote Site…” düğmesine tıklayın
For name, enter Camscripter, and for URL enter
http://cmucam.org/~juanpablo/. Click OK.Camscripter’ın yanındaki kutunun işaretli olduğundan emin olun ve “Finish” düğmesine tıklayın.
Kurulacak özellik olarak “Camscripter” seçin ve Next’e tıklayın.
Lisans sözleşmesini kabul edin ve İleri’ye tıklayın
Finish’e tıklayın - Eclipse eklentiyi sizin için indirecektir
Camscripter eklentisini kurmak için “Install”a tıklayın.
Eclipse Platformunu yeniden başlatmak için Yes’e tıklayın
Eclipse daha sonra, Camscripter eklentisi sizin için kurulmuş olarak yeniden başlar. Kurulduğundan emin olmak için Window -> Show View -> Other… seçin
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 Görünümü
Metin mesajlarının görüntülendiği Konsol bölmesi
Görüntü ve grafik mesajlarının görüntülendiği Geri Bildirim bölmesi
Lua kodunu çalıştırır. İster tüm bir dosyayı ister yalnızca seçili kod satırlarını çalıştırabilirsiniz.
Lua kodunu CMUcam3’ün SD/MMC kartına kurar
Kurulum#
Her şeyi kurduk! Yalnızca birkaç kurulum adımı ve CamScripter’ı programlıyor olacağız.
camscripter projesini kameraya yükle#
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 Tercihlerini Ayarla#
Şimdi Eclipse’e geri dönün ve CamScripter Preferences ekranını açın: 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.İlgilenenler için, luac yalnızca lua kodunu derlerken, luax.x.exe aslında kodu yorumlar ve çalıştırır. Kodu Eclipse’te derleyip ardından kamerada çalıştırıyoruz – dolayısıyla, luac.
Kameranızı bağladığınız seri portun adını sağlayın. Kullanılabilir seri portların bir listesini görmek için “See Serial Ports” düğmesine tıklayabilirsiniz.
Merhaba, Dünya!#
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.
Projenizi “Hello” olarak adlandırın ve Finish düğmesine tıklayın. Ardından File –> New –> File (Eclipse 3.3’te File –> New –> Other –> General –> File) seçeneğine tıklayarak yeni bir dosya oluşturun. Dosya adı kutusuna, üst klasör olarak Hello ile birlikte “hello_world.lua” girin. Finish düğmesine tıklayın.
Kameranızın bilgisayarınızın seri portuna bağlı olduğunu tekrar kontrol edin. Kamerayı açmadan önce, kameranın desteklediği iki modu anlamak önemlidir:
Bağımsız: kamera PC ile herhangi bir etkileşim beklemez. Kamera varsayılan olarak bu modda başlar.
Etkileşimli: kamera, Eclipse’teki CamScripter’dan derlenmiş Lua kodunu alır ve geri bildirim döndürür. Kamerayı etkileşimli moda geçirmek için açın ve turuncu LED yandığında kamera düğmesine basın (düğmeye basmak için 3 saniyeniz var). O anda, turuncu LED birkaç kez yanıp sönerek etkileşimli moda girdiğimizi bildirir. Her şey yolunda giderse, Welcome to CamScripter Interactive mode. Click the execute button to run a script. mesajını göreceksiniz.
İlk Lua programımızı çalıştırabilmemiz için kamerayı etkileşimli modda başlatalım.
Düzenleyici penceresinde, şu kod satırını girin:
print("Hello, World!");
Dosyayı kaydedin ve CamScripter görünümünde Execute düğmesine tıklayın. Ve İşte!! Kodunuz kablo üzerinden onu çalıştıran kameraya gitmiş ve yazdırdığınız mesajı geri göndermiş olacak.
Şimdi biraz daha ilginç bir şey deneyelim. hello_world.lua dosyanız şunları içerecek şekilde üç ek kod satırı ekleyin:
print("Hello, World!");
take_picture("pic_name");
print_picture("pic_name");
print("It's a picture!");
Şimdi tekrar Execute düğmesine tıklayın. Görüntüleri seri port üzerinden göndermek oldukça zaman aldığından, bu sefer çalıştırılması daha uzun sürecektir. Ancak bittiğinde, CamScripter’ın Console alanında iki mesajınızı ve Feedback alanında kamerayla çektiğiniz görüntüyü görmelisiniz (lens kapağını çıkardınız, değil mi?)
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.
Yararlı Bağlantılar#
CamScripter artık tamamen kurulmuş ve yapılandırılmıştır ve işlevselliğini sergileyen küçük bir örnek gördünüz. Camscripter’ı kullanan bazı daha büyük örnekleri görmek isterseniz, camscripter/examples dizinine dahil edilen örnek programlara bir göz atın. Size yardımcı olabilecek birkaç başka not ve bağlantı:
CamScripter Lua API, CMUcam3’ün eylemlerini kontrol etmek için Lua programlarınızda kullanabileceğiniz CMUcam3 fonksiyonlarını açıklar.
Lua kullanmaya başlamanıza yardımcı olacak bazı bağlantılar aşağıdadır. Not: string ve math kütüphaneleri gibi harici kütüphaneler, CMUcam3’e yüklenen Lua sürümüne dahil değildir. Lua yorumlayıcısının CMUcam3’teki sınırlı alana sığması için bunların çıkarılması gerekti.
Lua Öğreticisi Başlamanıza yardımcı olacak bir öğretici.
Lua Başvuru Kılavuzu: Lua’nın eksiksiz belgeleri.
Lua Wiki Yanıtları bulmak için yararlı bir yer. Örnek kod, SSS ve diğer kaynaklara bağlantılar.
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.