ראשית תראה: Microcontrollers Javascript עבור מפתחי אינטרנט - 💡 Fix My Ideas

ראשית תראה: Microcontrollers Javascript עבור מפתחי אינטרנט

ראשית תראה: Microcontrollers Javascript עבור מפתחי אינטרנט


המחבר: Ethan Holmes, 2019

לוח Tessel (משמאל) ואת לוח Espruino (מימין)

Espruino יש לשלוח את Kickstarter backers, ו Tessel הוא על לוח הזמנים הספינה עד מאי, ואנחנו עומדים לקבל את הידיים על טרום מראש חומרה Tessel ואתה יכול לצפות סקירה מעמיקה בקרוב.

למרות הפיצוץ של לוחות חדשים שהגיעו לשוק - ובגלל הקהילה שגדלה סביבם - לא הייתי מהססת להמליץ ​​על ארדונינו, אם תזדקק ללוח מיקרו-בקר של 8 סיביות, או לפטל פטל אם תזדקק מחשב בעל לוח יחיד הפועל עם לינוקס.

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

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

כרגע יש שני לוחות מיקרו-בקר חדשים המחפשים מימון - אחד על קיקסטארטר, והשני על פלטפורמת ההמון החדש של דרגון אינוביישן - שונים במקצת. לוחות אלה הם לא רק עוד שיבוט Arduino, או עוד אפשרי "רוצח פטל פי." אלה שני לוחות, Tessel מן טכניים.ש ו Espruino מ Pur3, מתכוונים לקחת את הנתיב לפחות נסע ו co-op קהילה קיימת לא קשורה באופן מסורתי עם הקהילה יצרנית.

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

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

טסל

Tessel מן technical.io היה אחד המוצרים שמונה אשר השיקה את פלטפורמת ההמון החדש פלטפורמת הדרקון חדשנות בשבוע שעבר, ואת הראשון כדי להגיע למטרה המימון שלה. Tessel מכוונת על קצה גבוה של הפער בין Arduino לבין פטל פספרי, ישירות ביישומים מחוברים לאינטרנט מכוונים התקנים פיזיים, ויש לו WiFi מובנית. זה אומר לא רק כי הלוח הוא תמיד באינטרנט, ומאפשר לו לשמש גם כשרת וגם לקוח, אבל יש לך את היכולת מרחוק לפרוס את הקוד על הלוח באמצעות הרשת.

כמו גם תקן GPIO הבנק בקצה אחד, אשר כולל SPI, I2C, יכולת UART, כמו גם 6 כללי קלט קלט / פלט סיכות, 6 אנלוגי לממירים דיגיטליים, סיכה 5V, סיכה 3.3V, סיכה הקרקע - הלוח תומך במערכת מודול, מה שהופך אותו קל להוסיף יכולות לפרויקט ללא הלחמה. ישנם שני סוגים של מודול, שניהם בעלי אותו מחבר. Class A מודולים-ממסר, טמפרטורה / לחות, סרוו, Accelerometer ו- Micro כרטיס SD הלוח - ומעט יותר יקר Class B מודולים- RFID, Bluetooth LE, GPS לוחות אודיו.

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

לוח Tessel עם סרוו מודול נהיגה סרוו רגיל.

הקוד לנהוג מודול סרוו הוא די פשוט,

var servo = דרוש ('servo-pca9685'); // אתחול סרוו. console.log ("initalizing"); / Porto A, כיול מינימום / מקסימום PWM של 4-15 var cs61 = servo.port ('A') (1, 4, 15); cs61.on ('מחובר', פונקציה () {var pos = 0; setInterval (פונקציה) (console.log ("סיבוב מעלות:", pos); cs61.move (pos); / / הגדלה של 45 מעלות pos + = 45, אם (pos> 180) {pos = 0;}}, 1500);});

