במדריך זה נכיר את המעגל המשולב ("ג'וק") הנפוץ, הזול והשימושי שמכונה 595, אשר מטרתו המוצהרת היא להפוך קלט טורי לפלט מקבילי, ושבדרך כלל משתמשים בו כדי להגדיל את מספר פיני הפלט הזמינים בפרויקטים מבוססי מיקרו-בקרים. נבין את המשמעות של הפינים שלו, נלמד כיצד להפעיל אותו ברמות שונות של תחכום ושליטה, ונראה גם מה המגבלות שלו, שכדאי מאד לזכור ולשים לב אליהן בתכנון ובניה של יישומים מעשיים.
מכירים את ה-Intelligent Bricks של לגו? מדובר ביחידות עיבוד חזקות, משוכללות ומרשימות להפעלה של רובוטים עם רכיבי סדרת Mindstorms – והן גם יקרות מאד. מאד. נכון שהיה נחמד אם היתה דרך לשלוט ברובוטי לגו בעזרת ארדואינו ורכיבים אלקטרוניים מוכרים וזולים יותר?
המוצר המיוחד שהגיע אליי הפעם הוא VM800P35A, לוח הדגמה שמשלב מסך LCD קטן, מעין-ארדואינו מובנה, מעבד אודיו, שעון זמן-אמת, חריץ ל-Micro SD ובעיקר שבב EVE (מנוע וידאו מוטמע – Embedded Video Engine) מדגם FT800 של חברת FTDI. השילוב של שלושת אלה מבטיח תוצאה מעניינת מאד: ארדואינו עם תצוגת מולטימדיה זריזה להפליא, ברמה של משחקי פלאש מודרניים (אם לא יותר מזה).
כשהתחלתי לכתוב את המדריך למתחילים לג'וק 595, קוראי הטיוטה הראשונה הציעו לי לשלב במדריך גם הסבר על הפונקציה shiftOut של ארדואינו. פונקציה זו פולטת בייט שלם, ביט אחרי ביט, דרך פין פלט יחיד תוך כדי הוצאה של אות שעון מתאים דרך פין נוסף. הפרטים המדויקים פחות חשובים כרגע – מה שחשוב הוא שלצורך הכתיבה הלכתי להסתכל בקוד של הפונקציה עצמה…
מי שמוריד את סביבת הפיתוח הרשמית והחינמית MPLAB X, של חברת Microchip, מקבל איתה בין השאר את הקומפיילר XC8 בגרסה שמבצעת (כך מספרים לנו) רק אופטימיזציות בסיסיות. כדי להפיק קוד יעיל באמת, הלקוחות נדרשים לקנות גרסה משופרת. עד כאן סביר ולגיטימי, נכון?
אבל איזה מעשה מפוקפק עושה Microchip כאשר ההבדל בביצועים בין הגרסה הרגילה למשופרת לא נראה גדול מספיק כדי להצדיק את ההוצאה הכספית?
פוסט זה הוא סקירה וביקורת על הספר Programming in C, 4th Edition מאת Stephen G. Kochan, שנשלח אליי על ידי ההוצאה לאור תמורת ביקורת כנה בדף המוצר ב-Amazon. מכיוון שיש לא מעט חבר'ה שרוצים ללמוד C גם בארץ ומחפשים מקורות, החלטתי להוסיף מיוזמתי סקירה של הספר גם כאן בבלוג.
הנה התקציר במשפט אחד: אם כבר יצא לכם לתכנת טיפה, והחלטתם ש-C היא השפה הראשונה שאתם רוצים ללמוד לעומק, הספר הזה מתאים לכם בהחלט. ועכשיו לפירוט…
יום ההולדת השלישי להתעסקות שלי עם ארדואינו ואלקטרוניקה קרב ובא, ובפעם הראשונה – תאמינו או לא – יצא לי להלחים ג'וק מקטגוריית ה-SMD (ראשי תיבות של Surface Mounted Device), כלומר כזה שמולחם ישירות לפני השטח של ה-PCB, בלי רגלי מתכת ארוכות שנכנסות לחורים שנקדחו מראש. זהו אינו מדריך רשמי להלחמה, אלא פשוט תיעוד של התהליך – ואולי הוא יעזור קצת לקורא או קוראת כלשהם שטרם עשו את הצעד הזה.
הטיימרים (Timers) שב-ATtiny85, ולמעשה בכל מיקרו-בקר אחר כמעט, הם כלי עבודה חזקים מאד שכוללים מגוון של אופני פעולה ואופציות. בפוסט זה ניגע רק בפינה אחת קטנה של אחד הטיימרים, למטרה מאד ספציפית: יצירת גל ריבועי בתדר של 38KHz בדיוק.
חיישן IR לתדר 38KHz (באמצע, במעטפת המתכת) ו-IR LED (משמאלו)
מדי פעם צץ בפורום כזה או אחר משתמש חדש, שתוהה באיזו שפה מתכנתים את הארדואינו. לשאלה הזו יש תשובה פשוטה מאד (C++), אך בגלל סיבות שונות ומשונות, חלקן לגיטימיות וחלקן פחות, התשובה הנ"ל אינה מובנת מאליה לרבים. אם גם אתם רוצים לדעת למה זה כך, הנה לפניכם פוסט מפורט שיפתור את התעלומה אחת ולתמיד… אני מקווה!