עבור לתוכן
  • צור חשבון

מסע לעבר EAA בטלפון חכם (פרויקט תכנה)


תגובות מומלצות

כידוע היום כדי לבצע live stacking צריך להביא מחשב נייד עם SharpCap לתצפית. זו בעיה ממספר סיבות 

  1. צריך להביא מחשב נייד למקום בו צופים בכוכבים (לא משהו שאתה רוצה לעשות אחרי יום עבודה מול מסכים, לפחות אני)
  2. צריך להשתמש ב־Windows... מי משתמש בזה היום בכלל? טוב נו אני על לינוקס מ־2005 בערך ושכחתי מה זה.
  3. התכנה אומנם טובה אבל מבחינתי, אני לא נוגע בקוד סוגר אלא אם אני ממממממש חייב (כי אין דבר שיותר משגע אותי מחוסר יכולת לתקן באג קריטי שתמיד מתגלה)

לרובכם כמובן סיבות 2 ו־3 לא ממש רלוונטיות, אבל 1 דווקא כן. לא חסרים פתרונות חלופיים וניידים כמו Rapsberry PI ועוד כל מיני מחשבים קטנים שניתן לקנות ולעבוד איתם. 

אבל, ראיתי שיש מצלמות שעובדות על Android (כמו sv105/sv205) ומתחברות עם ממשק סטנדרטי UVC... ופה עלה הרעיון.

למה לסחוב מחשב לתצפית, כשבפועל לכל אחד יש מחשב בכיס עם כוח עיבוד שכל מחשב נייד בתחילת שנות 2000 היה מקנא?

רעיון בסיסי:

  1. לחבר מצלמה לטלפון חכם (אנדרואיד)  עם כבל USB או אפילו להשתמש במצלמה מובנית.
  2. להוסיף ספק כוח נייד - במידת הצורך
  3. לרכוש תמונות ולבצע live stacking תוך שהתוצאה מוצגת על המסך של טלפון חכם.

מה נדרש: לכתוב אפליקציה שעושה זאת!

סקיצות לפרויקט

  1. ממשקי מצלמה
    • ממשק מצלמה מובנה - יש API מובנה ל־Android ותיארתית אפשר לעבוד ישירות עם V4L2 - ממשק מצלמה ללינוקס.
    • ממשק מצלמה גנרי UVC (מימוש בעזרת libusb + libuvc).
      • משהו שכל מצלמות רשת עובדות ואפשר להסב אותם למצלמות שנכנסות לעינית - יש אפילו ערכות לזה.
      • מצלמות פלנטריות של svbony כמו sv105/205
      • אפשר לחבר מצלמות DSLR עם ממיר HDMI ל־UVC (מסתבר שיש דברים כאלה) ולעבוד ב־1080p (שלטובת EAA נראה לי מספיק)
    • למצלמות ZWO ASI מסתבר יש SDK גם לאנדרואיד - כמובן API משלו - לא UVC
  2. אלגוריתמים של live stacking
    • להביא בעיקר לטובת DSO ולא לכוכבי לכת בהם זורקים חלק מהתמונות - בסוף התהליך - פחות EAA.
    • לאסוף darks/flats לפני הצילום ולחסר/לתקן אותם בזמן אמת
    • לבצע רגיסטרציה פשוטה לינארית ללא סיבוב - לפי בדיקה ראשונות phase correlation בסיסי עובד טוב ומהיר
    • לסכם את התמונות ולהציג את העדכונים בזמן אמת

עכשיו מציאות

נתחיל מ־2 עשיתי POC עם תמונות שאספתי עם המצלמה של הטלפון - קל מאוד ליישום יצא פרפר M6 מצוין. כמובן שצריך יהיה לממש לטובת אנדרואיד - אבל עם רקע שלי זה בר ביצוע

עם ממשק מצלמה סביר להניח שלא תהיה בעיה.

ממשק UVC הסתבר כאגוז קשה לפיצוח. לקחת מצלמת רשת פשוטה. אפליקציה אחת עבודה איתה ללא בעיות. אבל מספר רב של אפליקציות בחנות של גוגל פשוט לא עבדו. לקחתי פרויקט UVCCamera בניתי, יצא לי המיץ והוא לא עובד. עולה אבל לא מתחבר למצלמה! משהו שקרה לאפליקציות רבות אחרות.

התראה טכנית מחשבים  התחלה

אחרי חקירה מעמיקה של libusb ושל libuvc שדרכם בעצם ניתן להפעיל מצלמה גילית שלגרסאות העדכניות ביותר יש מספר שינויים שקשורים לניהול הרשאות - הם לא יושמו בUVCCamera שניסיתי לבנות להריץ (שם ישבו גרסאות ישנות יותר של הספריות האלה). בעצם אחרי שמבקשים הרשאה לגשת ל־USB מקבלים רק file descriptor שאיתו צריך לעבוד. וזה לא נעשה בפרויקט שניסיתי.

אבל כיוון שאנדרואיד זה בכל זאת עמוק בפנים לינוקס, התחברתי לטלפון ב־SSH בניתי libusb ו־libuvc ועשיתי התאמות בדוגמה כדי שאפשר יהיה לעבוד עם file descriptor ובעזרת termux-usb התחברתי למצלמת רשת והצלחתי למשוך פריימים! גם זה בר ביצוע.

התראה טכנית מחשבים  סוף - סיכום מצאתי דרך לגרום לזה לעבוד

עכשיו:

  1. צריך לבנות אפליקציה בסיסית שתתחבר למצלמת UVC עם הספריות עדכניות ותציג משהו
  2. לשלוט במצלמה
  3. לבנות ממשק משתמש בסיסי ביותר
  4. לכתוב אלגוריתמים של live stacking
  5. לצפות בתוצאה

ואז אפשר יהיה להגיד ש־prove of concept עובד ולהמשיך הלאה ל־1001 דברים אחרים

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

נקודות מחשבה

  1. למה לא Raspberry PI? - כי טלפון חכם יש לכל אחד בכיס ו־Raspberry Pi למעטים בלבד. והרעיון לקבל משהו שכל אחד יכול לנסות בקלות
  2. ממשק UVC מוגבל - כן על פניו נראה כך - YUV של 8 ביט זה לא משהו. אבל כיוון שמדברים על EAA ולא צילום - התקווה שזה יספיק.
  3. מה עם מצלמות אחרות? על פניו יצרן מאוד פופולרי נוסף נותן תמיכה כלשהי באנדרואיד. אז התקווה שאם נצליח נוכל לקדם

עכשיו לעבודה

נערך היום על-ידי Artyom

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

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

אפשר לקרוא לזה EAEA - 

 Electronics Assisted Eyepiece Astronomy 

 

 

 

 

 

 

קישור לתוכן
שתף באתרים אחרים

בהצלחה ארתיום!

ה-OTG והיכולות שניתן להשתמש בהן דרכו out-of-the-box משתנות מגרסת אנדרואיד אחת לשנייה, קופסת PI או תואמיי ארדואינו אפילו יספקו תמיכה לאורך זמן ויגדילו את העניין בפרויקט לדעתי (אולי אפילו יקרבו אנשים לאסטרונומיה מתחום הפיתוח).

השלב שאחרי זה הוא ליישם פרוטוקול דוגמת lx200 ולשלוט בחצובות רבות שתואמות לו 🙂

 

תודה על השיתוף! מקווה לראות אחד כזה פועל בקרוב 😉

 

קישור לתוכן
שתף באתרים אחרים

לפני 1 שעה Ehud Spiegel אמר:

אפשר לקרוא לזה EAEA - 

הבעיה שהמצלמות בד"כ לא שוות הרבה. הסיגנל על הפנים. אבל כן התכנית גם לתמוך במצלמה מובנית.

התראה מידע למתכנתים

בינתיים Android Studo עושה לי אלרגיה. כל־כך התרגלתי לעבוד עם CMake וכלים שלא עושים auto-magic. כשההפרדה בין קוד מקור ומשהו שנוצר אוטומטית כל־כך ברור. שהוא פשוט עושה לי בחילה. כבר לא חשבתי שבשנתי 2022 עדיין עובדים בשיטות של ימי הביניים.

טוב... לאט־לאט

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

לפני 10 דקות Joe אמר:

קופסת PI או תואמיי ארדואינו אפילו יספקו תמיכה לאורך זמן

בקופסת PI כבר יש הכל. צריך רק להוסיף live-stacking שבתכל'ס לא מסובך. יש גם מחשבים קטנים שעושים את זה שנמכרים בשוק. הרעיון לעשות הכל מטלפון.

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

לפני 12 דקות Joe אמר:

השלב שאחרי זה הוא ליישם פרוטוקול דוגמת lx200 ולשלוט בחצובות רבות שתואמות לו 🙂

 

זה כבר לא קיים ב־stellarium או sky-safari ואחרים?

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

לפני 1 שעה Artyom אמר:

זה כבר לא קיים ב־stellarium או sky-safari ואחרים?

כן, אבל לעקיבה מדויקת משתמשים בתוכנות אחרות, אם כבר אתה מחובר לעינית ויכול לבצע תיקונים לחצובה בהתאם למצב בפועל..... למה לא? 😄

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

אל תתייחס אליי.... ביי 

קישור לתוכן
שתף באתרים אחרים

טוב... החדשות הלא טובות שאני לא מצליח להפעיל את המצלמה מהטלפון אפילו עם אפליקציה שהייתה אמורה לעבוד איתה למרות שהיא כן מתחברת למצלמה - מוציאה תמונה שחורה - שזה בהחלט מדאיג.

ובקוד C מספריית libuvc משום מה לא מקבל הרשאות מאנדרואיד (כן מקבל עבור מצלמת usb אחרת). לא ברור מה קורה שם.

בלינוקס שולחן עבודה המצלמה עובדת. בקיצור החקירה ופיתוח ממשיכים להסתבך 😕 

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

לפני ב-26.7.2022 at 23:11 Artyom אמר:

טוב... החדשות הלא טובות שאני לא מצליח להפעיל את המצלמה מהטלפון אפילו עם אפליקציה שהייתה אמורה לעבוד איתה למרות שהיא כן מתחברת למצלמה - מוציאה תמונה שחורה - שזה בהחלט מדאיג.

ובקוד C מספריית libuvc משום מה לא מקבל הרשאות מאנדרואיד (כן מקבל עבור מצלמת usb אחרת). לא ברור מה קורה שם.

בלינוקס שולחן עבודה המצלמה עובדת. בקיצור החקירה ופיתוח ממשיכים להסתבך 😕 

ארתיום, אולי תפנה לסביבוני ותבקש תיעוד? אולי יש להם משהו, הרי הם מפרסמים אותה כפועלת עם אנדרואיד.

קישור לתוכן
שתף באתרים אחרים

לפני 3 שעות jonzm אמר:

ארתיום, אולי תפנה לסביבוני ותבקש תיעוד? אולי יש להם משהו, הרי הם מפרסמים אותה כפועלת עם אנדרואיד.

אני חושב שהבעיה באפליקציה עצמה או משהו אחר. יש פה כל מיני ענייני הרשאות.

בכל מקרה לקחתי את הרעיון שלך כתבתי להם לתמיכה. נראה מה הם יגידו

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

הדבר הטוב שיש אפליקציה עם קוד המקור שלי שמתחברת למצלמת UVC (כמו svbony או מצלמת web פשוטה). מה שאומר יש קוד C שמטפל במצלמה ועובד. יש קוד אפליקציה ב־Java ויש סביבת פיתוח שאפשר להתחיל לדבג בה דברים.

image.png.9286432506c9be398df4b7d3e7c5652e.png

החדשות הרעות זה שיש המון זריקת frameים וגם כאלה שמגיעים הם corrupted.

מה שמדאיג זה שזה קורה לא רק ב־Android אלא גם ב־Linux שולחני תלוי בגודל ה־frame - אפילו שמדובר בדיוק באותה ספריה/אותו הקוד - אם כי הסף אחר בלינוקס אני מצליח לקבל פריימים הרבה יותר גדולים מאשר באנדרואיד. במצלמת USB רגילה באמדרואיד הצלחתי לקבל תמונות וידאו ב־320 על 240. בסביבוני מינימום 640x480 ופחות או יותר כל הפריימים נזרקים.

מה שכמובן מאוד מדאיג: כרגע שני כיוונים:

  1. לבדוק still capture - כדי לתפוס תמונה בגודל מלא
  2. לנסות להזרמה ב־MJPEG במקום YUV2. שזה אומר דחיסה שעלולה לפגוע באיכות הפיקסלים שמקבלים. לא ש־8bit ב־YUV2 זה משהו איכותי - עדיין.
  3. לחפור בקוד libuvc ולהבין למה יש frame-drops ומה ההבדל בין מחשב שולחני ל־android מבחינת זריקת ה־frameים - כי לפחות בסביבוני בשולחן העבודה אני מקבל 1920x1080 בצורה תקינה.

