דמו חי — סימולציה בדפדפן, בלי חומרה מחוברת.
SmartMount היא הדגמת קונספט חומרה לפריט תיק עבודות: קושחת ESP32 + דפים סטטיים בעברית (RTL). הרעיון — שני חיישני BH1750 מודדים יחס אור, ומנוע צעד מטה את המסך כשיש בוהק.
זה לא מוצר, לא תושבת שנבדקה על הקיר, ולא שירות. הקושחה ב־firmware/smart_mount.ino נכתבה ללוח אמיתי אך טרם רצה מול חומרה. אלגוריתם הבוהק לא כויל מול מדידה. אין ענן, אין חשבונות ואין סליקה.
| עמוד | מה יש בו |
|---|---|
| בית | 30 שניות: מה זה, PARK, מה לא נבדק |
| מקרה הנדסי | תיק למגייסים: באגי בטיחות, FSM, פשרות. הקושחה לא רצה על לוח |
| מעבדה הנדסית | חדר וירטואלי + קונסולת תקלות (חיישן / WiFi / גבול פאנל) על חוק smart_mount.ino |
| מפרט בנייה | BOM כנה, מחשבון מומנט מול NEMA17, חיווט SVG |
| גאומטריית בוהק | חוק ההחזרה + למה יחס lux אינו בהירות לצופה |
| חוזה API | ארבעה נתיבי HTTP + Serial 115200 — בדיוק מה שבקושחה |
| מכונת מצבים | מה שה־.ino עושה (auto + moveTo) מול FSM בטוח מוצע — 30 + 165 תאים מ־step() |
| תזמון והספק | פרופיל AccelStepper, גנט של loop(), הבזק שמש שמתפספס בין דגימות |
| תקציב הספק | זרם idle / תנועה / WiFi וחישוב סוללה — דפי נתונים, לא מד-זרם |
| תוכנית HIL | שנים-עשר מקרים על השולחן. אפס רצו. HIL-10 אוסר טלוויזיה |
| חלופות | צעד מול סרבו מול מפעיל קווי; יחס lux מול מוחלט; למה המסגרת |
| לוח בקרה | סליידרי lux על control.js — בלי Cloud ובלי חשבון |
קוד: Swissystem7/SmartMount.
בדיקות יחידה רצות על המחשב בלי תלויות (node --test): חוק ההטיה, חוזה ה־HTTP, מומנט המנוע, הפער בין lux לבהירות, כל תא במכונת המצבים (2×15 + 11×15), תקציב תזמון/הספק/סוללה, תוכנית HIL שמוגדרת כ־never-run, וחלופות שנדחו. פירוט מה נבדק ומה אי אפשר לבדוק בלי לוח: docs/TESTING.md. תוכנית השולחן: docs/HIL.md.
בקושחה ובדשבורד תוקנו באגים שהיו מסוכנים או מטעים:
- קריאת חיישן כושלת (BH1750 מחזיר ערך שלילי) מחזיקה זווית — לא מטה למקסימום.
- מנוע:
stepper.moveToממיקום מוחלט;currentAngleלא מתעדכן לפני שהמנוע מגיע. - API:
set-angle/set-modeדוחים ארגומנט חסר/לא תקין; סוג פאנל 0..2.type=fooעדיין הופך ל־OLED (toInt). - WiFi: timeout — המצב האוטומטי המקומי ממשיך גם בלי רשת.
- דשבורד: סימולציית חוק בקרה בלבד (
control.js). אין Cloud, אין התחברות, אין לוח זמנים — אלה לא קיימים בקושחה. - גבולות צפייה: OLED 40° (הרחב ביותר), QLED 30°, LED/VA 20°.
מה לא עובד: אין ESP32 מחובר לדמו, אין מדידת בוהק אמיתית, ואין הרכבה מכנית שנשאה מסך. הומינג, מפעיל נעילה עצמית וגאומטריית הכתם — פתוחים (ראו מפרט). מכונת המצבים ה«בטוחה», מספרי התזמון/הספק/הסוללה ותוכנית ה-HIL הם מודלים ומסמכים על המחשב, לא קושחה שרצה ולא מדידת מעבדה.
פסק דין שוק: PARK — לא לבנות חומרה מסחרית סביב הסיפור הזה. הפירוט: RESEARCH.md.
פסק דין הכנסה: אין נתיב הכנסה. לא רישוי, לא ערכת מייקרים, לא ספונסרשיפ. זה פריט תיק עבודות. הפירוט עם מחירים וקישורים: MONETIZATION.md. הדף למגייסים: מקרה הנדסי.
- אף תושבת ממונעת מסחרית לא עושה הטיה אוטומטית לפי חיישן אור. Vogel's MotionMount TVM 7675 מסתובב בהדלקה ובמדריך כתוב במפורש שאין הטיה. הקרוב ביותר היה Sanus LMT15 (2009) והוא הופסק.
- השוק פתר בוהק בציפוי הפאנל, לא בזרוע. Samsung Glare Free OLED ודירוגי RTINGS לחדר בהיר.
- מה היה פותח את זה מחדש: ראיון עם 10 בעלי MantelMount או MotionMount — «האם היית משלם עוד $150–$300 על הטיה אוטומטית לפי חיישן אור?» אם פחות משניים אומרים כן בלי היסוס — לגנוז סופית.
מקור האמת: config/control-params.json. אחרי עריכה:
node scripts/sync-control-params.js
הסקריפט ממלא בלוק מסומן ב־firmware/smart_mount.ino ומייצר את src/lib/control-params.js. הדשבורד והמעבדה טוענים את אותו קובץ JS (בלי bundler). הבדיקות נכשלות אם ה־JSON והקוד שנוצר מתפצלים.
- הדמו מציג נתוני סימולציה. הבאנר בדשבורד אומר את זה במפורש.
- BOM של ₪35–50 שהופיע בהאקתון הוא ESP32 + חיישן + מנוע בסיסי — בלי פלדה, בלמים, UL/TÜV או אחריות לנפילת מסך. הטווח הכנה במפרט: אלקטרוניקה ≈₪110–220; תושבת שנשאת מסך הרבה יותר.
- אין מנוי, אין אחריות יצרן, אין סליקה. מסמך ההאקתון שדיבר על Cloud ₪9.90 הועבר ל־docs/archive/.