תוכן עניינים:

UCL Embedded - B0B העוקב: 9 שלבים
UCL Embedded - B0B העוקב: 9 שלבים

וִידֵאוֹ: UCL Embedded - B0B העוקב: 9 שלבים

וִידֵאוֹ: UCL Embedded - B0B העוקב: 9 שלבים
וִידֵאוֹ: All #UCL Goals: ROBERT LEWANDOWSKI 2024, יולי
Anonim
UCL Embedded - B0B העוקב הקווי
UCL Embedded - B0B העוקב הקווי

זהו B0B.*

B0B היא מכונית כללית מבוקרת רדיו, המשרתת באופן זמני את הבסיס של רובוט העוקב אחר קו.

כמו כל כך הרבה רובוטים שעוקבים אחריו לפניו, הוא יעשה כמיטב יכולתו להישאר על קו שנגרם כתוצאה ממעבר בין הרצפה לחומר מנוגד, במקרה שלנו סרט דביק.

שלא כמו כל כך הרבה רובוטים אחרים שעוקבים אחרי קו, B0B אוספת גם נתונים ושולחת אותם באמצעות WiFi.

הגזמה מוחלטת של פרויקט תחביב, היא כרוכה במספר נושאים שעשויים לעניין אותך. מדריך זה מתאר את לידתו, את תפקודיו וכיצד אתה יכול ליצור אחד בדיוק כמוהו.

זה גם כרוך בכעס על מוצרי אלקטרוניקה שונים על כך שהם לא עובדים כמו שרצינו, והצעדים שנקטנו כדי להתגבר על הקשיים האלה (אני מסתכל עליך ESP 8266-01).

ישנם 2 קודים לגרום לפרויקט לעבוד. הקוד הראשון מיועד למודול ESP8266 בו אנו משתמשים בארדואינו כמתכנת, והקוד השני עומד לפעול על הארדואינו.

שלב 1: רכיבים

לפרויקט זה תזדקק ל:

חוּמרָה:

• מכונית בקר רדיו 1x, (חייב להיות בעל ESC וסרוו היגוי).

השתמשנו בעיקר Traxxas 1/16 E-Revo VXL במלאי, בעיקר כי זה מה שיש לנו והיינו די בטוחים שנוכל לשלוט בו עם Arduino. גם מכיוון שבסופו של דבר הוא יישא כמות לא מבוטלת של חומרה נוספת, היינו בטוחים שזו לא תהיה בעיה עבור 1/16 E-Revo.

עם זאת, סביר להניח שניתן להשתמש ברוב המכוניות הנשלטות ברדיו (שניתן לפרק בקלות) במקום זאת, והתהליך יהיה דומה מאוד.

• טון של נייר דבק.

הצבע צריך להדגיש את הרצפה כמה שיותר. בסביבת הבדיקות שלנו השתמשנו בקלטת לבנה על רצפה כהה.

• 1x Arduino Mega 2560.

כנראה שגם ארדואינו קטנים יותר בסדר, אבל תלחץ על סיכות.

• לוח לחם גדול אחד.

אחת מספיקה, אבל היה לנו גם אחד קטן יותר להפריד את קווי המתח האחרים כדי להפחית את הסיכון לשגיאות משתמש.

• 1x חיישן אנלוגי TCRT5000 IR (משמש למניעת התנגשות).

המותג/הדגם המדויק לא משנה אם הוא תואם Arduino ומודד מרחק. חפש מילות מפתח כגון חיישן "מרחק", "מכשול". מבחינה טכנית גם חיישן דיגיטלי יעבוד עם שינויים קטנים בקוד, אך אנו משתמשים באנלוגי.

• 1x או 2x Gravity: חיישן גווני אפור אנלוגי v2

אחת מהן היא הכרח עבור חסיד השורות. המודל המדויק לא משנה, כל עוד הוא מסתכל על עוצמת האור המוחזר ומפיק אות אנלוגי. השני לגילוי 'חדר' לא עבד כצפוי וניתן להשמיט אותו, או לחלופין, כמו שניתן למצוא חיישן צבע RGB, ככל הנראה להשפעה טובה יותר. עדיין לא נבדק זאת.

• 1 x ESP 8266-01.

ישנן הרבה גרסאות של ESP 8266 זמינות. יש לנו ניסיון רק ב- 8266-01, ואיננו יכולים להבטיח שקוד ה- ESP יעבוד עם גרסה אחרת.

• 1 x ESP8266-01 מגן Wi-Fi.

אופציונלי מבחינה טכנית, אך אם אינך משתמש בזה, כל מה שקשור למודול ה- Wi-Fi יסתבך הרבה יותר. המדריך, עם זאת, יניח שיש לך את זה (אם לא, מצא את המדריכים באינטרנט לחיווט נכון של ה- ESP-01 לתוך הארדואינו), שכן פעולה שגויה יכולה וכנראה לפגוע במודול.

• סוללות לרכב עצמו וסוללות להפעלת האלקטרוניקה התוספה.

השתמשנו בזוג של קיבולת 2.2 AH, סוללות ליפו של 7.4V במקביל להפעלת הכל. אתה אמור להיות מסוגל להשתמש בכל הסוללות שבהן תשתמש בדרך כלל עם הרכב המועדף עליך. אם אתה מעל 5V אך מתחת ל- 20V, הקיבולת חשובה יותר מהמתח הנומינלי.

• הרבה כבלי מגשר.

ויתרתי לספור את המספר המדויק של אלה. אם אתה חושב שיש לך מספיק, כנראה שאין לך.

• לבסוף, כדי לצרף הכל, יהיה עליך להרכיב את הארדואינו, את החיישנים, את הלוח (ים) ואת מודול ה- Wi-Fi לרכב שבחרת. התוצאה שלך תשתנה בהתאם למה שאתה משתמש כבסיס, ומה החומרים הזמינים.

השתמשנו:

• קשרי רוכסן.

• קצת דבק סופר.

• פיסות קטנות של נייר גרוטאות/צינור שרף שהיה לנו בקוטר מתאים.

• לוח גב ישן ממסוניט ממסגרת תמונה, חתוך לפי מידה.

• עוד קצת סרט דביק.

• כל הכלים הדרושים לעבודה על המכונית הנשלטת ברדיו שלך.

השתמשנו בעיקר במברג מברגים קטן עם מספר סיביות, אך מדי פעם נאלצנו לשלוף את ערכת הכלים שהגיעה עם המכונית.

תוֹכנָה:

• צומת אדום

חלק חשוב באיסוף הנתונים.

• שרת MQTT.

איש הביניים בין הרכב שלנו לצומת אדום. בתחילה, לצורך הבדיקה, השתמשנו ב- test.mosquitto.org

מאוחר יותר השתמשנו ב:

• CloudMQTT.com

זה היה הרבה יותר אמין, מה שהשלים יותר מהיותו קצת יותר מסובך להגדיר.

• WampServer.

החלק האחרון באיסוף הנתונים. באופן ספציפי, נשתמש במסד הנתונים SQL שלו לאחסון הנתונים שנאספו.

שלב 2: תרשים חשמלי

תרשים חשמלי
תרשים חשמלי

שלב 3: בנייה פיזית

בנייה פיזית
בנייה פיזית
בנייה פיזית
בנייה פיזית
בנייה פיזית
בנייה פיזית

לפתרון שלנו יש גישה קדימה להרכבה פיזית.

המקלט המקורי והמארז העמיד למים שלו הוסרו ממכונית ה- RC מכיוון שאין בו צורך.

גילינו שיש מיקום מתאים אחד בין הגלגלים הקדמיים לחיישן המעקב שלנו, ולכן החזקנו אותו במקום בעזרת לולאה של רוכסן מעל צלחת החלקה הקדמית.

החיישן שבו אנו משתמשים לאנטי-התנגשות נחבט מאחורי הפגוש הקדמי. הוא עדיין מוגן מפני פגיעות והתאמת החיכוך שלו. בסופו של דבר הוא מסתכל קדימה בזווית קלה כלפי מעלה. זה מושלם.

