תחילת העבודה עם 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…“ מתפריט Start, והקלידו »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 (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 כדי לקבל את סביבת העבודה (workspace) של ברירת המחדל
פתחו את אשף ההתקנה/עדכון על ידי בחירה ב-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.
קבל את הסכם הרישוי, ולחץ 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 ומחזירה משוב. כדי להכניס את המצלמה למצב האינטראקטיבי, הפעל אותה וכאשר תראה את נורית ה-LED הכתומה דולקת, לחץ על לחצן המצלמה (יש לך 3 שניות ללחוץ על הלחצן). באותו רגע, נורית ה-LED הכתומה תהבהב מספר פעמים כדי להודיע לך שאנו נכנסים למצב אינטראקטיבי. אם הכול עבר כשורה, תראה את ההודעה 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. הפעם ייקח יותר זמן לבצע, מכיוון ששליחת תמונות דרך היציאה הטורית גוזלת די הרבה זמן. אך ברגע שזה יסתיים, אמורות להופיע שתי ההודעות שלכם באזור ה-Console של ה-CamScripter, והתמונה שצילמתם עם המצלמה באזור ה-Feedback (הסרתם את מכסה העדשה, נכון?)
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 Tutorial מדריך שיעזור לך להתחיל.
Lua Reference Manual: תיעוד מלא של 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.