פרויקט 99: להתממשק עם המקלדת

מכיוון שהנסיבות (ודואר ישראל?) מעכבות מעט את ההתקדמות המעשית בפרויקט, אנצל את הפוסט הזה להסבר תיאורטי-למחצה של אופן פעולת המקלדת של ה-TI99/4A העתיק.

Keypad
לוח מקשים גנרי. התעלמו מהשרטוט שעל הנייר

להמשיך לקרוא פרויקט 99: להתממשק עם המקלדת

נא להפריע: פסיקות (Interrupts) בארדואינו

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

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

להמשיך לקרוא נא להפריע: פסיקות (Interrupts) בארדואינו

לא בת 16 (ביטים)

לפני ימים ספורים דיברתי על שבב הזיכרון הסריאלי והחמוד 23K356. הוא כל כך מצא חן בעיניי, שהחלטתי להזמין עוד כמה יחידות ממנו. הדבר היחיד שמעכיר את השמחה הוא העובדה שיש לו 32,768 כתובות, שניתן להגיע לכל אחת מהן באמצעות 15 ביטים – אבל בתקשורת איתו נשלחים 16 ביטים שהוא פשוט מתעלם מהראשון שבהם. תגידו, זה יחס, זה?

23K256
להוציא את המקסימום מכל ביט: מעגל משולב של זיכרון סריאלי

העובדה שהג'וק מתעלם מהביט הראשון לא אומרת שגם התוכנה שלי חייבת להתעלם ממנו. אני יכול לבודד אותו ולהשתמש בו, עוד לפני שלב הזנת הכתובת, כסוויץ' לבחירה של אחד מתוך שני שבבים זהים, וכך ליצור יחידת זיכרון עם מרחב כתובות אמיתי של 16 ביט – 65,536 כתובות שמנוצלות עד האחרונה שבהן. השאלה היא איך עושים זאת עם מינימום חיבורים לארדואינו (או לכל מיקרו-קונטרולר אחר, לצורך העניין).

להמשיך לקרוא לא בת 16 (ביטים)

פרויקט MBM: לדעת יותר מהלקוח

פרויקט MBM (שם קוד זמני) הינו תוכנה מסחרית שאני מפתח בימים אלה. מטעמים מובנים, אני לא אסביר בדיוק מה התוכנה עושה, וממילא סביר להניח שזה לא באמת יעניין אתכם – זו תוכנה לתעשיה, לא לצרכנים פרטיים. הרעיון בפוסטים של פרויקט זה הוא להציג אספקטים מסוימים של פיתוח תוכנה – בקנה מידה מלא ובכלל – כדי שתוכלו לקבל רשמים על התחום, ללמוד מהטעויות שלי ואולי גם להציע לי פה ושם שיפורים שלא חשבתי עליהם… 😉

להמשיך לקרוא פרויקט MBM: לדעת יותר מהלקוח

המדריך למלחים המתחיל

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

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

להמשיך לקרוא המדריך למלחים המתחיל

מי אמר זיכרון ולא קיבל?

במוקדם או במאוחר, כל מי שמשחק עם מיקרו-קונטרולרים כמו הארדואינו, PIC או ה-MSP430 נתקל בבעיית הזיכרון: מקום האחסון שעל השבב הראשי אינו מספיק עבור יישום מסוים שאנחנו רוצים ליצור. מה עושים?

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

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

Arduino nano and the 23K256
ארדואינו נאנו ושבב הזיכרון הסריאלי הזעיר

להמשיך לקרוא מי אמר זיכרון ולא קיבל?

אמא'לה, ג'וק! מבוא למעגלים משולבים

בפוסט זה ניצור פרויקט ארדואינו שמציג מספרים בין 0 ל-255, בייצוג בינארי, באמצעות שורה של שמונה נוריות LED. לכאורה, אפשר פשוט לחבר שמונה נוריות לשמונה חיבורי פלט של הארדואינו, ואז לבודד ולשלוח לכל אחת מהן את הביט המתאים מתוך הבייט שמכיל את המספר. אבל לארדואינו הבסיסי יש רק 14 חיבורי פלט, אז מה היינו עושים אם צריך היה להציג מספר בעל 16 ביטים, או 32 או 128?

SIPO Binary Number Display
מציג המספרים הבינאריים, עם ארדואינו ומעגל משולב (בין כל החוטים)

הפתרון שיוצג כאן תופס שלושה חיבורי פלט בלבד לשמונה הנורות, ומנצל לשם כך מעגל משולב – "ג'וק" בלשון העם – מסוג SIPO – Serial In Parallel Out. אנחנו נתחיל בסקירה זריזה של ג'וקים בכלל, אחר כך של הג'וק הספציפי שלנו, ומשם נמשיך להרכבה ולתכנות. מוכנים?

להמשיך לקרוא אמא'לה, ג'וק! מבוא למעגלים משולבים

הַיי, TI!

ובכן, נכנעתי ללחץ החברתי ולמחיר המפתה, ורכשתי את ערכת הפיתוח למתחילים MSP430 Launchpad של חברת TI (טקסס אינסטרומנטס). הערכה נקנתה ישירות מהאתר ($4.30 ליחידה, כולל הכל), והגיעה תוך ימים ספורים עד הבית עם שליח של FedEx. הנה מה שמצאתי באריזה המפוארת:

להמשיך לקרוא הַיי, TI!

פרויקט 99

TI99/A4 Case
שיא הטכנולוגיה הביתית, 1981

המחשב שבתמונה – ליתר דיוק, המחשב שהיה בתוך המארז שבתמונה – הוא TI99/4A, מחשב אישי מתחילת שנות השמונים, והמחשב הראשון שהיה אצלי בבית. אני הייתי צעיר מכדי להבין באמת במה מדובר, וכשהאמיגה הגיעה, הצעצוע הזה נשלח אחר כבוד אל המרתף. במשך כמעט שלושים לא נגזים: עשרים וחמש שנה הוא העלה אבק, פחות או יותר שכוח לגמרי. כשגיליתי אותו מחדש לאחרונה, הוא כבר היה טוטל-לוס: לוח האם היה מקולקל מעבר לכל אפשרות תיקון סבירה. אין לי שום כוונה לשחזר אותו (יחס המחיר/נוסטלגיה הרבה יותר מדי גבוה), אבל המארז יפה והצליל התקתוק של המקשים נעים. משהו פה פשוט צועק "ארדואינו!", לא?

להמשיך לקרוא פרויקט 99

ארדואינו למתחילים: מדחום אינטראקטיבי

בפוסט זה נחבר לארדואינו רכיב ממשפחת LM35 – חיישני טמפרטורה קטנים וזולים שמותאמים למדידה של מעלות בסולם צלזיוס – וניצור מדחום אלקטרוני, שבודק את הטמפרטורה בחדר, שולח את המידע למחשב, ואפילו מאפשר למשתמש לקבוע דרך המחשב את פרק הזמן שיעבור בין מדידה למדידה!

להמשיך לקרוא ארדואינו למתחילים: מדחום אינטראקטיבי

תכנות, מיקרו-בקרים וטכנולוגיה