ה-Serial Monitor של סביבת הפיתוח של הארדואינו נועד לתת למפתחים כלי נוח ופשוט לתקשורת דו-סטרית עם המיקרו-בקר. כל עוד מדובר בפלט שמגיע מלוח הארדואינו, באמצעות פקודות כמו Serial.println, המוניטור ממלא את תפקידו היטב. הבעיות מתחילות כשהמשתמש מנסה לשלוח לארדואינו מידע מורכב שכולל שני תווים ומעלה. הדוגמה הקלאסית לכך היא מספר שיש בו יותר מספרה אחת, והנושא עולה לעתים מספיק קרובות כדי שאקדיש לו פוסט אז איך עושים את זה?
ארכיון הקטגוריה: כללי
לזרוס 1.2, או: היה באג?
בשקט בשקט יצאה לאוויר העולם גרסה 1.2 הרשמית של FPC/Lazarus, סביבת הפיתוח בקוד פתוח לשפת Object Pascal. נכון להיום, זו האופציה המודרנית היחידה עבור מי שרוצה לתכנת בשפה זו, ולא מוכן למכור כליה בשביל לקנות גרסה מלאה של Delphi. יש בגרסה הזו גם באג קטן ומעצבן מאד, אבל…
לוגי'ק לקמצנים – תכונות מתקדמות
בפוסט הקודם ראינו איך להגדיר טריגר עבור הלוג'יק, לבצע דגימה של אותות לוגיים מלוח ארדואינו, ולראות את התוצאות הגולמיות בתוכנה של Saleae. הפעם נראה איך מוציאים מהמדידה מידע מדויק יותר על זמנים ותדרים, וכיצד מפענחים נתונים שנשלחים בפרוטוקול תקשורת.
נתחיל במקום בו הפסקנו בפעם שעברה, עם המדידה של אות ה-PWM. זוכרים?
לוג'יק אנלייזר לקמצנים – מבוא
מנתח לוגי ("Logic Analyzer") ראוי לשמו הוא מכשיר גדול, מורכב ויקר מאד – בערך בסדר גודל של אוצילוסקופ. עם זאת, בניגוד לסקופ, הלוג'יק מתעד רק רמות מתח דיגיטליות ("0" ו-"1" לוגיים, מכאן השם), ולכן מתאים ונוח במיוחד לעבודה עם מיקרו-בקרים, מעבדים למיניהם ומערכות דיגיטליות אחרות.
יש בשוק מספר התקנים בסיסיים יותר, שעושים את אותו הדבר אך עם יכולות מוגבלות פי כמה ובחיבור למחשב, כלומר ללא מסך או ממשק משל עצמם. בין המוכרים שבהם נמצאים Logic הקומפקטי של חברת Saleae, שמחירו $149 בלבד, ואחיו הגדול והמשוכלל Logic16 שעולה, נכון לעכשיו, פי שניים. התקנים כאלה הם מושלמים לחובבים שעובדים עם מיקרו-בקרים איטיים יחסית, כמו בארדואינו או ב-MSP430 Launchpad. לרוע המזל, המחיר עדיין קצת גבוה עבור החובב המתחיל הטיפוסי, ולנישה הזו נכנסו – כרגיל – חיקויים סיניים זולים.
מתכנתים ברמה נמוכה
סיפורנו מתחיל במתכנת אמריקני מסוים, בואו נקרא לו נ', שאני מכיר (לא אישית) דרך הרשת. נ' הוא מקצוען כבד בשפת Object Pascal וגם, עד כמה שאני יכול לשפוט, בעל הבנה מעמיקה בכל מה שקשור להנדסת תוכנה, ניהול פרוייקטי תכנות וכל הדברים הגדולים והחשובים האלה. מדי פעם, לקול מצהלות העוקבים אחריו ברשתות החברתיות, נ' מציג פיסות קוד תמוהות ועקומות שהוא מוצא במסגרת עבודתו.
חיישני רוורס תוצרת בית
בפוסט זה אציג את הטכניקות בהן השתמשתי ליצירת חיישן התראה אחורי למשאית צעצוע. מערכת זו מבוססת על חיישן אולטרה-סוני פשוט מדגם HC-SR04 ומיקרו-בקר ATtiny85, וכמו המערכות האמתיות לרכב, היא מציגה התראה ויזואלית על גבי שורה של נוריות LED צבעוניות. ראשית, הנה וידאו של המערכת בפעולה:
תרגיל בג'וקים: דיבאונס עם מונה עשרוני
לפני זמן-מה הצגתי כאן את הג'וק CD4017BE, הידוע בכינויו "מונה עשרוני" ("Decade Counter"), וציינתי שבימינו די קשה למצוא לו שימושים מעשיים. בתגובות לפוסט הנ"ל הוצעו אפשרויות ספורות, ומשני ג'וקים כאלה יצרתי גם קישוט אורות לסוכה, אך רוב הג'וקים שקניתי במבצע באיביי עדיין נותרו ללא שימוש. ובכן, מסתבר שיש עוד משהו שאפשר לעשות איתם – לפחות כתרגיל מחשבתי…
עיצוב חדש לאתר
ברוח ההתחדשות הכללית של כל מיני אתרים, וכדי שהמערכת תפסיק להציק לי עם השדרוג של ערכת הנושא הקודמת, החלטתי לעבור לעיצוב חדש, מודרני ותקני יותר. ניסוי ראשוני הראה שערכת הנושא הזו מסתדרת לא רע עם העברית, ואפילו יש סיכוי שהיא תתאים קצת לתצוגה בסמארטפונים, טאבלטים ושאר צעצועים.
אם יש לכם משהו לומר בעד או נגד העיצוב החדש, אם נתקלתם בתקלות ובאגים מכל סוג שהוא, אנא דווחו בתגובות ונראה אם ומה אפשר לעשות בנדון 🙂
למה 32 ביט יותר טוב מ-8 ביט?
המיקרו-בקר של הארדואינו Uno הוא של 8 ביטים. זה של ה-MSP430 Launchpad עובד עם 16 ביטים, וללוחות מתקדמים כמו Arduino Due, Tiva-C Launchpad ואפילו Rapsberry Pi יש מיקרו-בקרים/מעבדים של 32 ביט. מה זה בעצם אומר? מה נותן המספר הזה? למה אין מיקרו-בקר של, נניח, 19 ביטים, ואיזה כדאי לבחור בשביל הפרויקט הבא שלכם?
סיפורי אופטימיזציה: קוד קל-משקל
כשאומרים "אופטימיזציה של קוד", הכוונה בדרך כלל לשינויים שיגרמו לו לרוץ מהר יותר, אבל לפעמים המטרה היא דווקא לעשותו חסכוני יותר בזיכרון – ופה ושם משיגים את שתי המטרות גם יחד. זהו המקרה של מפענח קוד המורס שבניתי. אז קודם כל, הנה המערכת בפעולה: