פרויקט צ'קלקה

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

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

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

תעלומת ה-Pro Mini הדפוק

בעבר אמרתי שלוחות תואמי ארדואינו הם טובים פחות או יותר כמו המקוריים. לאחרונה, ההמלצה הזו מתבררת כיותר ויותר בעייתית. זה התחיל עם חיקויי הנאנו מ-buyincoins.com שמייצב המתח שלהם נשרף לכמה חבר'ה, המשיך עם הארדואינו Uno הזול-עד-כדי-חשד שכלל, כך הסתבר, מיקרו-בקר מדגם ATmega8 במקום ATmega328, ועכשיו יש לנו "תכשיט" חדש – לוח Pro Mini זול מאד שאצל חלק מהאנשים פשוט לא עובד. את הדגם הזה קל לזהות (ראו בתמונה), וכשראיתי לוח חשוד באיביי ב-2.5 דולר בלבד החלטתי להסתכן ולקנות אותו. אם הוא יעבוד, הרווחתי; אם לא, יהיה לי אתגר לנסות להבין מה לא בסדר – וגם סביר להניח שאקבל החזר. הוא לא עבד… אז הנה לכם פתרון התעלומה.

הלוח הבעייתי. קל לזהות לפי שתי שורות החורים משמאל.
הלוח הבעייתי. קל לזהות לפי שתי שורות החורים משמאל.

להמשיך לקרוא תעלומת ה-Pro Mini הדפוק

הרע, הרע והמכוער: הקצאה דינמית במיקרו-בקרים

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

להמשיך לקרוא הרע, הרע והמכוער: הקצאה דינמית במיקרו-בקרים

סיפורי אופטימיזציה: תמונות ממוזערות

פרויקט ארדואינו שעבדתי עליו לאחרונה כלל מסך מגע קטן, וכדי שהממשק יהיה אטרקטיבי החלטתי לשלב בו לחצנים עם עיצוב גרפי. גודל של לחצן נוח לתפעול, עבור המקרה הספציפי הזה, הוא בסביבות 36×36 פיקסלים; המסך עובד בסכמת צביעה שמצריכה 2 בייטים לפיקסל, ובסך הכל צריך כעשרה לחצנים, כלומר כ-26KB. איפה ואיך מאחסנים את המידע הזה באופן שיהיה גם נוח, גם מהיר לגישה וגם חסכוני ככל האפשר?

קוד עם המון נתונים ב-Arduino IDE
קוד עם המון נתונים ב-Arduino IDE

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

איך לשאול שאלות

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

>9: קלט מספרי מהסריאל מוניטור

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

להמשיך לקרוא >9: קלט מספרי מהסריאל מוניטור

הלו טייני #5: לאלף את הכלב

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

להמשיך לקרוא הלו טייני #5: לאלף את הכלב

הלו טייני #4: המרת ADC בסיסית

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

להמשיך לקרוא הלו טייני #4: המרת ADC בסיסית

לזרוס 1.2, או: היה באג?

בשקט בשקט יצאה לאוויר העולם גרסה 1.2 הרשמית של FPC/Lazarus, סביבת הפיתוח בקוד פתוח לשפת Object Pascal. נכון להיום, זו האופציה המודרנית היחידה עבור מי שרוצה לתכנת בשפה זו, ולא מוכן למכור כליה בשביל לקנות גרסה מלאה של Delphi. יש בגרסה הזו גם באג קטן ומעצבן מאד, אבל…

להמשיך לקרוא לזרוס 1.2, או: היה באג?

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