צלחת המסוניט, (לוח אחורי ממסגרת התמונה הישנה), מלמעלה יש חלקים קטנים של צינור נייר/שרף חתוכים במידה ומודבקים על החלק התחתון. אלה מיישרים קו עם התושבים של עמודי הגוף ופשוט יושבים על הגג, אוחזים הכל בבטחה. בהנחה שהדבק שמדביק את הצינור לצלחת מחזיק, וכי הוא אינו נוטה יתר על המידה, הדבר יישאר במקומו. ראוי גם לציין כי הצלחת נמצאת בתוך תחום ההגנה של הגלגלים והפגושים. ה- Arduino Mega ושני לוחות הלחם הוצמדו לצלחת עם סרט צד כפול, או עם לולאה של סרט דביק בלולאה מסביב, הדביקו החוצה.

לא ננקטו אמצעים מיוחדים לאבטחת מודול ה- WiFi. זה לא שלנו, כך שהדבקתו או הדבקתו נחשבה למיותרת מכיוון שהיא כה קלה שהיא לא תזוז הרבה, והדי החוטים מספיקים כדי להחזיק אותה במקומה.

לבסוף, יש לנו חיישן לאיתור 'חדרים', זה היה מכווץ לרכיבי המתלים על ידי אחד הגלגלים האחוריים. במהלך הפעולה, זה צריך להיות רחוק מהקו המסמן שהרכב משתמש בו כדי לנווט.

שלב 4: מודול ESP8266

מודול ESP8266
מודול ESP8266
מודול ESP8266
מודול ESP8266

מודול ה- WiFi, ESP8266, דורש התקנת פינים שונים. יש להשתמש בהתקנה אחת כאשר מהבהבים את המודול עם תוכנית חדשה ומשתמשים במתקן Arduino Mega 2560. ההתקנה השנייה מיועדת למודול כשהוא בשימוש ושליחת מידע לברוקר MQTT.

באמצעות Arduino IDE להעלאת קוד למודול ESP8266 יהיה עליך להתקין מנהל לוח ומנהל לוחות נוסף.

תחת מנהל לוח התקן את מנהל הלוח esp8266. ניתן למצוא אותו בקלות על ידי חיפוש "esp". חשוב שתתקין את הגרסה 2.5.0, לא ישנה יותר, לא חדשה יותר.

תחת הגדרות בכתובות אתרים נוספות של מנהל לוחות, העתק בשורה זו:

arduino.esp8266.com/stable/package_esp8266c…

כדי שתוכל להעלות כל דבר למודול ESP8266 תצטרך להשתמש בהתקנת סיכה ספציפית כדי שתוכל להבהב את המודול. זה צריך להיעשות בכל פעם שאתה רוצה לשנות את הקוד הנוכחי הפועל במודול. אל תשכח לבחור את מודול ESP8266 הנכון ממנהל הלוח לפני מהבהב המודול. בפרויקט זה בחרנו את הלוח הגנרי ESP8266. הגדרת הסיכה להבהב המודול נמצאת בתמונה הראשונה בקטע זה.

לאחר שהבהבת את מודול ESP8266 עליך לשנות את הגדרת הסיכה. תוכל גם לבחור להשתמש במתאם כדי להקל עליך את ההתקנה. בפרויקט זה בחרנו לקבל מתאם בכל פעם שהמודול פועל. הגדרת הסיכה עם מתאם נמצאת בתמונה השנייה בקטע זה.

הקוד להבהב על מודול ESP8266 מגדיר את החיבור ל- WiFi ול- MQTT Broker, במקרה זה עם שם משתמש וסיסמה, אך ניתן לבצע אותו ללא ביצוע השינויים הדרושים המתוארים בהערות הקוד. לפרויקט זה הברוקר שלנו דרש שם משתמש וסיסמה כדי לעבוד. המודול קורא הודעות נכנסות מהיציאה הטורית שאליה הוא מחובר. הוא יקרא כל שורה חדשה שנוצרה על ידי קוד הארדואינו, יפענח את ההודעה וייצר מחדש את ההודעה. לאחר מכן הוא שולח את ההודעה לברוקר MQTT שצוין בקוד. הקוד למודול ESP8266:

שלב 5: ארדואינו

