מכונת מצבים — מה שיש מול מה שחסר
הקושחה היא bool autoMode ועוד «האם ל־AccelStepper נשאר מרחק».
setup() קורא setCurrentPosition(0) בלי מפסק קצה.
אין UNHOMED, אין FAULT, אין סטול, אין WDT ייעודי.
אותו אירוע נשלח לשתי המכונות — זו הנקודה.
המכונה ה«בטוחה» לא נכתבה ל־
.ino ולא נבדקה מול חומרה.
אי אפשר לעשות הומינג בתוכנה בלי מפסק. בלי תולעת / בלם, POWER_LOSS הוא נפילה — ראו
מומנט.
מה שה־.ino עושה
BOOT
0°believed (הקושחה)
0°מכני (הזרוע)
0°יעד
—דגלים
—
מוצע — לא בקושחה
BOOT
0°believed
0°מכני
0°יעד
—דגלים
—
אותו אירוע — שתי תשובות
אתחול
דגימה ופקודות
תנועה והומינג
כשלים
הקוד: src/lib/fsm.js + src/lib/fsm-table.js.
כל תא בטבלה הוא step() אמיתי על דייר קנוני של המצב.
11 × 15 = 165 תאים במכונה המוצעת, 2 × 15 בקושחה — כולם נעולים ב־npm test.
טבלת מעברים מלאה — מה ש־walk() מחזיר
תא כחול משנה מצב. אדום נכנס ל־FAULT/DEAD. מסגרת צהובה היא reject. לחיצה על תא בשורה של המצב הנוכחי שולחת את האירוע לשתי המכונות.
—