הלוח ממנף את npm ואת הקהילה node.js השרוע - פשוט להתקין את המודול סרוו באמצעות npm לתוך ההתקנה node.js שלך ולאחר מכן לדחוף את הקוד שלך הלוח Tessel באמצעות חבילת nsm Tessm. אבל זה לא רק התשתית שלהם עושה שימוש npm, הלוח הולך להיות תואם עם אלפי קיימים node.js מודולים הזמינים באמצעות npm.

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

מדבר עם טים רייאן

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

מה המטרה של פרויקט טסל?

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

מה הארכיטקטורה הבסיסית של הלוח Tessel?

בתוך הבית פיתחנו מתורגמן JavaScript שנבנה סביב ריצה Lua התואמת את ה- API של Node.js. אין C + + מודולים מקומיים, אבל זרימת שליטה ומודולי HTTP בקלות. מערכת ההפעלה שלנו היא למעשה לולאת אירועים על המתכת החשופה. בקרת אותות מהירות ותגובה נשלטים באופן אסינכרוני. יש לנו ניסויים שליטה במהירות גבוהה רענון LED מטריצות וציוד היקפי SPI מראה כי זה חלופה זולה לקוד בזמן אמת, תוך להיות הרבה יותר אינטואיטיבי לכתוב.

לדוגמה, רוב הקוד היקפי שלנו (בעיקר SPI ו I2C) שעונים קוד על 50 או 100 שורות של קוד שצוין. הריצה שלנו אפילו נותן לנו את ההצעה לעשות סימולציה ממש על שורת הפקודה שלך לפני לפרוס קוד, נותן למפתחי אינטרנט עוד כלי מוכר, בדיקות אוטומטיות. כדי להתחיל עם כל מודול שאנו מייצרים הוא פשוט כמו "npm להתקין accelerometer-mma8542q" ו הדורש אותו בקוד. פיתוח ופיתוח הפריסה שלנו מתוכננת להיות רק כמה צעדים מחוץ לקופסה כדי להיות עובד לדוגמה, תקע בספריה, להוריד את שורת הפקודה כלי, לפרוס.

למה Javascript?

עבור Tessel, אנו מתמקדים לחלוטין בהפיכת אותם כלים לעבודה באינטרנט / ניידים בפיתוח לוחות מוטבעים. בין מנהל החבילה של הצומת לבין ממשקי ה- API ואת הבחירה של IDE, הרעיון צריך להיות כי אותם מיומנויות זרימת עבודה של דחיפה לשרת הם אלה שאתה משתמש כאן. יש הרבה שיתוף פעולה מעורב ביצירת ממשקי API חדשים "JavaScript כמו", כך אני מקווה הדור הבא של לוחות Javascript יכול להשתמש בכל ספריות SPI אותו, למשל.

אתה התגלגל מחסנית שלך Javascript, למה זה היה?

Tessel בהחלט מאבד במהירות על ידי לא הולך עם מנוע JavaScript עכשווי. אבל לעומת לינוקס + V8, אשר צריך 8-10mb זיכרון ההפעלה - זיכרון תקורה שלנו תודה לואה הוא מינימלי, פחות מ 70kb.

אנחנו לא מתכוונים להתחרות במיקרו-מעבדים כמו פאי פספרי, אנחנו מתעניינים יותר בפיתוח שמתקדם כלפי מטה - לא עד לוחות עוצמתיים פחות. יש מקום בעתיד למיקרו-מעבד Cortex-M3 של 3 דולר שמפעיל את JavaScript כי הוא פתרון טבעי לקוד המחובר לאינטרנט או ל- IO, וזה הסיפור שאנחנו רוצים להעביר למפתחים, שאתה מאפשר כל כך הרבה יותר מאשר רק חלופה ג.

מה הן התוכניות העתידיות שלך?