לאחר הגדרת מודול ה- WiFi, אנו בוחנים את התוכנית שתשמש לשליטה במנוע ובסרוו במכונית ה- RC. המכונית תגיב על פי מידע בקנה מידה אפור מהחיישן המרכזי, המכונה גם "גלאי הקווים" בפרויקט זה. מטרתו היא להשאיר את המידע מגלאי הקווים ליד ערך מוגדר מראש השווה למידע שנרשם בשינוי בין אור לחוש או בפרויקט זה, לבן ושחור. אז אם הערך שונה מדי, הפלט המתאים לסרוו יכוון את המכונית ליד הערך הקבוע מראש של הקו.

לתוכנית שני כפתורים המתפקדים ככפתור התחלה ועצירה עבור מכונית ה- RC. מבחינה טכנית כפתור ה"עצור "הוא כפתור" חימוש "אשר במונחים שווה ערך PWM שנשלח אל המנוע וגורם למכונית ה- RC להיעצר. כפתור ההתחלה שולח ערך PWM השווה למכונית RC בקושי מתקדמת קדימה מכיוון שהוא ינהג מהר מדי אם הוא צובר תאוצה רבה מדי.

גלאי הימנעות מהתנגשות מתווסף לחלקו הקדמי של מכונית ה- RC כדי לזהות אם הדרך קדימה ברורה או חסומה. אם היא חסומה, מכונית ה- RC תעצור עד שהמכשול ייעלם/יוסר. האות האנלוגי מהגלאי משמש כדי לקבוע אם משהו חוסם את הדרך או לא, והוא הופך לקריטריונים ליכולת להתקדם גם לעצור.

חיישן משנית בקנה מידה אפור, "גלאי חדרים", משמש לזיהוי לאיזה חדר נכנסה מכונית ה- RC. הוא פועל על פי עקרון דומה לגלאי הקווים, אך הוא אינו מחפש את השינוי בין אור לחושך, אלא לערכים בטווח ספציפי המתאים לחדרים שונים בהתאם לערך הנראה מגלאי החדרים.

לבסוף התוכנית יוצרת שורה של מידע מהחיישנים למודול ה- WiFi לקריאה ולאחר מכן לשלוח למתווך MQTT. שורת המידע נוצרת כמחרוזת ונכתבת לסדרה המקבילה ממנה מחובר מודול ה- WiFi. חשוב שהכתיבה לסדרה תתרחש רק בתדירות שבה מודול ה- WiFi יכול לקרוא את ההודעה הנכנסת, אך זכור לא להשתמש בעיכובים בקוד זה מכיוון שהוא יפריע ליכולת המכונית לעקוב אחר הקו. במקום זאת השתמש ב"מיליס "מכיוון שהוא יאפשר לתוכנית לפעול ללא דיחוי אך לאחר שחלפה כמות מוגדרת של מיליס מאז שהארדואינו הופעל, תכתוב הודעה לסדרה מבלי לחסום את הקוד כפי שעושה עיכוב.

הקוד עבור Arduino Mega 2560:

שלב 6: מסד הנתונים MySQL

WampServer היא סביבת פיתוח אתרים עבור Windows המאפשרת לנו ליצור יישומים עם PHP ומסד נתונים MySQL. PhpMyAdmin מאפשר לנו לנהל את מאגרי המידע שלנו בצורה קלה.

כדי להתחיל, עבור אל:

בפרויקט זה אנו משתמשים בגרסה 3.17 x64 סיביות עבור Windows. לאחר ההתקנה וודא שכל השירותים פועלים, מה שאומר במונחים שהאייקון הקטן הופך לירוק במקום אדום או כתום. אם הסמל ירוק, תוכל לגשת ל- PhpMyAdmin כדי לנהל את מסד הנתונים של MySQL.

גש ל- MySQL באמצעות PhpMyAdmin וצור מסד נתונים חדש. תן לזה משהו מתאים שתוכל לזכור, בפרויקט זה הוא נקרא "line_follow_log". לאחר יצירת מסד הנתונים, עליך ליצור טבלה במסד הנתונים. ודא שמספר העמודות מתאים. בפרויקט אנו משתמשים ב -4 עמודות. עמודה אחת מיועדת לחותמת זמן ושלושת האחרונים משמשים לאחסון נתונים מהרכב. השתמש בסוג נתונים מתאים לכל עמודה. השתמשנו ב"טקסט ארוך "בעמודה של חותמת הזמן וב"טקסט בינוני" לשאר.

