בקר FOC למנוע BLDC בסטנדרט רפואי, עם תצוגת LCD ובקרת מיקום של סיב-אופטי
פיתחנו פלטפורמת בקרה Embedded ברמת דיוק גבוהה, המיועדת להנעת מנוע BLDC באמצעות בקרת שדה מכוונת (FOC), ובמקביל לשליטה מדויקת על מיקום חוט סיב-אופטי המשמש להולכת אור בטיפולים רפואיים. המערכת כוללת ממשק משתמש גרפי מלא עם מסך TFT מגע קיבולי, המאפשר תכנות תרחישי תנועה, שליטה וניטור בזמן אמת.
הארכיטקטורה מבוססת על שני מיקרו-בקרים ייעודיים מסוג STM32, המאפשרים בקרה דטרמיניסטית על המנוע, עיבוד משובים מהיר וניהול מערכת אמין עבור יישומים רפואיים קריטיים.
ארכיטקטורת מערכת
יחידת בקרה ראשית — STM32H743
- מריצה את ממשק המשתמש, לוגיקת המערכת, מנוע הסקריפטים, מנגנוני בטיחות, לוגים ותקשורת
- מפעילה את מסך ה-TFT 2.4 אינץ׳ עם מגע קיבולי (240×320)
- טוענת קבצים, אנימציות ולוגים מכרטיס SD ומזיכרון SPI חיצוני
- מנטרת מתחי מערכת (סוללה / מטען / Vin) ואת תקינות המערכת
- שולחת פקודות תנועה לבקר המנוע דרך UART
- מאפשרת הגדרת תסריטי תנועת מנוע דרך ממשק מגע
- מנהלת:
- חיווי RGB למצב מערכת
- קלט ממסך מגע, כפתורים וחיישנים חיצוניים
- רישום שגיאות לכרטיס SD
- תקשורת USB/UART מול מחשב/מארח
יחידת בקרת מנוע — STM32H750
- בקר ייעודי לבקרת מנוע בשיטת FOC
- מיישם לולאות בקרה סגורות עבור:
- מיקום (Position)
- מהירות (Speed)
- זרם / מומנט (Current / Torque)
- מתממשק אל:
- אנקודר מגנטי אבסולוטי (12-bit)
- חיישני Hall (פנימיים + חיצוניים)
- גלגל חיכוך עם אנקודרי IR למדידת תנועת החוט
- חיישני חציצה אופטיים (Light Interrupters) לאזורי בטיחות
- חיישני זרם Shunt מסוג INA240
- מבצע מסלולי תנועה (Trajectories) המתקבלים מה-MCU הראשי
- מדווח סטטוס, שגיאות ומשובי מערכת בזמן אמת

מנגנון ייחודי — מיקום חוט הסיב-אופטי
חוט סיב-אופטי רפואי מוזז מכנית באמצעות מנוע ה-BLDC. כדי למדוד את מיקום החוט בצורה מדויקת, המערכת משתמשת במספר חיישנים משולבים:
| חיישן | מטרה |
|---|---|
| IR1 / IR2 / IR3 | זיהוי תנועת החוט ותוקף התנועה (בטיחות Go/No-Go) |
| אנקודר IR על גלגל החיכוך | מעקב אחר היסט החוט בפועל וכיוון התנועה |
| חיישן הול אבסולוטי | נקודת ייחוס B — מבטיחה עצירה מוחלטת וחזרה לאותו מיקום |
| אנקודר פנימי של המנוע | נקודת ייחוס A — מיקום יחסי |
| לולאות FOC של ה-STM32 | שמירה על תנועה מדויקת, מומנט ומהירות |
זה מאפשר למערכת לאתר ולהחזיר את החוט לאותו מיקום בדיוק — גם לאחר כיבוי והדלקה של המכשיר.
החוט מפיק הבזקי אור (Strobed Light) לטיפול רפואי, מסונכרנים עם תסריט התנועה של המנוע.
יכולות מנוע ו-FOC
המערכת משלבת יכולות מתקדמות לבקרת מנוע:
- בקרת שדה מכוונת (FOC) למקסימום יעילות מומנט
- עבודה בארבעה רבעים (שליטה מלאה בכל כיוון ובבלימה רגנרטיבית)
- יציבות מומנט במהירויות נמוכות
- לולאות מהירות ומיקום עם PID
- טווח הזנת מנוע: 5.5V–24V
- זרם יציאה: 3A רציף / 5A בשיא
- אנקודר מגנטי אינטגרלי 12-bit למיקום אבסולוטי
- פרופילי תנועה מבוססי תסריט (Scripted Motion Profiles)
- שליטה דרך ספרייה ב-C++ / Python
דרייבר מנוע: L6234 — גשר תלת-פאזי
מדידת זרם: INA240 — מגבר מדויק דו-כיווני

