BeagleBone Black מביא פשטות קישוריות בסגנון Arduino ל-Linux משובץ
באדיבות ‎העורכים האירופיים של DigiKey
2013-09-18
ה-Raspberry Pi תרם תרומה משמעותית לתעשיית האלקטרוניקה בשנים האחרונות מאז השקתו. ממוצב במקור כמחשב בעלות נמוכה המתוכנן לשימוש לימודי, הוא הרחיב במהירות את המשיכה שלו בשוק האלקטרוניקה של הזרם המרכזי כפלטפורמת הערכה ואב-טיפוס עבור מהנדסים מקצועיים. בנוסף להיותו בשימוש עבור לימודי מחשבים, ל-Pi יש קבוצה גדולה של חסידים מעריצי וחובבני אלקטרוניקה, כמוהם לא נראו כבר זמן רב. בהינתן "הבאז התקשורתי" שה-Pi יצר, יהיה קל לחשוב ששום דבר דומה לא היה קיים בעבר. מכל מקום, לוחות כמו Arduino קיימים זה זמן רב ויש להם קבוצה גדולה של משתמשים מעריצים עם קהל חזק של משאבי תכנות מבוססי אינטרנט לסייע לפיתוח. ישנם כמובן מספר הבדלים בסיסיים בין שני הלוחות. ה-Arduino משתמש במיקרו-בקר AVR 8-bit Atmel ומספק כניסה/יציאה הולמת להתחברות ליישומי העולם האמיתי בנוסף לסביבת הפיתוח המשולבת (IDE) הקלה ביותר לשימוש. Arduino מספק בסיס אידיאלי ללמוד ממנו, לא רק תכנות מיקרו-בקר משובץ בשפה הדומה ל-C, אלא אלקטרוניקה בסיסית. להבדיל, ה-Raspberry Pi משתמש ב-SoC מבוסס ®32-bit ARM ומתמקד יותר בלימוד היסודות של שפות מחשב עיליות ומערכות הפעלה כגון Linux בבתי ספר ומוסדות חינוך גבוה יותר. תמיכה ב-Linux קיימת במספר רב של לוחות פיתוח משובצות ומעניקה יתרונות רבים על לוחות 8-bit פחות חזקות. היא גם מעניקה את היכולת לחלוק במעבד בין מספר תוכניות רצות ומשימות. דוגמא אחת מבוססת Linux היא ה-BeagleBoard-XM, לוח פיתוח מקור-פתוח אמיתי עם התמיכה של Texas Instruments. מכל מקום, זהו לוח פיתוח Linux האחרון היוצא מ-Texas Instruments שמעורר עניין משמעותי. ה-BeagleBone Black, שהושק באפריל 2013, נחשב למתחרה רציני ל-Raspberry Pi. הוא משלב לא רק פלטפורמה אידיאלית ממנו ניתן ללמוד מחשוב Linux, אלא גם ללמוד אלקטרוניקה בסיסית על ידי התחברות ואינטראקציה עם יישומים של העולם האמיתי. פורמט ה-BeagleBone, שהושק במקור בשלהי שנת 2011, לא רק מצליח לכווץ את מירב היכולות של ה-BeagleBoard-XM במארז קטן יותר בגודל כרטיס אשראי, אלא ייסד חתימת שטח סטנדרטית של שני מחברים עם 46 פינים בשתי שורות עבור סדרה של מודולי הרחבה מסוג לוח-בת הנקראים "Capes". בדומה ל-"Shields" בהם משתמשים עם Arduino, הם מספקים מגוון לוחות נתקעים להוספת כניסות/יציאות אפילו מתקדמות יותר.