זה צריך להיות כל מה שאתה צריך לעשות ב- PhpMyAdmin וב- MySQL. זכור את מסד הנתונים שלך ואת הטבלה עבור הקטע על Node-Red.

שלב 7: צומת-אדום

כדי לטפל באיסוף נתונים, נשתמש בזרימה פשוטה למדי בצומת אדום. הוא מתחבר לשרת MQTT שלנו וכותב למסד הנתונים של MYSQL.

כדי לעשות זאת, אנו זקוקים לכמה לוחות כדי שפונקציות שונות יפעלו, ואנו זקוקים לקוד ממשי להפעלתו.

קודם כל. נזדקק למשטחים הבאים.

Node-red-contrib-mqtt-broker: זהו החיבור למתווך MQTT שלנו.

Node-red-dashboard: מרכז השליטה שלנו, הדרוש לייצוג חזותי של הנתונים שנאספו.

Node-red-node-mysql: החיבור שלנו למסד הנתונים של SQL.

זה לא אמור להיות מדריך מן המניין ל Node-red, אבל אני אסביר מה הזרימה Node-red עושה.

בשלב מוקדם, היו לנו בעיות בשרת ה- MQTT שלנו שמת/ניתוק בחירה, לכאורה באופן אקראי, מה שהפך את ביצוע השינויים למאמץ מתסכל מכיוון שלא היה ברור אם השינויים היו מועילים או לא כאשר לא יכולנו לראות את התוצאה. אז הכפתור 'האם השרת מת?' מזריק 'לא' הבלוק הבא מזריק אותו לשרת MQTT שלנו. אם הוא לא מת, 'לא' יופיע בחלון באגים. הדבר נעשה לא רק כדי לבדוק, אלא גם לאלץ את Node-red לנסות להתחבר מחדש לשרת MQTT.

'מחרוזת הבדיקה' שולחת מחרוזת תלבושות לברוקר MQTT. עיצבנו את המחרוזת כך שהיא תהיה דומה למה שנקבל מהארדואינו. זה היה כדי שיהיה קל יותר להגדיר את הרשת שמפענחת את ההודעות, מבלי שהפרויקט יפעל, לאסוף נתונים.

ניתן לחלק את הזרימה האחרונה בסביבת העבודה לשני מקטעים. הענף התחתון פשוט קורא את ההודעות הנכנסות, מפרסם אותן בחלון הבאגים ושומר אותן בשרת SQL.

הרשת הגדולה של מתגים מחוברים בעקבות צומת פונקציות אם המקום בו 'הקסם' האמיתי קורה.

פונקציית ההמשך קוראת את המחרוזת הנכנסת, מפצלת אותה עם כל נקודה-נקודה וחולקת את החלקים על כל אחת מהפלטים. המתגים הבאים מחפשים אחד משני פיסות מידע שונות שנכנסות. פיסת מידע ספציפית אחת תמיד עוברת מתוך פלט אחד, האפשרות השנייה משאירה את הפלט השני. בעקבות זאת, קבוצה שנייה של בלוקי מתג. הם יופעלו רק עם קלט ספציפי אחד ויוציאו משהו אחר.

דוגמה, 'מכשול', כמו כל האחרים הם בחירה בינארית, או שברור לנהוג או שלא. אז הוא יקבל 0, או 1. A יישלח לסניף ה'ברור ', 1 יישלח לסניף' חסום '. מתגי 'נקה', 'חסום', אם הם מופעלים יפיקו משהו ספציפי, ברור או חסום, בהתאמה. בלוקי ההמשך הירוקים יפורסמו בחלון באגים, הכחול יכתוב ללוח המחוונים שלנו.

ענפי ה'סטטוס 'ו'מיקום' עובדים בדיוק אותו דבר.

שלב 8: מתווך MQTT

ברוקר הוא שרת המנתב הודעות מלקוחות ללקוחות היעד המתאימים. מתווך MQTT הוא אחד שבו הלקוחות משתמשים בספריית MQTT כדי להתחבר לברוקר דרך רשת.