מערך ההספק
ארכיטקטורה רב-שלבית ומוגנת, התומכת במצבים:
| מצב | התנהגות |
|---|---|
| מצב Vin primary | טוען את הסוללה, מזין את המערכת, מבטל טעינת סוללה |
| מצב Battery mode | המערכת פועלת מסוללת 18650 |
| מצב Sleep mode | כיבוי חלקי, התעוררות ממגע/כפתור |
רכיבי מערכת ההספק:
- הגנת עומסים: TPS25983 (2.7–26V, זרם עד 18A, מוגן בפני טרנזיאנטים)
- מטען סוללה: BQ25308 (טעינת תא יחיד, עד 3A)
- ממירי מתח Buck 5V, Boost 12V ומספר רגולטורים LDO
- הגנות: זרם יתר, מתח יתר/חסר, ניטור עומס
- הפרדת אדמה (GND) למניעת רעשים וסינון EMI לשמירה על תקינות האותות
ממשקים
| ממשק | פונקציה |
|---|---|
| TFT LCD + מסך מגע קיבולי | ממשק משתמש להגדרת תסריטי תנועה |
| כרטיס SD | לוגים, תמונות, קבצי קונפיגורציה ותוכניות תנועה |
| זיכרון SPI חיצוני | אחסון אתחול לתקלות (Failsafe Boot) |
| UART למארח (Host) | דיאגנוסטיקה ושליטה |
| מחברי חיישנים JST/Pico מרובים | מיקום החוט, בטיחות, אנקודרים |
| כפתור הפעלה (Trigger) | התחלת תנועה |
| מחבר מנוע | BLDC + Hall + אנקודר |
דיאגרמת בלוקים של בקר ה-FOC:
וזו הדיאגרמה המלאה של בקרי ה-PID:
תמונות של המערכת המורכבת:


איך חישבנו את מרכיבי ה-FOC מהאלגוריתם:
מפיק רפרנס מומנט או זרם.
טרנספורמציית קלארק (Clarke):
טרנספורמציית פארק (Park):
הגברי PI של לולאת הזרם:
פארק הפוך (Inverse Park):
קלארק הפוך למתחי הנעה (SVPWM):
| שלב | מטרת המשוואה |
|---|---|
| Encoder (אנקודר) | חישוב θₑ ו-ω (זווית ומהירות) |
| Position PID (בקרת מיקום) | המרת שגיאת מיקום ← רפרנס מהירות |
| Speed PI (בקרת מהירות) | המרת שגיאת מהירות ← רפרנס מומנט/זרם |
| Clarke (קלארק) | המרת זרמי שלושת הפאזות ← iα, iβ |
| Park (פארק) | המרה ל-id, iq באמצעות θₑ |
| PI Current loops (לולאות זרם) | יצירת vd, vq לתיקון שגיאה |
| Inverse Park (פארק הפוך) | המרה חזרה ל-vα, vβ |
| SVPWM / Inverse Clarke | יצירת אותות PWM תלת-פאזיים |