יום ההולדת השלישי להתעסקות שלי עם ארדואינו ואלקטרוניקה קרב ובא, ובפעם הראשונה – תאמינו או לא – יצא לי להלחים ג'וק מקטגוריית ה-SMD (ראשי תיבות של Surface Mounted Device), כלומר כזה שמולחם ישירות לפני השטח של ה-PCB, בלי רגלי מתכת ארוכות שנכנסות לחורים שנקדחו מראש. זהו אינו מדריך רשמי להלחמה, אלא פשוט תיעוד של התהליך – ואולי הוא יעזור קצת לקורא או קוראת כלשהם שטרם עשו את הצעד הזה.
ארכיון הקטגוריה: כללי
סיפורי אופטימיזציה: אקראיות יקרה
מתי שלושה תהליכים אקראיים נפרדים יכולים – וצריכים – להסתמך על מספר אקראי אחד? לקחים מפרויקט פשוט עם תופעת לוואי לא צפויה.
למה משתלם להיות מייקר
כמו תחביבים רבים אחרים, גם התעסקות באלקטרוניקה (כתחביב בלבד) כרוכה לרוב בהוצאות כספיות יותר מאשר בהכנסות. עם זאת, מכיוון שהסביבה שלנו רוויה בטכנולוגיה ואלקטרוניקה, יש לתחביב המייקינג פה ושם גם בונוסים כלכליים עקיפים. הנה מקרה קטן לדוגמה.
מה הקטע עם CY8CKIT
אפילו כיום, כשכל חברת שבבים דוחפת לשוק לוחות פיתוח זולים, הקיטים מבוססי ה-PSoC 4 של חברת Cypress הם יוצאי דופן בזכות מחירם המגוחך: 4 דולר בלבד. הקונה הישראלי הטיפוסי יצטרך להוסיף לכך דמי משלוח משמעותיים, אך אם תהיו מוכנים לספוג אותם, או שתגלו קומבינה אחרת להשיג את הלוח, הנה מה שמצפה לכם.
Abuarba: לקראת פרוטוקול תקשורת חדש
אי-שם בהיסטוריה, במקום ובזמן שטרם הצלחתי לאתר, מישהו חשב על הרעיון המחוכם להעביר מידע ממחשב למכשיר אחר באמצעות הבהובים על המסך. ההבדל בעוצמת האור בין ריבוע שחור לריבוע לבן על גבי המסך יכול להיקלט בקלות באמצעים גסים יחסית, והמחשב יכול בקלות לתזמן ולצייר את הריבועים הללו כדי לייצג ביטים או סיגנלים אחרים.
השיטה הזו הופעלה בהצלחה לא פעם, אך יש לה כמה מגבלות בולטות. קודם כל, היא איטית להחריד: קצב הרענון של מסך טיפוסי כיום הוא 60Hz, מה שמגביל אותנו – במקרה הכי אופטימי! – ל-7.5 בייטים בשניה, וזה לפני שדיברנו על מחשבים שמחליטים פתאום לבצע איזו משימה "כבדה" אחרת ולחרב את התזמון. כמו כן, בגלל שוני בבהירות בין מסכים שונים ובסביבות עבודה שונות, האמינות של זיהוי הביטים עלולה להיפגע וזה מחייב התייחסות.
במקום לשחזר אחד מהפרוטוקולים הקיימים, על חולשותיו, ולהסתפק בו, החלטתי ליצור פרוטוקול חדש שישלב את היתרונות של אלה הקיימים ויהיה מהיר, אמין ופרקטי לא פחות.
פרויקט צ'קלקה
ילדים לומדים מהר. אחרי שהכנתי את חיישן הרברס למשאית הצעצוע, הרעיון של תוספות אלקטרוניות תוצרת בית לצעצועים הפך מבחינתם למובן מאליו – וכעת התבקשתי להוסיף אורות מהבהבים לאחת מהכבאיות הרבות שבאוסף.
התגובה הנכונה היא אולי "תעשו את זה בעצמכם", אך מכיוון שמעורבות בעניין הלחמות, וממילא רציתי לעשות משהו ראשוני עם מיקרו-בקר PIC, ניצלתי את ההזדמנות – והרי לפניכם התהליך והתוצאות.
תעלומת ה-Pro Mini הדפוק
בעבר אמרתי שלוחות תואמי ארדואינו הם טובים פחות או יותר כמו המקוריים. לאחרונה, ההמלצה הזו מתבררת כיותר ויותר בעייתית. זה התחיל עם חיקויי הנאנו מ-buyincoins.com שמייצב המתח שלהם נשרף לכמה חבר'ה, המשיך עם הארדואינו Uno הזול-עד-כדי-חשד שכלל, כך הסתבר, מיקרו-בקר מדגם ATmega8 במקום ATmega328, ועכשיו יש לנו "תכשיט" חדש – לוח Pro Mini זול מאד שאצל חלק מהאנשים פשוט לא עובד. את הדגם הזה קל לזהות (ראו בתמונה), וכשראיתי לוח חשוד באיביי ב-2.5 דולר בלבד החלטתי להסתכן ולקנות אותו. אם הוא יעבוד, הרווחתי; אם לא, יהיה לי אתגר לנסות להבין מה לא בסדר – וגם סביר להניח שאקבל החזר. הוא לא עבד… אז הנה לכם פתרון התעלומה.
הרע, הרע והמכוער: הקצאה דינמית במיקרו-בקרים
כאשר מתכנתים מיקרו-בקרים פשוטים, שגודל זיכרון ה-RAM שלהם נמדד בקילובייטים ספורים, הקצאה דינמית (תפיסה ושחרור של קטעי זיכרון בזמן ריצה) היא טכניקה בעייתית עם תועלת מפוקפקת. בפוסט זה אסביר בהרחבה למה.
סיפורי אופטימיזציה: תמונות ממוזערות
פרויקט ארדואינו שעבדתי עליו לאחרונה כלל מסך מגע קטן, וכדי שהממשק יהיה אטרקטיבי החלטתי לשלב בו לחצנים עם עיצוב גרפי. גודל של לחצן נוח לתפעול, עבור המקרה הספציפי הזה, הוא בסביבות 36×36 פיקסלים; המסך עובד בסכמת צביעה שמצריכה 2 בייטים לפיקסל, ובסך הכל צריך כעשרה לחצנים, כלומר כ-26KB. איפה ואיך מאחסנים את המידע הזה באופן שיהיה גם נוח, גם מהיר לגישה וגם חסכוני ככל האפשר?
איך לשאול שאלות
מנסה לעשות משהו בארדואינו וזה לא הולך? יש בעיה בארדואינו או בתכנות שלו? רוצה להבין משהו ספציפי באלקטרוניקה, לאתר מידע על מיקרו-בקר או על חיישן – בקיצור, יש לך שאלה לקהילת המייקרים? הנה שישה כללים חיוניים, שיגדילו מאד את הסיכוי לקבל תשובה מועילה (וגם ימנעו אי-הבנות, בזבוז זמן ועצבים).
להמשיך לקרוא איך לשאול שאלות