עבור פרויקט זה יצרנו ברוקר MQTT באמצעות שירות CloudMQTT עם המנוי החינמי לגרסת "חתול חמוד". יש לו מגבלה אבל אנחנו לא חורגים מהפרויקט הזה. מודול ה- WiFi יכול להתחבר לברוקר ולאחר מכן הברוקר מפנה את ההודעות ללקוח יעד מתאים. במקרה זה הלקוח הוא הצומת האדום שלנו. שירות CloudMQTT מגדיר שם משתמש וסיסמה לשרת שלהם, כך שמובטחת לנו אבטחה גבוהה יותר. ביסודו של דבר פירושו שרק בעלי שם המשתמש והסיסמה יכולים לגשת לשירות CloudMQTT הספציפי הזה. שם המשתמש והסיסמה חיוניים בעת הגדרת החיבור על קוד ESP8266, כמו גם Node-Red.

הנתונים הסטטיסטיים המתמשכים לגבי ההודעות שמקבל הברוקר היא תכונה נעימה, שניתן להשתמש בה כדי לראות עד כמה תוכנית המנוי שלך מטפלת במידע שהיא מנתבת.

תכונה נחמדה היא האפשרות לשלוח הודעות מהברוקר למודול ה- WiFi אך לא השתמשנו בהן בפרויקט זה.

שלב 9: תחביב אלקטרוניקה

לפני שהתחלנו ידענו מפרויקט שעבר שניתן לשלוט על סרוו ההיגוי במלאי מארדואינו עם אות PWM, בעל חיווט דומה, וחיבור לערוצים שונים באותו מקלט רדיו מלאי, הנחנו את בקרת המהירות האלקטרונית, (ESC מ כעת), השולט על המנוע, ניתן לשלוט באופן דומה באמצעות PWM מהארדואינו.

כדי לבדוק תיאוריה זו, אנו מכינים סקיצה קטנה של ארדואינו. הסקיצה קוראת קלט אנלוגי מפוטנציומטר, מחזירה את הערך מ -0, 1024 ל -0, 255 ומפיקה את הערך המתקבל לסיכת PWM, תוך שימוש ב- analogWrite () כשהרכב ה- R/C היה על קופסה קטנה, והיה לו את גלגלים הוסרו.

לאחר שטאטנו את הטווח במד הסירים, נראה כי ה- ESC 'התעורר' ויכולנו לצמצם אותו למעלה ולמטה, היה לנו גם לארדואינו להדפיס את הערכים לחיבור הסדרתי כדי שנוכל לעקוב אחריהם.

נראה כי ה- ESC לא אהב ערכים מתחת לסף מסוים, במקרה זה 128. הוא ראה באות 191 מצערת ניטראלית, ו -255 הייתה מצערת מרבית.

לא היינו צריכים לשנות את מהירות הרכב והיינו מושלמים עם המהירות האיטית ביותר שתניע אותו. 192 היה הערך הנמוך ביותר שיסובב את המנוע, אולם עדיין אין לנו להרכיב הכל ואיננו בטוחים אם תפוקה זו תספיק להנעת הרכב לאחר ההרכבה הסופית, אולם הזנת ערך מעט גדול יותר צריכה להיות טריוויאלית.

עקיפת הפוטנציומטר והכנסת ערך קבוע לקוד, עם זאת, לא הצליח. ESC המניה פשוט מהבהב ולא יסובב את המנוע, 'התאם את גימור המצערת' על פי המדריך.

צילום תקלות זועם, הטלת ערכים שונים עליו, שימוש בחוטים שונים ואפילו התנסות בשינוי תדר ה- PWM בו משתמש הארדואינו הביאו לכל עוד מוזרות.

נראה היה שזו בעיה לסירוגין, לפעמים היא תפעל, פעמים אחרות היא סירבה לעשות דבר. זה פשוט המשיך למצמץ. בדיקה עם הבקר והמקלט המקוריים אישרה כי ה- ESC עדיין פועל בדיוק כפי שנועד, מה שהפך את הנושאים למוזרים עוד יותר.ערכים גבוהים יותר, הוא התעלם והמשיך למצמץ, ערכים נמוכים יותר ה- ESC חזר לזרוח ירוק שמח, אך עדיין לא הסתובב.

