דיאלוג פנימי, או: איך פרויקט נולד

זו כבר פעם שלישית שהמולטימטר הארור הזה מראה לי קצרנתק בלי קשר לכלום. והחלפתי לו סוללה רק לפני כמה ימים!

…גם סיני זול וגם ישן, למה אפשר לצפות?

אולי שווה לפתוח אותו, לראות מה יש בפנים, אולי אפשר אפילו לתקן אותו?

איזה רכיב כבר יכול להתקלקל במעגל שבסך הכל מודד התנגדות? קבל אלקטרוליטי שהתייבש?

בכלל, צריך קבל בשביל למדוד התנגדות? איך עושים את זה?

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

[דינג!]

להמשיך לקרוא דיאלוג פנימי, או: איך פרויקט נולד

שפת C למתחילים: להיכנס ללולאה

שפת C מציעה לנו שלושה סוגי לולאות "רשמיים" – דרכים לחזור על קטע קוד מסוים שוב ושוב. כל סוג לולאה פועל בצורה שונה מעט, ואנחנו בוחרים את הסוג הרצוי לנו לפי דרישות התוכנה. בפוסט זה אציג את סוגי הלולאות של C, כולל דוגמאות בסיסיות לשימוש.

להמשיך לקרוא שפת C למתחילים: להיכנס ללולאה

עכשיו אפשר להגיב

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

אז ראשית, אני מתנצל בפני כל מי שרצה להגיב ולא הצליח. שנית, אם אתם נתקלים בבעיה כזו או אחרת בבלוג, אנא דווחו לי במייל programming שטרודל idogendel.com. אני כמנהל הבלוג לא תמיד רואה מה שהקורא מבחוץ רואה.

בעתיד הקרוב בבלוג: המשך סדרת שפת C למתחילים, וקצת פרטים – בשאיפה שיהיו! – על פרויקט "העולם האמיתי" הראשון שלי. להתראות!

צעצוע: רמזור וניידת משטרה עם ATTiny85

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

מכיוון שמבחינה טכנולוגית אין פה שום דבר שטרם ראינו, אסתפק בתיאור קצר של הרכיבים – מיד אחרי סרטון ההדגמה.

להמשיך לקרוא צעצוע: רמזור וניידת משטרה עם ATTiny85

PROMICOGA: פרוטוקול למשחקי ארדואינו

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

וככה, במקום להשלים פוסטים ישנים ולא-גמורים שכבר החלו להעלות עובש, התחלתי לגלגל בראש רעיון חדש ומגניב (לטעמי) – ואפילו הצלחתי למצוא לו, במאמץ רב, שם שלא מופיע בגוגל: Promicoga, קיצור של Protocol for Micro Controller Gaming (פרוטוקול למשחקים במיקרו-בקרים). אז מה זה פרומיקוגה, מה זה נותן ואיך עובדים עם זה בפועל?

להמשיך לקרוא PROMICOGA: פרוטוקול למשחקי ארדואינו

פרויקט: טיימר דקות בייצוג בינארי

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

להמשיך לקרוא פרויקט: טיימר דקות בייצוג בינארי

פרויקט אורח: ממיר בינארי להקסדצימלי

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

הפרויקט שמתארח היום בבלוג, חוץ מזה שהוא יופי של תרגיל למתחילים, יכול לעזור ללומדי התכנות לחשוב בבינארי ובהקסדצימלי. הוא כולל ארבעה לחצנים, שמייצגים ארבעה ביטים במספר בינארי, ולידם תצוגת 7-Segment של ספרה יחידה, אשר מציגה את המספר הנ"ל בבסיס הקסדצימלי. כמה זה המספר הבינארי 1011 בהקסדצימלי? איך מייצגים בבינארי את המספר ההקסדצימלי 7? עם הממיר הבינארי-להקסדצימלי, גם אתם תוכלו לדעת!

Bin to Hex Converter
הממיר בפעולה, כל הלחצנים לחוצים

להמשיך לקרוא פרויקט אורח: ממיר בינארי להקסדצימלי

Delphi + Arduino = Pong

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

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

להמשיך לקרוא Delphi + Arduino = Pong

ארדואינו, מחשב, נעים להכיר

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

חברים בקהילת המפתחים המקומית כבר הצליחו ליצור את החיבור הנחשק באמצעות שפת התכנות פייתון, אך אני רציתי לעבוד דווקא עם Object Pascal (בסביבת הפיתוח Delphi) שאני מכיר ואוהב. ידעתי שבסופו של דבר, שפת התכנות הספציפית חסרת חשיבות – מה שחשוב באמת זה למצוא את הדרך שלה לתקשר עם יציאה טורית (Serial Port), כי זה בעצם מה שכבל ה-USB של הארדואינו נותן.

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

להמשיך לקרוא ארדואינו, מחשב, נעים להכיר

מי צריך ארדואינו?

כזכור, הצלחתי בעבר לצרוב Bootloader ("תוכנת ניהול") של ארדואינו על מיקרו-בקר ATMega328-PU שנרכש בנפרד, ואחר כך הצלחתי לשים אותו על מטריצה ולגרום לו להבהב בנורית LED.  השלב הבא היה ליצור עבור המיקרו-בקר לוח עצמאי, כזה שיוכל לתקשר עם המחשב ולעשות כל מה שארדואינו אמיתי עושה, ולא על מטריצה זמנית אלא על משהו יציב יותר.

Board Design
השרטוט. תיכף נדבר עליו.

להמשיך לקרוא מי צריך ארדואינו?

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