מצב הדגמה הנדסי

גררו את מקור האור. הלולאה מריצה את חוק ההחלטה של הקושחה. מתחת — קונסולת תקלות: הורגים חיישן, מנתקים WiFi, או שולחים זווית מעל הגבול, ורואים מה הקושחה עושה במקום להתרסק.

חדר וירטואלי

חדר עם מסך, שני חיישנים ומקור אור ניתן לגרירה חלון TV
חיישן עליון (0x23) חיישן תחתון (0x5C) צל נאיבי (כשל → מקסימום)

גררו את השמש, הזיזו בסליידרים, בחרו תרחיש תאורה מוכן, או מקמו אותה במקלדת (חצים). כשל BH1750 מדמה קריאה שלילית — החוק הבטוח מחזיק זווית; הנאיבי מתייחס לחושך ומטה למקסימום.

לולאת קושחה

—lux עליון
—lux תחתון
—יחס בוהק
—החלטה
—currentAngle (מהסטופר)
—target / צעדים

auto ON WiFi UP I²C OK

קבועים מ־config/control-params.json · lux<0 → return currentAngle · stepper.moveTo מוחלט · WiFi timeout 10s — אוטו מקומי ממשיך
אין הודעות ביומן

קונסולת הזרקת תקלות

ארבע הזרקות: כשל חיישן, ניתוק WiFi, פקודה מעל הגבול, ואתחול שמשקר אפס. כל כפתור עובר דרך אותם כללים כמו ב־.ino (או דרך חוזה ה־HTTP כשזה פקודה מרחוק).

1. הרוג חיישן

BH1750 מחזיר ערך שלילי. חוק נאיבי רואה «חושך» ומכה למקסימום. החוק האמיתי מחזיק.

2. נתק WiFi

אחרי timeout הקושחה מדפיסה שורה אחת וממשיכה אוטו מקומי. HTTP מרחוק הופך לבלתי-הגעה — המנוע לא «נתקע».

3. פקודה מעל הגבול ועצירת חירום

POST /set-angle?deg=99 מחזיר 200, מכבה אוטו, ו־moveToAngle מצמיד לגבול הפאנל. 200 ≠ 99°.

POST /stop מכבה אוטו ואז stepper.stop(): על הלוח AccelStepper מאט עד עצירה והיעד החדש נולד בסוף הרמפה. לסטפר המדומה כאן אין רמפה (4 צעדים לטיק), אז היעד נעצר בצעד הנוכחי. הסלילים נשארים מוזנים — זו לא נפילת מתח.

היעד שמוצג הוא הצעד המעוגל (targetPosition() / STEPS_PER_DEGREE), כמו בלוח: 12.3° הם 34 צעדים = 12.24°, ובהגעה angle == target. החלפת פאנל באמצע מהלך מצמידה את היעד לגבול החדש, לא את הזווית המפגרת, והדד-בנד של האוטו נמדד מול היעד — דגימה בתוכו לא משכתבת אותו.

4. אתחול באמצע מהלך

setCurrentPosition(0) משקר. הקושחה מאמינה 0°; הזרוע נשארת במקום. moveTo(15) דוחף 15° נוספים. פירוט: מכונת מצבים.

Serial 115200 — מה שהקושחה באמת מדפיסה

IP: 192.168.4.1

HTTP אחרון (סימולציית WebServer)

אין בקשה עדיין