שפת C למתחילים: בלוקים של קוד

בואו נסתכל על התוכנית הכי פשוטה ובסיסית שאפשר להעלות ללוח ארדואינו מסביבת הפיתוח שלו:

void setup() {
}

void loop() {
}

מה שיש לנו כאן זה בעצם הגדרה של שתי פונקציות, אחת בשם setup ואחת בשם loop.  בהמשך, כשאדבר על פונקציות, אסביר את המשמעות של המילה void ואת הסוגריים הרגילים. בינתיים, נתמקד בסוגריים המסולסלים – } ו-{. בשפת C, סוגריים מסולסלים יוצרים "בלוק" של קוד, מבנה שמכיל פקודות. כמו שאפשר לראות בתוכנית למעלה, המבנה הזה יכול להיות ריק לגמרי. כמו כן, בלוק קוד יכול להכיל בלוקים אחרים, מה שאומר שהתוכנית הבאה לגיטימית לגמרי – אפילו שהיא מטופשת לחלוטין…

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

הארדואינו-על-מטריצה הראשון שלי

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

ATMega328 על מטריצה, מהבהב בנורית LED
ATMega328 על מטריצה, מהבהב בנורית LED ירוקה

להמשיך לקרוא הארדואינו-על-מטריצה הראשון שלי

פרויקט: לסלי לעניים

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

צלחות הקלקר המקוריות + מנוע חשמלי קטן
צלחות הקלקר המקוריות + מנוע חשמלי קטן

להמשיך לקרוא פרויקט: לסלי לעניים

שפת C למתחילים: מבוא והערות

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

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

להמשיך לקרוא שפת C למתחילים: מבוא והערות

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

איך גורמים לארדואינו (או לכל מיקרו-בקר, לצורך העניין) לבצע יותר מפעולה אחת בו-זמנית? למשל, איך עושים שהארדואינו גם יהבהב בנורית LED בקצב קבוע, גם יקרא נתונים בזמן אמת מחיישן מרחק וגם יגיב להם בשינוי צליל ברמקול בלי שהפעולות יפריעו זו לזו?

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

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

ארדואינו: צריבת Bootloader למיקרו-בקר חלופי

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

Arduino and ATMega328-PUs
הארדואינו ושני מיקרו-בקרים חלופיים – לחצו להגדלה

היום הגיעו אליי שני הג'וקים שמימין בתמונה – מסוג ATMega328-PU בתצורת DIP (זו עם הרגליים הארוכות שאפשר לדחוף לתוך מטריצה). אלו הם מיקרו-בקרים מאותה משפחה שמשמשת בארדואינו Uno ו-Duemilanove, ובעיקרון אפשר להחליף בעזרתם את הג'וק שהגיע עם הארדואינו. אבל כדי לגרום לזה לעבוד, צריך היה לבצע עוד שלב בדרך: צריבה של Bootloader. מה זה Bootloader ואיך צורבים אותו?

להמשיך לקרוא ארדואינו: צריבת Bootloader למיקרו-בקר חלופי

ארדואינו למתחילים: Debouncing

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

Debouncing - להתמודד עם דברים שקופצים
Debouncing – להתמודד עם דברים שקופצים

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

פרויקט אורח: Boozo the Smile

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

להמשיך לקרוא פרויקט אורח: Boozo the Smile

תרגישו בבייט – הפרויקטים שלכם בבייט הלבן

[עדכון, אפריל 2013: הרשומה הבאה כבר לא רלוונטית, מכיוון שהמקום הנכון להצגת הפרויקטים שלכם הוא פורום הפרויקטים באתר makers.co.il. להתראות שם!]

בלוג "הבייט הלבן" פותח את שעריו לפרויקטי הארדואינו/מיקרו-בקרים שלכם! השלמתם את הפרויקט העצמאי הראשון שלכם? פיתחתם מעגל שעושה משהו מקורי באמת? המצאתם פתרון מדהים לבעיה נפוצה? הבמה שלכם!

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

להמשיך לקרוא תרגישו בבייט – הפרויקטים שלכם בבייט הלבן

ארדואינו: תחביב יקר?

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

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

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

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