מפת הדרכים שלנו היא להתחיל עם Tessel-a "רב עוצמה" התקן-ולעבוד כלפי מכשירים פחות חזקים. יש לנו פוטנציאל למקד לוחות קטנים כמו Espruino עם זמן ריצה הרבה יותר מהר, ואנחנו משקיעים הרבה מאמץ לתוך לוודא ריצה של Tessel היא אופציה עבורכלמכשיר מקושר לאינטרנט. ולטווח הארוך, "Tessel" כנראה לא יישאר פלטפורמה רק עבור JavaScript, אבל פלטפורמה קלה לדחוף קושחה משפות אחרות - C / C + +, Lua, חלודה, לך, וגם לוגית אפילו פייתון ורובי. הערך שלנו הוא זרימת עבודה קלה וספריות, לא רק JavaScript עצמו.

אז אנחנו מהמרים על לוחות פיתוח מאופשר JavaScript רק להיות הצעד הראשון. בעוד שנה מעכשיו, המגמה תהיה לכיוון האלקטרוניקה מוטבע נגיש המאפשרים לך לתכנת בכל שפה שאתה רוצה, כל עוד התשובה שלך היא לא "C"! Tessel הולך להישאר ממש על גבי המגמה.

את Espruino

הושק כמה ימים לפני טסל על קיקסטארטר, רק בסוף אוגוסט, הלוח Espruino מ Pur3 הוא זול יותר באופן משמעותי מאשר Tessel. ב 19 £ - זה סביב $ 30 - זה בעצם פחות ממחצית המחיר של הלוח Tessel. כמובן המפרט של Espruino הוא הרבה יותר נמוך. למרות שלשניהם יש מעבדי ARM Cortex-M3, ל- Espruino יש רק 48KB של SRAM בהשוואה ל -32MB של SRM של Tessel. בעוד Tessel מכוונת בקצה הגבוה של הפער בין Arduino לבין פספל פאי, Espruino מיועד בקצה התחתון, אבל זה במחיר כדי להתאים.

Espruino הוא מעניין לעזוב את רוב לוחות מודרניים. שלא כמו Tessel - או Arduino, אינך מעלה את הקוד שלך ללוח. במקום זאת יש לך מתורגמן אינטראקטיבי. חבר את הלוח למחשב ה- Mac או למחשב שלך, והתחבר ללוח מעל ליציאת ה- USB הטורית, ותוצג לך קונסולה אינטראקטיבית.

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

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

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

למשל אנחנו יכולים להגדיר פונקציה פשוטה כי יהיה לצפות על הלוח על לוח להיות לחוץ,

() 1 (=) () () () () (LED), (1) LED (LED), LED & 1), אם (= 0) clearInterval ( );, 200);}, BTN, נכון);

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

לוח ה- Espruino מהבהב בנורית לאחר לחיצה על לחצן