אמשיך לעדכן

נ.ב.: עוד לא העלית את הקוד ל־github והוא מפוזר בכל מיני מקומות (בנייה בנפרד של ספריות חלק ה־C שאני בונה בכלל מחוץ לפרוייקט של אנדרואיד וכד'.

נערך היום על-ידי Artyom

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

עדכון.

אחרי חפירה ב־libuvc ומישהו שהתלונן על בעיה האנדרואיד עם שינוי בגדלים של באפרים של תקשורת הצלחתי להפעיל את svbony וגם מצלמת web ברמה שב־800x600 מקבל תמונה יציבה (בתעבורה דחוסה) וב־1280x720 עובדת חלקית גם על מצלמת 105 של סביבוני וגם על מצלמת ווב רגילה.

כמובן כל זה ע"י שינויים ב־libuvc עצמה (זאת הסיבה שקוד פתוח שולט!)

מכאן שאפשר להתחיל - משהו עובד - אופטימיצזיה של תעבורה כנראה אפשר להשאיר לאחר מכן.

 

נערך היום על-ידי Artyom

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

טוב עוד התקדמות. רצתי עם 800x600 על sv105 על טלסקופ 60/400.

image.png.9a1aec27cc8af3e7a75df71f547a0cda.png

 

 

image.png.d7818eeb11141f786004f35cb02dbead.png

עשיתי stacking ב־offline עדיין לא מימשתי את ה־live stacking אבל הקוד כבר מוכן

 

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

העליתי את הקוד ל־github

קוד האפליקציה כמובן בינתיים ברמת סקיצה ודורש המון refactoring לפי שאפשר יהיה להכריז עליו מבצעי

 

נערך היום על-ידי Artyom

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

עוד עדכונים:

הצד הטוב:

פתרתי בעיות ריצת ה־opencv שהיו לי. יש stacking באפליקציה ולפי בדיקות ראשוניות אין שום בעיות בזמני ריצה/חישובים - עשיתי live stacking גם בכ־30 FPS (אם כי על 800x600) - כך שכנראה עם זמני חשיפה אסטרונומיים של 100-500ms לא צפויה שום בעיה גם ב־full-hd (בהנחה שאצליח להפעיל אותו).

הצד הפחות טוב

יש בעיות יציבות במצלמה של svbony. אומנם מצלמת web כן עובדת ב־800x600, לעומתה sv105 שלי עובדת לסירוגין - כן, לא ולמה לא. כך שאתמול לא ממש הצלחתי לצלם אפילו שהיה לי ראות ברורה על m93. מה שכן ראיתי שמצלמת ה־web שלי באפליקציה אחרת עובדת אפילו ב־1920x1080 כך שיש עוד מקום לחפירות ושיפורים - אני אופטימי.

אני צריך לעבוד על נושא יציבות החיבור וגודל הפריים.

יישומון AstroHopper ניווט אוטומטי בלי לשבור ראש

הטלסקופים שלי: Celestron AstroMaster 102AZ, SVBony sv501p 60mm

קישור לתוכן
שתף באתרים אחרים

הצטרף לשיחה

אתה יכול לכתוב עכשיו ולהרשם אחר כך אם יש לכם חשבון הכנס עכשיו בשביל לכתוב מהחשבון שלך

אורח
הוסף תגובה

×   הודבק כטקסט מיוחד.   הדבק כטקסט רגיל

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   התוכן הקודם שלך שוחזר .   נקה

×   You cannot paste images directly. Upload or insert images from URL.

  • פעילות אחרונה

    1. 35

      ספריית חלל, אסטרונומיה ומד"ב - ספרים, סרטים, סדרות, פודקאסטים ומשחקים (נושא מתגלגל)

    2. 7

      התמודדות עם בעיות דיוק של NexStar SE8

    3. 8

      הרכבת גלגל פילטרים לדובסוני: לתצפית ויזואלית

    4. 2

      איפוס חצובת אלט-אז (או אולי גם EQ) בעזרת פלייט סולבינג - שאלה

    5. 2

      איפוס חצובת אלט-אז (או אולי גם EQ) בעזרת פלייט סולבינג - שאלה

  • נושאים


×
×
  • צור חדש...

Important Information