יש לך פתרון וזה מעולה.
Sent from my LG-H930 using Tapatalk
Printable View
יש לך פתרון וזה מעולה.
Sent from my LG-H930 using Tapatalk
אהלן חנן,
אני מתעסק עם הבעיות הללו הרבה מאוד בעבודה.
יש כמה טכניקות ליעול ושיפור כתיבת תוכנה real time.
1. לעולם לא להשתמש בפורט הסיריאלי שלא לצורך. הוא דורש הרבה מאוד משאבים מהמעבד.
2. לדבאג השתמש ב GPIO ובסקופ או יותר טוב לוגיק. נידנוד של I/O דורש מעט מאוד משאבים והוא מהיר מאוד
אני משתמש בשיטות הללו בקוד שצריך לשמור על דיוק של מיקרו שניות.
3. אף פעם לא להשתמש בספריה שאתה לא יודע בדיוק איזה משאבים היא לוקחת ואיך היא עובדת. אם יש עיקוב תמיד זה מגיע משם.
4. אם אתה יכול השתמש ב C ובקומפילר היעודי של המעבד ולא בסביבת העבודה של ארדואינו. היא אולי נוחה אבל מאוד בזבזנית.
הרבה יותר טוב להשתמש באסמבלר, אבל אני מניח שזה כבר מוגזם לדור של היום
5. השתמש ב timers ובפסיקות תוכנה או חומרה. אל תריץ לולאות שלא לצורך, זה דרך בטוחה לבזבז משאבים.
6. תמיד השתמש בפקודת yield אם אפשר. היא מפנה משאבים לפסיקות וטימרים.
בגדול ארדאוינו לא בנוי לתוכנת real time רצינית. בסופו של דבר כל הסביבה הזו מאוד חובבנית. לכן אם אתה רוצה לעמוד בדרישות שלך, ועדין להשתמש בארדאוינו כדאי פשוט לקחת ארדואינו עם יותר משאבים ויותר מהיר. כך למרות הביזבוז של סביבת ארדואינו תוכל בקלות יחסית לעמוד ביעדים.
לי יש ניסיון טוב עם ארדואינו DUE הוא הרבה יותר מהיר ועם הרבה יותר זכרון.
מוטי, רק התחלנו לדון...מה חתכת כל כך מהר? (:
אני אשמח אם תכתוב כאן מה זה בקר? מה התפקיד שלו? באילו פרוטוקולים הוא עובד? מהם אמצעי התכנות שלו? עלויות אופייניות וכו'. וכן, גם איזו חברה אתה מייצג? זה בסדר גמור.
אם תוכל להעלות דוגמא של בקר שעושה את המשימה המדובר זה בכלל יהיה מעולה. עם דוגמאות והסברים לתוכנה, לתכנות, לחיבורים החיצוניים וכו'.
מוני, תודה על הטיפים. הם בדיוק הדוגמא לכך שהמגבלה שהגעתי אליה, שהיא קודם כל המגבלה שלי, היא מצוינת, כי היא מחייבת אותי להעמיק ולהבין את הבעיות בתוכנה שלי ולהשתפר. אם הייתי מתחיל ממעבד מהיר יותר, לא הייתי לומד את כל הדברים האלה, וזה בעצם מה שקרה עד היום. שכל תוכנות הארדואינו שלי לא נזקקו ליכולות מהירות, ולכן לא השקעתי שום אמצעים בתחום הזה, והתוכנה המקורית שלי היתה פשוט זוועתית, בהיבט הזה.
למשל, מה ששיפרתי אתמול בלילה היה שחישוב המעלות מתוך זמן המחזור הכולל נעשה בכל LOOP, שזה אידיוטי לגמרי. ברגע שהעברתי את החישוב רק לרגע שבו זמן המחזור נקבע בכל סיום מחזור עליתי פי 5 בסל"ד המקסימלי שהארדואינו חי איתו בשלום.
לא ברחתי, רק שמתי את הילדים בגן ונכנסתי לאוטו לחצות את המדינה.....
וחשבתי קודם לחפש קצת השוואות באינטרנט לפני שאני שופך פה מידע יבש ולא מעניין.
ובכלל חשבתי לפתוח שרשור נפרד,
אשב על זה במהלך היום....
Sent from my LG-H930 using Tapatalk
איפה האתגר בבולט און? זה דווקא אופציה מעולה עם בסיס למוצר מדף שיכול להימכר... גיבוי כאשר חיישן גל ארכובה מתפגר ולא בא לך להחליף במדבר הלוהט ...
Sent from my Redmi 5 Plus using Tapatalk
תחשוב שניה מחוץ לקופסה .. מעבר לעובדה שג'יפ בונים ולא קונים ( אפילו אם זה דאסטר .... )
יש פה אנשים שממציאים את הגלגל מחדש .. אנשים שבונים דברים מאפס .. זה לא מלהיב אותך ?
עולם הארדואינו ( בשילוב עם תלתפסת ) הביאו למצב שכל אדם יכול בביתו להיות מפעל שלם שממציא ובונה משהו שלא היה קודם .. או בונה אחרת משהו שכבר יש אבל משיקולי עלות תועלת ורווח כספי .. מציג התפשרויות שאתה יכול כיחיד לוותר עליהם.
זה brave new world .. אסור לוותר על זה.
כשדרור פתח את השרשור הוא עוד לא ידע שאופציית הבולט-און היא לא אופציה...
מבנה גלגל התנופה של TJ שונה מזה של YJ (סופה) בהיבט יצירת דפוס סיגנל קרנק, ולכן אילו הייתי מרכיב אותו ומסתמך על החיישן המקורי שיושב על הגיר הזה, מחשב ניהול המנוע לא היה מבין מה רוצים ממנו...
בדיעבד הסתבר שגם שטח החיכוך של דיסקת המצמד ב-TJ קטן משמעותית מזה שב-YJ, כך שגם בהיבט הזה עדיפות לחזור לגלגל תנופה המקורי.
חוצמזה - הגיר הזה הוא אחד השיפורים השווים בסופה, כתבה בקנה...
השרשור קצת נגנב לטובת הרג'פ-טאיפ-ארדואנו הזה.
ואני, כטכנופוב ידוע שדוגל בעקרון "מה שעובד לא מתקנים/משנים" בכלל כל מה שעניין אותי זה לא לנסות להמציא את הגלגל מחדש אלא מה הפתרון הפשוט, האמין והמועדף על מנת לצלוף בנסיון התנעה ראשון.
הכל הסתדר כמו שרצינו - נשארים עם גלגל תנופה, קלאץ' קומפלט וחיישן קראנק של סופה/YJ/XJ.
אז יש לנו תשובות ברורות.
הגיר שברשותי יעלה על הג'יפ ממש בקרוב.
תקראו על זה בכתבה של גיתאי על ההסבה המוצלחת בג'יפ שלו.
ואז נתפנה להסבה המעניינת הבאה בתור...
המספרים שאני מכיר למעבר בין ON לOFF בפין דיגיטלי בארדואינו UNO (עושה רק את זה).
77KHZ לסקריפט הכי בסיסי (digitalWrite).
4MHZ לסקריפט קיצוני עד לא מעשי.
יש המון פרטים טכניים, די דביליים, שתורמים למהירות הסקריפט, כמו למשל חישוב ואיחסון נתונים בFLOAT שמסתבר שזה דרעק גדול למהירות המעבד.
לכן אני פשוט הייתי דבר ראשון לוקח בקר מאוד מהיר ולא רודף אחרי כל הקטנות האלו.
בהצלחה
אחרי עוד כמה שעות של ליטוש הארדואינו עומד יפה ב6000 סל"ד וכך זה נראה:
https://imageshack.com/a/img922/6531/du4HZl.jpg
https://imageshack.com/a/img922/6531/du4HZl.jpg
וב600 סל"ד זה נראה כך:
https://imageshack.com/a/img921/7690/0BaMo8.jpg
https://imageshack.com/a/img921/7690/0BaMo8.jpg
וזו התמונה המקורית בבדיקת החיישנים בסופה של גיתאי:
https://imageshack.com/a/img924/6370/wkWBQM.jpg
https://imageshack.com/a/img924/6370/wkWBQM.jpg
זה נראה מרתק ( לא בציניות) אבל אני מניח שאני מיצג את השלושה-חמישה אחוז שלא מבינים את הגרפים האלה.
תוכל להסביר בבקשה מה רואים בו?
Jeep Grand Cherokee ZJ 98 V8
Honda TRX300EX
4Z7BOZ
אני מבקש שתחדד את התשובה לשאלה של בועז עם נתוני החיישנים, מה הם נותנים לך?
האם לכל סיבוב מנוע מתקפל פולס אחד שמתורגם לתדר בארדואינו,
כלומר 3000 סל"ד = 50hz?
עריכה:
עוד שאלה, כמה אתה מצליח לסנכרן בתזמון הפולס יציאה מול תזמון פולס הכניסה?
לא בערכי התדר אלא בזמן ביצוע ה"ירי"?
וסליחה שאני לוקח את זה לצד הטכני שמאחורי הקלעים בבקרה, אני אוסף חומר לענות לחנן בשרשור נפרד בצורה מסודרת
Sent from my LG-H930 using Tapatalk
ראיתי תשובה לשאלה שלי בתגובות 23 ו 24 בערך...
Sent from my LG-H930 using Tapatalk