להתקדם מארדואינו: Pinout על PCB

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

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

פה ושם יש פרויקטים אשר – מטעמים של נוחות או דרישות לקוח – נבנים על גבי חומרה של לוח ארדואינו (לפחות בשלב ראשון), אך התוכנה שלהם היא לא קוד ארדואינו "קלאסי" אלא גם נוגעת ישירות ברגיסטרים של המיקרו-בקר. במקרים כאלה, המספור הרגיל של הפינים בארדואינו לא מספיק, וצריך לדעת מה השם האמתי של הפין, כפי שהוא מוגדר ב-Datasheet של הרכיב. יש באינטרנט בערך 3.6 מיליוני אתרים ושרטוטים שמכילים את המידע הזה (חפשו Arduino pinout ותראו), ובכל זאת כשעובדים על הפרויקט זה די מעיק לעבור כל הזמן מהלוח למסך, או אפילו לשרטוט המודפס, ובחזרה.

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

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

תצוגה מקדימה של הלוח ב-KiCAD
תצוגה מקדימה של הלוח ב-KiCAD (לחצו להגדלה)

התכנון של המגן הוא בסופו של דבר מאוד בסיסי. הפינים של הארדואינו מתחברים לקבוצות פינים בשוליים, שמסודרות לפי הפורטים של המיקרו-בקר. ליד כל פין יש טקסט שאומר גם איך הוא נקרא בארדואינו, וגם מיהו ומה הפונקציות שלו לפי ה-Datasheet. הוספתי קונקטור ISP לצריבה: אמנם יש כזה על הארדואינו, אך רציתי שהמגן שלי לא יישבר בקלות וגם לא יהיה גדול יותר ממה שהכרחי, וזה חייב צמצום של ה"חלון" כך שהגישה לקונקטור המקורי לא אפשרית. אם כבר צריבה, שמתי בנוסף קונקטור לצורב PICKIT (או SNAP) של Microchip, שגם הם תומכים כיום ב-ATmega328P, ובוודאי זולים יותר מצורב Atmel מקורי.

את הפינים GND ו-5V הרחבתי לשמונה פינים כל אחד, כדי שלא אצטרך לחפש מקומות לחבר אדמה ומתח בכל ניסוי קטן או פרויקט זמני. הלוח בנוי כך שאפשר, בעיקרון, להלחים לו פינים שיתחברו למטריצה, אך גם headers מסוג זכר או נקבה – או גם וגם, כפי שעשיתי בלוח שבתמונה.

ה-PCB הריק והמאוכלס
ה-PCB הריק והמאוכלס (לחצו להגדלה)

כשהתכנון הושלם נכנסתי לאתר pcbshopper כדי לחפש הצעת מחיר אופטימלית. בשביל לוח כזה, עם שתי שכבות בלבד, מוליכים גדולים ומרוּוחים ובלי שום לקוח שיכעס אם משהו יתקלקל, המחיר היה הפרמטר החשוב היחיד. במקרה זה, JLCPCB נתנו את ההצעה המרשימה של $2 (!) עבור חמישה לוחות, ועוד עשרה דולרים למשלוח מהיר (!) עם פדקס. אגב, מקורות יודעי-דבר טוענים שיש משהו מאוד מוזר ב-JLCPCB: בניגוד לכל היגיון כלכלי הם מסרבים לבצע עבודות בקנה מידה גדול, וכשמבקשים לייצר אצלם משהו עם פרמטרים מורכבים, הם לעתים מעבירים את העבודה למפעל המשוכלל-יותר שלהם… PCBWay.

בכל אופן, הלוחות הגיעו במהרה כמובטח, ללא שום תקלות (עד כמה שראיתי בינתיים) ועם מחזיק מפתחות עם איור של סנטה קלאוס, כי דצמבר. את החלון – בעצם חור גדול ב-PCB – יצרתי פשוט על ידי ציור גבולות Edge cuts נוספים בתוך ה-PCB, ועד שפתחתי את הקופסה לא הייתי לגמרי בטוח איך המכונות יתמודדו עם זה. מסתבר שלא הייתה שום בעיה, החלון נחתך החוצה חלק ומסודר מאוד, ואם תהיתם אז לא, לא השאירו לי את החלקים העודפים.

המגן ממלא את תפקידו היטב. במקום לשנן שפין 13 הוא PB5, ולרוץ למחשב כשמנסים להיזכר לאיזה טיימר שייך ה-PWM של פין 12, כל המידע הזה נמצא על המגן באופן ברור ומסודר. ביצעתי שני שיפורים זעירים בתכנון, אם אי-פעם ארצה לייצר עוד כאלה (לכן הכיתוב v0.1 בתמונות ו-v0.2 בצילום המסך), וכעת אני מהרהר אם כדי ליצור מגן דומה לארדואינו מגה…

להרשמה
הודע לי על
2 תגובות
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות

הי עידו,
כתמיד – תענוג ללמוד ולראות את הפרויקטים המיוחדים והראש היצירתי.
רציתי לשאול אותך בחנוכה ולא הזפקתי עקב הדלקות נרות –
יש את הסביבונים המעצבנים של הילדים, שמצאו זמר סוג '7' ששר סביבון סוב סוב סוב
יש מצב לדעתך לצרוב / לשנות שם את הקוד לשיר אחר ? סתם הקלטה קולית ?