ה-BeagleBone Black כולל מיקרו-מעבד Sitara™ AM3359 מסוג ARM Cortex™-A8 של TI שעובד בתדר (1 GHz (2000 DMIPS, בהשוואה להתקן של 720 MHz ב-Raspberry Pi. ראוי לציון של-Black יש זכרון flash של 2 GB על הלוח בנוסף ל-DDR3 של 512 MB ב-400 MHz. כלולים גם מחבר HDMI מסוג מיקרו-D, נקודות חיבור Ethernet ו-USB, והלוח מוזן על ידי ספק יחיד של 5 VDC. הלוח יכול גם להיות מוזן USB מאחר והוא צורך רק עד 250 mA.
מבחינת תוכנה, ה-Black מגיע טעון מראש במספר תוכנות והוא מוכן לאתחול. רק חבר הספקת כוח, HDMI, Ethernet ומקלדת/עכבר USB והלוח יעלה את ה-Angstrom Linux distribution ולאחריו מופיע ה-Gnome desktop. במשך האתחול סט של 4 נורות LED (USR0 – 3) יהבהבו לציון הפעילות. עם מבחר של שולשה דפדפנים מסופקים, Chromium, Firefox ו-Epiphany, תוכל לגלוש באינטרנט תוך שניות. אין צורך להוסיף כרטיס flash SD ולבצע להטוטים כדי להוריד את ה-Linux distribution לפני הפעלת הלוח בפעם הראשונה, כפי שנדרש על ידי Raspberry Pi. אף על פי שלמירב המפתחים והמעריצים יתאים לעבוד עם Angstrom Linux, ה-Black יכול גם לעבוד עם Ubuntu או Android הודות לארכיטקטורת ARM v7 שנמצאת בשימוש בהתקן המבוסס על ה-Cortex-A8. היבט אחר של השימוש ב-Linux בלוח פיתוח הוא הקישוריות הנוספת המוצעת עם ממשק ה-Ethernet. על כן, השימוש ב-FTP, SSH, Telnet ושירותים אחרים עם גישה מרחוק מספקים גמישות בחיבוריות בנוסף ליכולת להתחבר לשרת האינטרנט של ה-Black עצמו.

מבחינת כלי פיתוח, ה-Black גם מצוייד היטב. מפענח Python ומהדר ++C/C טעונים מראש יחד עם העתק מקומי של ה-Cloud9 IDE שמוגדר מראש להפעיל את Node.js. כלולה גם ה-Bonescript library, מבוססת על Node.js, אשר מספקת מספר פונקציות דמוי-Arduino עבור השקה עם החומרה. קוראים הבקיאים בפונקציית ‘digitalWrite’ של Arduino ירגישו מייד בבית עם פונקציה זו או דומות לה הכלולות ב-Bonescript. משאב של קהילת ה-beagleboard.org משמש גם מאגר שימושי של פרויקטים לדוגמא, פורומים מועילים ותעוד חומרה/תוכנה.

הודות לכלים אלה וליכולת להשתמש בפיני ה-GPIO הרבים, ה-Black הופך לפלטפורמה אידיאלית לשמש בלימוד טכנולוגיית מידע ואלקטרוניקה בסיסית. ל-BeagleBone Black יש סך הכל 92 פינים נגישים דרך שני פסי מחבר פינים שורה כפולה, P8 ו-P9. פסי מחבר פינים אלה, שכוללים מספר פיני GPIO גדול בהרבה מהקיימים על Arduino או Raspberry Pi, גם יוצרים את החיבור ל-Capes הרחבה. לפינים יכולות להיות מגוון פונקציות אפשריות שונות, החל מבקרת IO, קריאת חיישנים, הפעלת ממסרים ודחיפת נורות LED. Capes, שמקורם ממגוון ספקי צד-שלישי, מספקים הכל החל משטח על לוח bread-board, מסך LCD ועד ל-Cape מקיף המשמש לבקרת פרויקטים של כלי-רכב תת-מימיים. אתר הקהילה beagebonecapes.com המסופק על ידי CircuitCo, יצרן ה-BeagleBone Black, מחזיק ברשימה של Capes תואמים שנבדקו ונמצאו מתאימים במלואם. מבחינה טכנית ניתן לגובב עד 4 יחידות Cape אחד על השני, כל עוד אין סתירות בשימוש ב-GPIO. כמו כן, יש לשים לב שקיימות מספר דרכים להפעיל או לרבב GPIO. מערכות הפעלה שונות עשויות להפעיל את ה-GPIO באופנים שונים. ברירת המחדל לאופן הריבוב תוך שימוש ב-Angstrom Linux היא mode 7. שם אות ה-Linux של פין מסוים אינו זהה למספר הפין המסומן על הלוח.
במידה רבה, הדרך הקלה ביותר לבצע נסיונות עם GPIO זה היא להשתמש ב-Cloud9 IDE. ה-Cloud9 מופעלת אוטומטית בזמן האתחול וניתן לגשת אליה תוך שימוש בשרת האינטרנט של Black עצמו. דפדפן ה-Epiphany נראה שמוצא את ה-IDE באופן אוטומטי בהתחלה, אך ניתן להפנות כל דפדפן לנקודה 3000 בכתובת IP של ה-BeagleBone Black. אף על פי שזה דומה לשימוש ב-IDE של Arduino, ההבדל הוא שאין צורך לטעון את הקוד ללוח; הוא נשמר אוטומטית בתוך מערכת הקובץ. שרת האינטרנט של Black עצמו מספק סט דפים נוח שגם נותן לך גישה ל-Cloud9 IDE ולמספר דוגמאות פשוטות של קוד Bonescript אותן ניתן להריץ אינטראקטיבית עם הלוח.

כמו רוב סביבות הפיתוח המשולבות (IDEs) עבור יישומים משובצים, ל-Cloud9 יש איזורי זכרון המוקצים לעבודות מהסוגים עריכת קוד, בדיקת תקינות, ניפוי שגיאות ובדיקה. כתיבת קוד היא תהליך אינטראקטיבי עם בדיקות משתנים ותחביר שמתבצעות עם הכניסה. תהליך ניפוי השגיאות הוא הרבה יותר מתוחכם מזה של Arduino, עם מלוא השימוש במפסקים, משתנה משמר וביצוע פעולות צעד-אחר-צעד. Cloud9 מספק מספר דוגמאות פשוטות כתובות ב-node.js JavaScript וכלולות בספריית Bonescript. דוגמת הקוד ‘blinked.js’ (ראה תרשים 5) משנה את המצב של אחד מנורות ה-LED משתמש (USR3). ניתן להרחיב את זה לשימוש באחד מפיני ה-GPIO על ידי חיבור LED ונגד מושך מעלה/מגבל זרם לפין GPIO המבוקש ועל ידי שינוי היעוד של ledPin ל-GPIO הרלוונטי, לדוגמא .boneP8_3. כ-IDE ברמה הבסיסית, Cloud9 מספק דרך מהירה וקלה לכתיבת פרויקטים של קוד קצרים ולאחר מכן להריץ אותם ולנפות שגיאות. אף על פי שהדלקה וכיבוי של LED יכולים להראות כמשימה פשוטה, זהו צעד חשוב ראשון ברכישת ביטחון והכרת הלוח, במיוחד עבור מפתחי תוכנה אלה המתנסים בפעם הראשונה בהתחברות לעולם האמיתי.

השימוש ב-node.js JavaScript נראה כדרך המועדפת לתכנות ה-BeagleBone Black. הוא בהחלט משמש כהקדמה קלה יותר עבור אלה שלא מכירים תכנות או שפות עיליות, או דרך להרכיב במהירות אב-טיפוס. מכל מקום, עבור אלה עם נסיון תכנות רב יותר והצורך בתכן מורכב יותר, Python ו-C נתמכים היטב. באותה הדרך ש-Bonescript מוסיף פקודות IO אנלוגיות ודיגיטליות בסגנון Arduino ל-node.js, למפתחי Python קיימת ספריה הנקראת PyBBIO.
ניתן גם לפנות ישירות ל-GPIO מתוך מערכת ההפעלה Linux. ניתן לעשות זאת ישירות על הלוח או על ידי חיבור מרחוק דרך SSH. ראשית, זה דורש זיהוי של שם אות ה-Linux הנכון בפין GPIO מסוים, ושנית, להיות בעל ידע סביר בעבודה ברמה של שורת פקודה Linux. לכל פין GPIO יהיה מדריך (directory) בשם אות ה-Linux בתוך המקור sys/class/ כאשר נמצא בשימוש. בדרך זו ניתן לאתר ניגודים אפשריים של אותות/GPIO כאשר משתמשים ב-Cape אחד או יותר. מחבר P8 - פין 16 מזוהה כ-GPIO46 (ראה תרשים 6). בלכידת המסך ניתן לראות שלא קיים מדריך (directory) gpio46, כך שהאות פנוי לשימוש. כאשר דוחפים LED מחובר אל הפין, בכתיבת 1 לקובץ ערך Linux ניתן להדליק או לכבות אותו בעזרת 0. לאחר שימוש, אסור לשכוח לבטל את יכולת הקריאה של המדריך (‘unexport’) כדי לבטל את השימוש בפין. פקודות מעטפת אלו ניתן גם לכלול בהוראות Python.

באם הנך מפתח מערכות משובצות מנוסה המחפש להאיץ את הפרויקט החדש שלך על ידי שימוש בפלטפורמת מקור-פתוח מתועדת היטב, או מעריץ אלקטרוניקה המחפש להשתעשע, ה-BeagleBone Black מהווה בחירה מעולה לבסס עליה את התכנים שלך.
מיאון אחריות: דעות, אמונות ונקודות מבט המובעות על ידי מחברים שונים ו/או משתתפי פורום באתר אינטרנט זה לא בהכרח משקפות את הדעות, האמונות ונקודות המבט של חברת DigiKey או את המדיניות הרשמית של חברת DigiKey.




