ארכיון הקטגוריה: תוכנה

הלו אסתי #3: צלילי המוזיקה

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


להמשיך לקרוא הלו אסתי #3: צלילי המוזיקה

סיפורי אופטימיזציה: אקראיות זולה

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

צילום מסך מתוך Yar's Revenge, באמולטור Atari 2600 ל-PC
צילום מסך מתוך Yar's Revenge, באמולטור Atari 2600 ל-PC

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

הלו אסתי #1: בלינק Reloaded

בפוסט האחרון בסדרה התבלבלתי בכותרת, ונתתי לו את המספר 2 אף על פי שהקודם היה 0. כדי לתקן את השיבוש וגם כדי לעשות קצת סדר בעניינים, הנה פוסט מס' 1 – בו אציג בצורה מסודרת סביבת פיתוח חלופית למיקרו-בקרים ממשפחת STM8, ואת תהליך העבודה המפורט ליצירת פרויקט Blink. אם אתם רוצים להתנסות עם המיקרו-בקרים האלה, זה בהחלט המקום להתחיל!

להמשיך לקרוא הלו אסתי #1: בלינק Reloaded

הלו אסתי #2: הבלינק הקשה מכולם

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

בלינק עם STM8S
בלינק עם STM8S

להמשיך לקרוא הלו אסתי #2: הבלינק הקשה מכולם

המירוץ נגד הקרניים: ללמוד מזקני השבט

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

Debounce, לא מה שחשבתם

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

להמשיך לקרוא Debounce, לא מה שחשבתם

PIC בהפתעה #3: איזה מתח

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


להמשיך לקרוא PIC בהפתעה #3: איזה מתח

שידור Serial מ-ATtiny85 (ובכלל)

האובייקט Serial בארדואינו הוא כלי שימושי במיוחד לתקשורת ולדיבוג בסיסי, מכיוון שאפשר לשדר דרכו מידע ממוקד ומפורט, בפורמט נוח שאפשר גם לשמור, לעבד ולתעד במחשב. כשעוברים מארדואינו למיקרו-בקרים קטנים שאין להם חומרה מתאימה, חסרונו של ה-Serial מורגש היטב, אבל אם היישום שלנו מאפשר להקצות לעניין טיימר אחד ופין I/O אחד, אנחנו יכולים לכתוב בעצמנו פונקציות שישלחו מידע באותה שיטה בדיוק!

להמשיך לקרוא שידור Serial מ-ATtiny85 (ובכלל)

מהי שפת התכנות של ארדואינו?

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

להמשיך לקרוא מהי שפת התכנות של ארדואינו?

שפת C למתחילים: ביטים, חלק ב'

אם זה יהיה במקום קרוב ויביאו פיצות, אגיע למפגש של קהילת הארדואינו הישראלית.

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

טבלת אמת לשני תנאים שחייבים להתקיים
ושיהיו מפיצריה נורמלית, לא מפיצה-סלמונלה-הכל-בשקל

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