חדשות היום

יצירת יישומים ביתיים עם חומרה ותוכנה פתוחות שמחוברים בהתאמה אישית

מאת: חסים סייד מוחמד, שסה מאופין / טקסס אינסטרומנטס

השימוש בהתקנים ניתנים להתאמה אישית של תוכנת מקור פתוח וחומרה פתוחה בהספק נמוך ובמחיר שווה לכל כיס, מאפשר למפתחים להשתלט על מכשירי מדיה ספרתית שנמצאים ברחבי הבית, לארגן אותם, ללכוד בצורה יעילה את סוגי המדיה השונים ולהשמיע אותם בפורמטים הרצויים להם ברשתות הביתיות שלהם. ההתקנים המחוברים בבתים מגוונים למדי ויכולים לכלול מכשירי אלקטרוניקה המתאימים להקלטת תוכניות טלוויזיה מועדפות, נגני מוסיקה שמתנגנת בחדרים רבים או נגני וידיאו שמוצג בכמה מקומות בו זמנית, לשרת מדיה מחובר לרשת או אפילו למרכז מדיה ביתי שלם. הטכנולוגיה המשמשת לארגון, לאחסון ולהשמעה של המדיה משתנה על מנת להתאים לצורכי הצרכנים. אך עם זאת, מערכות אופייניות מהמדף יכולות להיות יקרות ביותר וייתכן שלא יהיה להן שילוב התכונות המדויק הרצוי לצרכן. חומרה פתוחה, כגון לוח הפיתוח BeagleBoard-xM ולוח הפיתוח HawkBoard, כמו גם התוכנה הפתוחה כדוגמת שרת המדיה GeeXboX uShare ומרכז המדיה XBMC, מעניקים למפתחים את השליטה הנדרשת למען יצירת מערכת בהתאמה אישית, שתהיה כדאית מבחינת עלותה וניתנת להרחבה, ואשר תאפשר להם לדלג בקלות ובמהירות מעל פער התכונות שבין הרצוי והמצוי.

שרת מדיה מחובר לרשת
שרת מדיה מחובר לרשת יכול לפעול כתשתית פיסית מרכזית ליישומים ביתיים שמחוברים לרשת, והוא מאפשר לבעליו לשתף מדיה בין התקנים מרובים שמחוברים לרשת מקומית ולרשת מרוחקת. השימוש בפלטפורמה פתוחה עם הביצועים, ההתקנים ההיקפיים ואפשרויות הקישוריות הנכונות, בשילוב עם תוכנת קוד מקור פתוח מתאימה, תאפשר למפתחים להצטרף לקהילות של מפתחים אחרים שפועלים יחד למען פתרון של קבוצת בעיות משותפות.
דרישות המערכת עבור שרת מדיה מחובר לרשת הן:
ביצועים והספק:
מבחינת שרת מדיה, מפתחים יכולים לא פעם להסתפק בביצועים שמספיקים רק להעברת קבצים ולהפעלה של כמה תוכנות בסיסיות. מעבד מבוסס ARM® עם יחידה לניהול כל הזיכרון, כגון ARM9™ או ARM Cortex™-A8, יאפשר למפתחים לחסוך בעלויות, בהספק ובמקום, בהשוואה לארכיטקטורות אחרות, תוך כדי שהוא מאפשר להם להפעיל מחסנית תוכנות Linux® עם תכונות מרובות. החיסכון הכספי יאפשר להם להוציא יותר על מקום אחסון ועל אפשרויות של קישוריות, שהן שתי התכונות החשובות ביותר של שרת מדיה. פחות הספק אינו אומר רק חשבון הוצאות חשמל קטן יותר. משמעו גם הפקה של פחות חום, ביטול הצורך בקירור פעיל, הגדלת האמינות ומענה לבעיות רעש.
התקנים היקפיים לאחסון:
המפתח לשרת מדיה הוא יכולות האחסון. חשוב למצוא מעגל עם אפשרויות אחסון מתאימות. ממשק SATA שמקושר לכונן קשיח יכול להיות אפשרות האחסון המתאימה ביותר עבור שרת מדיה, אבל אפשרויות אחרות כוללות כרטיסי זיכרון flash, MMC/SD, או כונן USB. אפשרויות של קישוריות אחסון רבות מאפשרות אחסון לגיבוי או שימוש חוזר של מדיה באחסון קיים.
קישוריות:
צורך אחר שקיים עבור שרת מדיה מחובר לרשת, הוא קישוריות שמספקת למשתמשים את הגישה להתקנים אחרים ברשת, למשל למחשבים אישיים ולמחשבים ניידים, לקונסולות משחקי מחשב ולטלפונים חכמים וכן, לתוכני מדיה מקוונים כגון תוכניות רדיו שמשודרות ברשת האינטרנט. רוב מעגלי הפיתוח בקוד מקור פתוח מציעים חיבור 10/100 Ethernet, שהוא אפשרות אמינה למדי, כאשר אפשר להשתמש בהתקן נתקע USB Wi–Fi כתחליף לכבלי Ethernet.
ממשק משתמש (UI):
כדי לדפדף במסד נתוני מדיה, לבצע קונפיגורציה של מערכת ולהציג התקנים אחרים שמחוברים ברשת, המפתחים זקוקים לצורה מסוימת של ממשק משתמש (UI). זה יכול להיות לוח LCD שמפעיל ממשק משתמש שנוצר באמצעות ערכת כלים ליצירת ממשק משתמש גרפי, כמו למשל Qt® או ממשק רשת Web לניהול מרחוק באמצעות מחסנית תוכנה סטנדרטית כגון Linux, Apache, MySQL ו–PHP (LAMP). כדי לספק קלט לממשק המשתמש, אפשר להשתמש בממשק UART או בממשק USB על מנת ליצור תקשורת עם שלט רחוק, או אפשר להשתמש בהתקן מארח USB כדי לחבר עכבר ומקלדת. בעזרת תוכנה פתוחה, כל מפתח יכול לערוך את בחירותיו הייחודיות בתלות ביכולות ובצרכים האחרים של המערכת.
תוכנה לניהול מדיה:
מערכת ההפעלה Linux מאפשרת למפתחים לבחור פתרונות זמינים שקיימים למבחר רחב של יישומים ממוקדי מדיה. מבחינת שרת מדיה, יהיה חשוב לנהל תוכן על השרת, ולהעביר סרטוני וידיאו, קטעי מוסיקה ותמונות אל תוך תיקיות מאורגנות. יישום מקובל להתקן אוניברסאלי מסוג “תקע והפעל” (UPnP™) עבור שיתוף מדיה קולית וחזותית (A/V) על פי ברית לרשתות ספרתיות ב”חי” (DLNA ) הוא GeeXboX uShare*1 או Firefly*2 לאינטגרציה של נגן המדיה iTunes.
המרת קודי מדיה [transcoding]:
השימוש במקורות חומרה נוספים, כגון מעבדי DSP או מאיצי וידיאו, כדי להמיר מדיה תוך כדי שידור, יכול לאפשר לשרת המדיה להעביר תכנים למבחר התקנים, מבלי שיהיה צריך לאחסן עותקים מרובים של אותו קובץ. פעולה כזו חוסכת מקום אחסון ומפשטת את ארגון המדיה.

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

מפענחי אודיו ווידיאו:
תמיכה בשיטות מקובלות לדחיסה ופריסה (codec) של וידיאו כגון MPEG2, MPEG4 ו–H.264 ואפילו בכמה שיטות מקובלות פחות, כגון Ogg Theora ו–WebM, היא דרישה חשובה ביותר מנגן מדיה שמחובר לרשת. יתר על כן, השימוש במסגרת עבודה של מולטימדיה בקוד מקור פתוח, כגון GStreamer*3 שתומך במגוון רחב של פורמטי container לקבצים, יבטיחו שהמפתחים לא ייתקלו בקבצים שאותם אינם יכולים להשמיע, ובמקרה שייתקלו יוכלו לשנות את התוכנה ולהוסיף את התמיכה.
יציאת אודיו ווידיאו:
כאשר יש לך יציאת DVI–D שיכולה להתחבר ישירות לכניסת HDMI, עם יציאת אודיו שמנגנת בסטריאו, אתה יכול להתחבר אל התקני אלקטרוניקה לצריכה, כגון טלוויזיה ברזולוציה גבוהה, באמצעות מערכת כבלים–מן–המדף.
ממשק משתמש (UI):
על מנת שמפתחים יוכלו להשתמש בנגני המדיה שלהם, ייתכן שיבקשו ממשק משתמש נוח שיאפשר להם לשלוט בתכנים ובהשמעת מדיה. ממשק משתמש זה חייב לתמוך לא רק בהצגת קטעי וידיאו, אלא גם ביצירה ובהצלמה [render] של קטעי גרפיקה במסך, לעתים כשגרפיקת הבקרה מוקרנת על גבי הווידיאו המוצג. עובדה זו דורשת מערכת עם יכולת לחולל תמונות באיכות רזולוציה גבוהה וכן עם תמיכה בעירוב גרפיקה ווידיאו ליציאה יחידה. יישומים קיימים של קוד מקור פתוח כגון מרכז המדיה XBMC*4 יכול לענות על דרישת ממשק משתמש זו.

ביצועים והספק:
כדי לתמוך במבחר תוכני האודיו והווידיאו המוזכרים לעיל, וכן בממשק המשתמש, המשתמשים צריכים ביצועים נוספים מעבר ומעל מה שנדרש עבור שרת מדיה כדי שההתקן יגיב היטב. עם זאת, ההתקן אמור להיות בעל הספק נמוך מספיק כדי שיהיה ללא מניפה, על מנת שלא יידרשו לו התקני מניפות או התקנים מגושמים מרעישים שיגרעו מהמשתמשים את ההנאה מהמדיה.
הרבה מעבר למדיה מחוברת לרשת
מאחר שהפתרונות המועלים במאמר זה מבוססים על חומרה ותוכנה פתוחות וזמינות במידה נרחבת, המפתחים אינם חייבים לעצור בשרתי מדיה בלבד ובנגני מדיה. הם יכולים לבחור לחבר את הבית בדרכים אחרות, כגון מצלמות וידיאו מחוברות לרשת או מערכת אוטומציה לבתים. ספריות אנליטיות לווידיאו בקוד מקור פתוח, כגון OpenCV*5 מאפשרות למשתמשים להוסיף יישומים חכמים למצלמת הווידיאו שלהם, אולי להפעיל את תאורת הכניסה כאשר מישהו מתקרב לדלת הראשית בלילה. בנוסף, רבים מבין מעגלי הפיתוח הזמינים מביאים מחברי הרחבה נוספים שמאפשרים למפתחים לחבר את החומרה שלהם אל החומרה הקיימת בעזרת ממשקים סטנדרטיים, או ליצור ממשקים בהתאמה אישית באמצעות מעגלי I/O למטרות כלליות (GPIO). השימוש בפתרונות חומרה ותוכנה הניתנות בחינם מאפשר למפתחים להפחית את הזמן והמאמצים הנדרשים כדי לעבור מהתפיסה ההתחלתית למערכת פועלת.

תגובות סגורות