באותו אופן את Apple] [+, ובמידה פחותה את TRS-80, מוכר מוכרים המראות בבתי הספר בארה"ב, בבריטניה במהלך 80 ו 90 של בתי הספר היה BBC מיקרו. זה הותיר מורשת מתמשכת, ולמרות שלא משווקת במפורש לחינוך, אני חושב שהמועצה הזאת היא חובה לבתי ספר, וללמד תכנות אנשים.

Espruino, אולי אפילו יותר מאשר פטל פאי, עוד פרויקט מבוסס בבריטניה המיועד לבתי ספר והוראת ילדים לתכנת- הוא יורש ראוי ל- BBC Micro.

מדבר עם גורדון ויליאמס

דיברתי עם גורדון ויליאמס, היוצר של אספרונו, על הלוח ועל הקמפיין שלו,

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

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

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

מדוע מודל המבוסס על אירועים טוב יותר מאשר המודל מבוסס לולאה כי Arduino ובקרים אחרים להשתמש?

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

אתה התגלגל מחסנית שלך Javascript, למה זה היה?

כתיבת המתורגמן שלי היתה באמת הכרח ולא בחירה. אם אתה מסתכל על דרישות הזיכרון של המתורגמנים העיקריים כמו V8, בשימוש על ידי node.js ו- SpiderMonkey, הם די ענק - באזור של מגה בייט. יש להם גם ווים לתוך מערכות ההפעלה הבסיסית, כך מנסה להפעיל אותם על מכשירים קטנים כגון מיקרו בקר עם סביב 1000 × פחות RAM - ללא מערכת הפעלה כמעט בלתי אפשרי.

Espruino משתמש ARC ולא אוסף אשפה, זה פשוט מתאים עם הדרך המתורגמן עובד, וזה עושה כמעט כל הקצאת זיכרון / deallocation מהר מאוד, במיוחד כמו כל בלוקים הם בגודל שווה.

זה מוביל לנקודה מעניינת על אלה microcontrollers ARM. Espruino רץ ב 72Mhz עם 48KB של RAM, אז באומדן גס מאוד זה יכול לקרוא כל בית בודד של הזיכרון שלה סביב 1ms. השווה את זה עם פטל פייס עם 800Mhz ו 512MB של זיכרון RAM עם זמן לקרוא קרוב יותר 1 השני, זה אומר שאתה צריך לחשוב על איך להתמודד עם הנתונים בצורה שונה לחלוטין, וזה אחת הסיבות שאני לא יכול בקלות להשתמש מתורגמן הקיים .

הרבה פרויקטים Kickstarter יש בעיות דרוג. אם הפרויקט שלך הוא הצלחה בורח, אתה מוכן?

כן. יש לי לוח מוכן לייצור שאני יכול לשלוח ל Seeed Studio, הוא מוכן ללכת. במהלך החודשיים האחרונים עבדנו עם Seeed כדי לשפר את העיצוב ואת רכיבי המקור של Seeed's Open Parts Library, כדי להבטיח שאיננו מתפשרים על איכות. זה איפשר לנו לייצר את העיצוב עבור הגירסה הנוכחית של המועצה Espruino. עם זאת, אם הפרויקט קיבל מימון משמעותי יותר מהצפוי, זה יהיה נהדר להביא מישהו כדי לעזור עם הדרכות צד התיעוד של Kickstarter. אני חושב שזה הכל על מתן מקומות לאנשים להתחיל, כמו פרויקט הקוביות האלקטרוניות בדף Kickstarter שלנו.

מהן התוכניות העתידיות שלך?

אם נגיע ל -50,000 ש"ח במסע הפרסום הנוכחי שלנו, נוסיף תמיכה עבור מודול ה- WiFi CC3000 ללוח Espruino. לא נהיה מפיקים מגן WiFi - אנחנו חייבים להתמקד באספרונו עצמו - אבל אנחנו נוסיף תמיכה ל CC3000 בתוכנת ה- Espruino לפני שנשלח אליכם. זה אומר שאתה תוכל לקנות מודול מראש, לחבר אותו, יש גישה לאינטרנט מיידית. אבל אני גם מתפתה לבנות "מגן מגן" אשר יחליק מתחת ללוח Espruino לתת לו סיכה תואם Arduino החוצה. הולך קדימה אני גם מעוניין לבנות גרסה הרבה יותר קטנה של הלוח Espruino.

האם שני לוחות לעשות מגמה?

קהילת Javascript כבר יש עניין בחומרה, אתה רק צריך להסתכל על nodcopter כדי לראות את זה, ואת הגעתו של אף אחד, אבל שני לוחות, כי הן יליד Javascript ו אירוע מבוסס יהיה נפגשו עם הרבה עניין. העובדה המזל כי לוחות לא באמת להתחרות זה עם זה, Tessel המיקוד high-end ו Espruino את הקצה התחתון, כנראה אומר כי שניהם הולכים למצוא נישה - וכי נישה הולך להיות נרחב למדי.

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

 



אתה עשוי להתעניין

האיש עם קרון רכבת במרתף

האיש עם קרון רכבת במרתף


אירוע האקרספייס ל -16 במרץ

אירוע האקרספייס ל -16 במרץ


יוצר

יוצר


השראה עבור תחרות עיצוב פספי Pi - לזכות Jr. Printrbot!

השראה עבור תחרות עיצוב פספי Pi - לזכות Jr. Printrbot!