תחילת העבודה עם 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. לפני שנוכל לעשות זאת, נצטרך להתקין שפה זו במחשב שלכם.

  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…“ מתפריט Start, והקלידו »cmd«).

  4. cd אל היכן שחילצת את קובצי ה-Lua. אצלי, אני מקליד »cd C:lua«

  5. הקלד »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):

  1. חלץ את הורדת ה-RXTX, ונווט אל התיקייה שנוצרה

  2. לחץ פעמיים על Windows

  3. לחץ פעמיים על i368-mingw32

  4. עכשיו תצטרכו להבין היכן ממוקמת סביבת זמן הריצה של 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:

  1. פתחו את Eclipse על ידי לחיצה כפולה על eclipse.exe ב-C:\Program Files\eclipse\

  2. לחצו על Enter כדי לקבל את סביבת העבודה (workspace) של ברירת המחדל

  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. לחץ ”Install“ כדי להתקין את התוסף Camscripter.

  12. לחץ 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.

  1. תצוגת CamScripter

  2. חלונית הקונסולה שבה מוצגות הודעות טקסט

  3. חלונית המשוב שבה מוצגות הודעות תמונה וגרפיקה

  4. מריץ קוד Lua. ניתן להריץ קובץ שלם או רק שורות קוד נבחרות.

  5. מתקין קוד 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.