תוך בניית המון רובוטים כדי למלא פרויקט Kickstarter האחרונות, היה לי צורך לתכנת אלף או יותר Arduinos, אשר ייקח לנצח אם אני לתכנת את כולם בנפרד. מצבים כאלה הם הזדמנות מושלמת לעבוד על אותם פרויקטים meta אשר יכול להיות פשוט כיף לבנות כמו המוצר עצמו. במקרה זה הייתי זקוק למשהו שיהיה:
Pogo סיכות הם דרך נהדרת של חיבור מהיר זמני חשמל PCB אז החלטתי להשתמש בהם די מהר. השתמשתי קצת לעבור לחתוך לייזר להחזיק את Arduino במקום. ממשק המשתמש צריך להישמר די פשוט אז התיישבתי על כמה כפתורים בסגנון ארקייד נראה נהדר גם להאיר עם LED בתוך. אני חושב שהם נועדו עבור סרסור את "מכוניות רוכב הילד" אבל לעבוד די טוב על מתכנת Arduino מדי. אז אני לייזר לחתוך מסגרת עבור כל אלה כדי לשבת כך שתוכל במהירות להחליק את Arduino למקום ולחץ על הכפתור. כאשר הוא מתכנת את הכפתור מהבהב וכאשר זה נעשה הוא נשאר על אם זה היה מוצלח הולך אם זה נכשל.
חיברתי USB ממיר טוראלי לכל קבוצה של סיכות פוגו ולאחר מכן מחובר כל אלה לתוך רכזת USB. כדי להניע את ממשק המשתמש עשיתי סקיצה קטנה פשוטה עבור Arduino, אשר יאפשר שליטה חיצונית של נוריות פולטים אירועים כאשר הלחצנים היו לחוצים. זה גם לחבר את הרכזת USB אשר מחובר אז לתוך פטל פטל.
כתבתי חתיכת תוכנה פשוטה Node.js, וזה נהדר עבור סוג זה של עומס עבודה מונחה אירוע. כל זה עושה הוא לתקשר עם ממשק המשתמש Arduino וכאשר כפתור נלחץ זה יבצע avrdude בתהליך משנה על יציאה טורית נכונה. לאחר מכן הוא אומר את ממשק המשתמש Arduino להבהב את הנורית הנכונה ולאחר מכן בהתאם לקוד לחזור מתוך תהליך חיצוני זה יצביע על הצלחה או כישלון.
עם כל זה במקום, כל מה שאני צריך לעשות היה להגיד לו אתחול בזמן ריצה, מה שעשיתי על ידי לשים אותו לתוך crontab. הדבר המורכב היחיד לעבוד מסביב היה לוודא כי יציאות USB בא עם אותו מזהה בכל פעם. למרבה המזל בלינוקס זה אפשרי על ידי הוספת סקריפט udev שיוצר קישוריות תלוי איפה המכשיר נמצא על אוטובוס USB. משמעות הדבר היא כי לאחר אתחול מחדש USB ממיר טורי שמר על אותו שם.
כי כולם פועלים בנפרד זה מזה, אני יכול מהר מאוד לשים אחד במקום, לחץ על הכפתור ולהתחיל לשים את הבא במקום. עד שהגעתי ארדנו החמישי, הראשון סיים. כי הם נעשים במקביל, זה לוקח רק כמה שניות כדי לתכנת כל ארדואינו, ולא 30 או כך זה היה לוקח בדרך כלל עבור כל אחד.
אם אתה רוצה לבנות משהו כזה בעצמך, הכל קוד פתוח:
אם אתה רוצה לשנות את זה לתכנת סוגים אחרים של Arduino התוכנה צריכה כל עדיין להיות תקף ואתה יכול להגדיר את זה לעשות כמו רבים כמו שיש לך יציאות טוריות.