מה היה שונה מההגדרה עם הפוטנציומטר, או משדר המקלט והמקלט, והגרסה שסיפקה ערכים קבועים?

לפעמים עבודה כמתוכנן ועבודה כמצופה לא באמת חופפים הרבה בתרשים הוון. במקרה זה, בהיותו צעצוע, לא צריך להיות שום סיכוי שהדגם פשוט יוריד או ישבור אצבעות או שיתפס שיער בגלגלים או יניע את הרכבת כשהדגם נדלק, גם אם משהו כמו להחזיק את המשדר באופן מוזר מכניס את המצערת פנימה כל עמדה אחרת מאשר ניטרלית.

'התאם את גימור המצערת', זה בדיוק מה שזה אומר. ה- ESC מצפה לאות נייטרלי כאשר הוא יופעל, לפני שיקבל שהוא לא יעשה דבר. בדרך כלל המשדר תמיד יהיה ניטרלי כאשר ה- ESC מופעל ומשם ינהג בשמחה. במקרה שלא, הוא כנראה חוזר לנייטרלי לפחות פעם אחת כשהדגם יציב על הקרקע והמפעיל מרגיש מוכן לרוץ.

תוך שימוש בפוטנציומטר, "סחפנו" טווחים ואז הוא יתחיל לפעול. הוא פשוט חמוש כשהפוטנציומטר חלף על פני המיקום הניטרלי, ואז הוא עבד.

טווחים נמוכים יותר, עם זאת נראה שעדיין לא מרתיעים את ה- ESC. מסתבר שהוא תוצר של מחזורי PWM.

על פי עיצוב או שנעשה מסיבה טכנית, סרוו ההיגוי וגם ה- ESC מתעלמים מאותות מתחת למחזורי עבודה של 50%. זה יכול להיות במקרה שהמקלט/המשדר יפסיק לפעול או ייגמר לו החשמל, הדגם יחזור לנייטרלי, ולא ימריא למרחק במצערת הפוכה מלאה. באותה מידה, הסרוו מסתובב רק 180 מעלות, ואינו צריך את כל הטווח.

עם ידע חדש זה ביד, נוצר סקיצה חדשה של ארדואינו. הגרסה הראשונית מקבלת מחרוזות שהוכנסו לצג הסידורי, ממירה אותו למספר שלם ומעבירה אותו לסיכת PWM, באמצעות ספריית הסרוו וכתוב ()*. אם מוזנים ערך חדש במסך הטורי, ערך הכתיבה () מתעדכן.

במהלך הבדיקה הוחלף מלאי Traxxas ESC ב- Mtroniks G2 Micro, אולם הם אמורים לעבוד אותו דבר, אם כי הערכים המדויקים עשויים להיות מעט שונים.

הספרייה הזו מתייחסת ל- ESC כאל סרוו, זה בסדר כנראה. הפונקציה write () מספריית Servo.h עוברת מ -0 ל -180, אות החימוש הצפוי צפוי להיות סביב האמצע.

זרועות ה- G2 Micro על כתיבה () בטווח ערכים ליד 90 אולם היה קשה לזהות כיוון שנדמה כי 'זכור' שהוא חמוש.

Traxxas VXL-s3 צפוי להתחמש בשווי כתיבה () של 91.

לאחר אות החימוש, או ESC קיבלו בשמחה אותות PWM, ללא קשר לפונקציות Arduino שנקראו לייצר אותם, ושולטת במנוע בהתאם.

אם כבר מדברים על פונקציות; ניתן להשתמש בסטנדרטים analogWrite (), כמו גם לכתוב () ו- writeMicroseconds () מספריית Servo.h לסירוגין, רק זכור מה עושה מה, ובסופו של דבר אין שום דבר מלבד מחזור העבודה. ניתן להשתמש ב- WriteMicroseconds () אם נדרשת פירוט גדול יותר, רק זכור כי הטווח כאן הוא בין 1000 ל -2000, כאשר חימוש או 'ניטרלי' צפוי להיות ב 1500. עם analogWrite הסטנדרטי () הטווח השמיש צפוי להיות בין 128 ל -255 כשסביבות 191 נייטרליות.

מוּמלָץ: