מעבר לניווט

צילום אסטרונומי באמצעות ערכה לפריצת התוכנה של מצלמות קנון אוקטובר 21, 2009

פוסט מאת guysoft בתוך : Crictor, המקור, כללי, תוכנה חופשית , היסטורייה

CHDK עולה על המצלמהבפוסט זה, אני הולך להסביר איך עם כלי קוד פתוח בשם "קיט פריצה ופיתוח למצלמות קנון" הידוע בשם CHDK, ניתן לעשות צילומים אסטרונומים ואפילו סרטים מגניבית של תנועת הכוכבים. וזאת עם מצלמה פשוטה של Canon.

כל הסיפור התחיל, כאשר לשם שינוי, ראיתי שהולך להגיע מטר הפרסאידים, בהתראה מוקדמת מהרגיל. ההתראה המוקדמת נתנה לי זמן לכתוב קוד לפני שיהיה מאוחר מדיי. חשבתי ללכת למקום ליד ירושלים ולצלם, אבל לבסוף חברי מהאגודה הישראלית לאסטרונומיה (שי ואנה) אמרו לי שהם הולכים לדרום הרחק מזיהום האור כדי לספור מטאורים בשביל ה-IMO. אז החלטתי להיצטרף אליהם, הספירה שלי גם היא זמינה ברשת.

לפני שאכנס לדברים הטכנים, הנה וידאו שעשיתי שמראה את התוצאה הסופית:

[youtube=http://www.youtube.com/watch?v=qaAEaru-D8Y]

חזרה ל-CHDK, ואיך נעשתה האנימציה הזו.

מה זה CHDK ואיך מתקינים אותו?

CHDK הוא תוסף לקשוחה (firmware) בשביל מצלמות של Cannon, ובייחוד לסדרת ה-Powershot. התמיכה מכסה את רוב הצלמות. המצלמה שלי היא מצלמת powershot A590 שעולה נכון להיום בסיבות 700 ש"ח. CHDK הוא תוסף לקשוחה הקיימת, ולכן אינו פוגע באחריות או במצלמה. ל-CHDK מגוון של פיצ'רים (כולל משחקים וקורא ספרים דיגיטלים!).

ההתקנה פשוטה להפליא והגרסה המלאה שלה מגיעה כל מה שצריך. כדי להתקין את CHDK יש להוריד את הגרסה המתאימה למצלמה מהאתר ולחלץ אותה על כרטיס ה-SD של המצלמה. לאחר זאת יש להפעיל את המצלמה במצה הצפייה (review) ולבחור מתפריט האפשריות "Firm Update…". מידע נוסף אפשר למצוא בוויקי של CHDK. כעת, ש-CHDK עובדת לחיצה על הכפתור ההדפסה (שעד עכשיו היה חסר תועלת לגמריי) תציג על המסך סימן <alt>, פירושו שכל הכפתורים של המצלמה עכשיו עברו לשליטה בתכונות של ב-CHDK. לחיצה נוספת תחזיר את המצלמה לתפקודה הרגיל. הדלקה וכיבוי של המצלמה תמחק את CHDK מהזיכרון הפנימי (כדי להפעיל את CHDK שוב יש לחזור על הפעולה לעיל). הסרה של CHDK תהיה פשוט מחיקת הקבצים בכרטיס ה-SD.

שידרוג הקשוחה (לא באמת שדרוג קשוחה)

שידרוג הקשוחה (לא באמת שדרוג)

התוכנה הבסיסת שלי ב-Ubasic

אחרי שהפעלתי את CHDK, טיול בתפריטים ובילבול אנשים בלשחק רברסי על המצלמה, התחלתי להסתכל על אפשריות כתיבת תסריטים.

ניתן לכתוב תסריטים בשפות ubasic ו-lua. את שלי כתבתי ב-ubasic, למרות שלעולם לא כתבתי בשפה זו בעבר, היא הייתה מאוד פשוטה ללמוד. בחרתי ב-ubasic מפני אחד המפתחים אמר לי שב-lua יש בעיות של תזמון. בשני השפות אין צורך לקמפל את התוכנה, רק לכתוב קובץ טקסט פשוט ולהציב אותו בתיקייה /CHDK/SCIPTS בכרטיס ה-SD. כדי להפעיל תסריט יש לבחור את האפשרות 'load script' כאשר המצלמה במצב <alt>. כעת, כאשר המצלמה תהיה במצב היכון לצילום (standby), כפתור הצילום יפעיל את התסריט הנבחר ולא יצלם תמונה כרגיל.

את פקודות התיכנות מצאתי בעיקר מהמדריך הזה. אדגיש כמה קל בשפה לתת למשתמש להגדיר פרמטרים, להדפיס דברים על המסך וגם לצלם תמונות. ניתן לשנות הגדרות של המצלמה באמצעות פקודות PropertyCase (ראו את הקוד שלי בשביל לראות כיצד משתמשים בהם).

את הסקריפט מטאורים שלי ניתן להוריד כאן. הוא מתחיל את המצלמה, מבטל את הפלאש ונכנס ללולאה שמצלמת תמונות ברצף ב-ISO וזמן חשיפה נתון. הוא ממשיך עד לחיצה נוספת על כפתור הצילום. המצלמה שרדה בארך שעה עד שאזלו הסוללות. למרבה המזל היו לי 4 זוגות של סוללות AA. יש הרבה מה לשפר בתסריטף אבל הוא עובד.

טעינה של תסריט המטאורים

טעינה של תסריט המטאורים

עיבוד אנימציות עם FFmpeg

לרבה הצער, לא הצלחתי לתפוס אף מטאור אחד מתוך כל ה-700 תמונות שצלמתי. אני חושב שלא הגדרתי את הצמצם להיות פתוח עד הסוף, ציפיתו שיעשה זאת לבד בחושך מוחלט.
בכל זאת, חיבור של כל התמונות באמצעות התוכנה FFmpeg בייחד נתן לי אנימציה מרהיבה של תנועת השמיים. נראה ש-FFmpeg בררני לגבי שמות הקבצים, לכן אני מספק כאן הסבר צעד צעד איך להפוך את התמונות לסרט:

  1. יש להוריד את מהמצלמה את כל התמונות המבוקשות לתיקייה אחת.
  2. הריצו את תסריט הזה בשפת Bash שכתבתי. הוא ייצר תקייה בשם out, ויעתיק את הקבצים בשמות 000, 001 וכו. זו הצורה ש-FFmpeg אןהב את הקבצים, אחרת הוא קורס (תודה לאנשים בערוץ #ffmpeg בשרת freenode בשביל ההנחיות):#!/bin/bash
    # Not enough information to compute
    if [ $# -lt 1 ]; then
    echo "Syntax: `basename $0` "
    exit
    fi
    i=0
    #if dir exists, then go over all files and copy them
    if [ $# -eq 1 -a -d "$1" ]; then
    mkdir -p $1/"out"
    for file in $1/*.[jJ][pP][gG]
    do
    cp "$file" $1/out/$(printf "%0.3d.jpg" $i)
    i=$(( $i + 1 ))
    done
    exit
    fi
    exit
  3. אחרי שקבצי ה-jpg מוכנים, אפשר להריץ את FFmpeg עם הפקודה הזו בתיקייה:ffmpeg -r 24 -f image2 -i %3d.jpg -b 700000 -s 720x480 output.avi
    . אציין כי ניתן לשנות כאן את הרזולוציה, קצב נתונים וכל מה שמתאפשר בתוכנה. מפני שהצילומים כאן הם באיכות של מצלמה, ניתן גם לעשות אפילו סרטי HD עם מצלמה זולה!
  4. זהו זה, ברשותכם אנימציה

הסרטים שלי

להלן רשימה של הסרטים שעשיתי. יש לי גם דף בשבילם בבלוג האנגלי שלי.

לסיכום

CHDK מאפשרת לקחת מצלמה פשוטה, אחת שיכול להיות שאפילו כבר ברשותכם ולעשות איתה דברים שלא נתפסים כאפשרים במצלמה כזו. אולי בפעם הבאה אנסה את האפשרות לצילום בפורמט RAW, אפשרות זו תיתן לי לראות הרבה יותר טוב את הכוכבים.

תודות לאנשים בערוץ #chdk וגם בערוץ #ffmpeg בשרת freenode, אשר עזרו לי עם הקוד.

תודה לאנה ושי בשביל לילה ניפלא 🙂

קיים גם שירשור בפורום של CHDK אודות הפוסט הזה. והפוסט האנגלי שלי.

סופרים מטאורים

סופרים מטאורים

מחכה באמצע המדבר, לאוטובוס חזרה צפונה

מחכה באמצע המדבר, לאוטובוס חזרה צפונה

תגובות»

1. חתול - 22 באוקטובר 2009

וואוו, פשוט מגניב.
אני אנסה להתקין את זה על המצלמה שלי.

טוב שסיפקת הסברים איך להתקין בפוסט. האתר של CHDK נראה זוועה, לא הצלחתי להבין ממנו כלום.

[תגובה]

2. חתול - 22 באוקטובר 2009

הבעיה היא שחייבים קורא כרטיסים בשביל להתקין את הCHDK. אני מחפש לי אחד.

[תגובה]

3. רון קליין - 16 במאי 2011

יופי של פוסט (ובלוג!).
הערה קטנה: הלינק של "הברבור" מפנה ל"קסיופאה".

[תגובה]

guysoft Reply:

צודק, תוקן 🙂

[תגובה]


  • אודות
  • Crictor
  • המקור
  • הסדנא לידע ציבורי
  • כללי
  • פוסטים מזולו
  • תוכנה חופשית
  • 2013
  • 2011
  • 2010
  • 2009
  • 2008
  • 2007
  • Thank you for using IGIT Tweet Button, a plugin by PHP Freelancer