תוכן עניינים:
- אספקה
- שלב 1: אפשר לרחרח אוטובוסים
- שלב 2: שליחת פקודות לסטריאו
- שלב 3: בניית המתאם
- שלב 4: התוכנה
- שלב 5: מעטפת הפרויקט
- שלב 6: מחשבות אחרונות
וִידֵאוֹ: מפתחות הגה למתאם סטריאו לרכב (CAN Bus -> Key1): 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
מפתח 1) "src =" https://content.instructables.com/ORIG/F3X/UXCI/KCT3F9KZ/F3XUXCIKCT3F9KZ-p.webp
מפתח 1) "src =" {{file.large_url | הוסף: 'auto = webp & frame = 1 & height = 300' %} ">
כמה ימים לאחר קניית מכונית משומשת גיליתי שאני לא יכול להשמיע מוזיקה מהטלפון שלי דרך מערכת הסטריאו של המכונית. עוד יותר מתסכל היה שהמכונית הייתה בעלת Bluetooth, אך אפשרה רק שיחות קוליות, לא מוזיקה. הייתה לו גם יציאת USB של Windows Phone, אך היא לא תעבוד עם אייפון ללא דונגל של 60 $.
לאחר שהחלפתי מערכות סטריאו במכוניות הקודמות שלי, בלי הרבה מחשבה או מחקר, הזמנתי סטריאו להחלפה של 40 $ מאתר "זול" ידוע. מערכת הסטריאו הגיעה עם מצלמת רוורס, מכונית משחק וחבורה של תכונות נוספות, שנראו בעלות הרבה יותר טובה מהדונגל היקר יותר שעושה רק דבר אחד.
אחרי שקניתי וצייר לוח פנים חדש, הדפסת תלת מימד והרבה עבודה נוספת (שיכולה להנחות בפני עצמו), הגעתי לתגלית לא נעימה. פקודות מפתח ההגה נשלחו באמצעות אוטובוס CAN, אך למכשיר הסטריאו היה רק כניסת Key1. מאחר שלא הייתי מוותר על חצי הדרך, הזמנתי מתאם של 60 פאונד, שהתברר שלא עובד. בשלב זה החלטתי להכין מתאם בעצמי.
אני לא מהנדס חשמל, יש לי רק ידע באלקטרוניקה בסיסית וזה היה עבורי פרויקט למידה וחקר. העצה שלי תהיה לבדוק תחילה את מפרט הרכב שלך ולהזמין רדיו תואם, אך אם אתה כבר תקוע (כפי שהייתי) עקוב אחר ההנחיות על אחריותך בלבד.
אספקה
המתאם (כ- 15 $)
- Arduino Pro Mini 5V (או לוח תואם)
- מודול אוטובוס מסוג MCP2515 CAN
- 60x80 מ"מ פרבורד
- פוטנציומטר דיגיטלי X9C104 100K אוהם (תלוי בסטריאו שלך)
- הרגולטור DC-DC הורד את LM2596S 3-40V 3A
- מחזיק נתיך כבל + נתיך (100-200 אוהם)
- קופסת פרוייקטים או מדפסת תלת מימד להדפסה
- שקעי סטריאו לרכב (זכר + נקבה)
- חומרי הלחמה, חוטים וכו '.
עוזרי מבחנים (לא נחוצים אך בהחלט יקלו על הבדיקה)
- Arduino (כל לוח 5V יעשה)
- מודול אוטובוס מסוג MCP2515 CAN
- קרש + מגשרים
שלב 1: אפשר לרחרח אוטובוסים
במקום שחבורת חוטים תתרוצץ בחלק הפנימי של המכונית שלך המחברת חבורה של מערכות, בכמה כלי רכב מודרניים יש זוגות חוטים הפועלים לכל רכיב. המידע נשלח כמנות נתונים דיגיטליות דרך החוטים הללו, וכל המערכות יכולות לקרוא את כל ההודעות. זוהי רשת אוטובוס CAN (יכולות להיות מספר רשתות במכונית שלך, כך שאולי כל המידע לא יהיה גלוי).
מה שאנחנו רוצים לעשות הוא להתחבר לרשת האוטובוסים CAN ול"הרחרח "את תעבורת הנתונים. כך נוכל "לראות" בעת לחיצה על מקש הגה. לכל מנה יש מזהה, המייצג את תת המערכת של הרכב ששלחה את המנה, ואת הנתונים שמייצגים את מצב המערכת. במקרה זה אנו מנסים למצוא את המזהה של מערכת המשנה ששולחת הודעות מפתח להגה, וייצוג הנתונים של כל מפתח.
אם יש לך מזל אולי תמצא את הערכים של המכונית שלך אי שם באינטרנט, ותוכל לדלג על שלב זה.
תהליך זה מעורב מעט וכבר הוסבר במקומות אחרים, אז רק אסכם אותו:
- מצא את הערכים הנכונים לתקשורת אוטובוס CAN ברכב שלך. עבור המכונית שלי (פיאט רעיון לשנת 2009) זה היה קצב שידור של 50KBPS ומהירות שעון של 8 מגה -הרץ.
- התחבר לרשת האוטובוסים CAN באמצעות מודול האוטובוס CAN ו- Arduino בתצורת "מרחרח".
- קרא את ערכי האוטובוס CAN במחשב הנייד שלך באמצעות כלי כגון https://github.com/alexandreblin/python-can-monito…. יהיה מאוד קשה לעשות זאת בלעדיו, שכן הרבה הודעות נשלחות גם כשהמכונית לא עושה דבר.
- לחץ על כפתור ההגה וציין את השינויים בערך. זה יכול להיות קצת מסובך מכיוון שהרבה הודעות נשלחות וייתכן שיהיה קשה להבין איזו מהן.
להלן שני מאמרים מצוינים המסבירים את התהליך לעומק:
- https://medium.com/@alexandreblin/can-bus-reverse-…
- https://www.instructables.com/id/CAN-Bus-Sniffing-…
בסופו של דבר אתה אמור לקבל את מזהה תת המערכת בו נשתמש כדי להאזין להודעות אוטובוס CAN ההגה בלבד, ורשימת ערכים הקסדצימליים עבור פקודות המפתח. במקרה שלי הנתונים נראו כך:
תעודת זהות | מזהה הקס | בת 0 | בת 1 | לַחְצָן
--------------------------------------------- 964 | 3C4 | 00 | 00 | ללא כפתורים 964 | 3C4 | 04 | 00 | SRC 964 | 3C4 | 10 | 00 | >> 964 | 3C4 | 08 | 00 | << 964 | 3C4 | 00 | 80 | טלפון 964 | 3C4 | 00 | 08 | ESC 964 | 3C4 | 80 | 00 | + 964 | 3C4 | 40 | 00 | - 964 | 3C4 | 00 | 40 | Win 964 | 3C4 | 00 | 02 | עד 964 | 3C4 | 00 | 01 | למטה 964 | 3C4 | 00 | 04 | בסדר
מזהה מערכת המשנה הוא 3C4 (במקרה זה), שהוא מספר הקסדצימלי ולכן עלינו לכתוב אותו כמו 0x3C4 במערכונים של Arduino. אנו מעוניינים גם בייט 0 ו -1 (במקרה שלך יתכנו יותר בתים). אלה גם ערכים הקסדצימליים, ולכן יש לכתוב אותם גם עם 0x מוביל.
אם תמיר את הערכים לבינארי, תבחין שהסיביות אינן חופפות (למשל + 0b10000000 ו- - 0b01000000) זהו כך שניתן ללחוץ על מספר מקשים בו זמנית.
אני מציע לבנות את הרחרח עם החומרים המופיעים בסעיף "עוזר מבחן", כך שתוכל להשתמש בו שוב מאוחר יותר כדי לדמות את המכונית שלך. זה יחסוך ממך צורך לשבת במכונית שלך כל הזמן בזמן שאתה בונה את המתאם ובודק אותו. אתה יכול להשתמש בסקיצה המסופקת כדי לשמש סימולטור. שנה את "subsystemId", "data0" ו- "data1" עם הערכים שחרפת.
שלב 2: שליחת פקודות לסטריאו
לפני שמתחילים לבנות את המתאם, עדיף לבדוק תחילה אם הסטריאו יכול לקבל פקודות.
הייתה לי סוללה לרכב, כך שחיברתי אליו את הסטריאו ישירות. אם יש לך מקור מתח 12V ספסל עליון, אפילו טוב יותר. לרוע המזל לא הצלחתי למצוא מידע רב באינטרנט על קלט Key1 ביחידה שלי, ולכן נסיתי להתנסות. לא דאגתי יתר על המידה לשרוף את הסטריאו בשלב זה, מכיוון שהוא זול יחסית, וזה היה ניסיון התעלה האחרון שלי לגרום לו לעבוד עם המכונית שלי.
לסטריאו יש מסך למידת פקודות, שבו אפשר לבחור אחד משני ערכי התנגדות (1K ו -3.3K) ולראות את ערך ה"מתח "(0-255). "מתח" מצוטט כי הוא מטעה. ביליתי הרבה זמן להחיל מתחים שונים על Key1 ללא מזל. ניסיתי גם להשתמש בנגדים שונים כדי להחיל את המתח ללא הצלחה.
פריצת הדרך הגיעה כאשר ניסיתי לגעת בחוט ה- Key1 לקרקע הסוללה, מה שגרם לירידת "מתח" ל- 0. זה בשילוב עם נגדים שונים יניבו ערכי "מתח" עקביים על מסך הלמידה.
עכשיו, כשידעתי לשלוח כניסות לסטריאו, הייתי צריך דרך לשלוח אותן מארדואינו. בשלב זה לא שמעתי על מרבבים, שיחד עם כמה נגדים, אולי היה פתרון מהיר ואמין יותר (אני עדיין לא בטוח אם זה אפשרי), אז השתמשתי בפוטנציומטר דיגיטלי. בהתחלה היו לי בעיות בהפעלת הסיר הדיגיטלי לעבודה, עד שהבנתי שאני צריך לחבר אותו כראאוסטאט כדי לפעול כנגד משתנה במקום מחלק מתח. בעיקרון הייתי צריך לחבר את מסופי ה- RH וה- RW.
מלבד ההתנגדות, התזמון היה מכריע. אם ירידת ההתנגדות קצרה מדי, הפקודה לא תירשם. אם זה ארוך מדי זה עלול להירשם מספר פעמים. ירידה של 240ms, ואחריה עיכוב של 240ms עד שהפקודה הבאה עבדה די אמינה עבור הסטריאו שלי. למרות שזה נראה כמו מעט מאוד זמן, זה אומר שאנחנו יכולים לשלוח עד 2 פקודות לשנייה, וזה בולט אם אתה מנסה להעלות או להנמיך במהירות את עוצמת הקול. ניסיתי לשחק עם תזמונים ודפוסים שונים, מה שאכן הגביר את המהירות אך לא היה אמין במיוחד. אם יש לך רעיונות כיצד לשפר זאת אנא השאר אותם בתגובות.
לפני שתמשיך הלאה, אני מציע לבנות אב טיפוס כדי לבדוק אם הסטריאו שלך מקבל את אותו סוג קלט. גם אם הוא מקבל מתח שונה המתאם אמור לעבוד עם שינויים קלים בחיווט ובשרטוט Arduino.
שלב 3: בניית המתאם
לאחר שבדקנו את כל הרכיבים בנפרד וניסינו אותם יחד על קרש לחם, הגיע הזמן לתת להם בית קבוע יותר. זה לקח כמה שעות של פריסת רכיבים והלחמה.
בפינה השמאלית העליונה נמצא הרגולטור למטה למטה, שהופך 12V מסוללת הרכב, ל- 5V שיכול לשמש את הרכיבים האחרים.
בפינה השמאלית התחתונה נמצא מודול האוטובוסים CAN, הקורא ערכים מרשת האוטובוסים CAN של המכונית ומעביר אותם אל ה- Arduino.
בפינה השמאלית העליונה נמצא הפוטנציומטר הדיגיטלי (המחובר כראאוסטאט) הפועל כנגד משתנה בין הקרקע לכניסת Key1 של הסטריאו.
בפינה הימנית התחתונה נמצא ה- Arduino, המשמש את המוח של המתאם, והופך הודעות אוטובוס CAN להתנגדויות הנקראות על ידי הסטריאו.
בכניסת 12V נמצא נתיך של 150mA, שסביר להניח שלא יגן על המעגל, אך הוא קיים כדי למנוע שריפה במקרה של קצר.
שלב 4: התוכנה
לאחר ההורדה, הכנס את שלושת קבצי ה-ino לתיקייה אחת. כך כולם יהיו חלק מאותו מערכון ויתפרסו לארודינו יחד.
כמו כן, עליך להוסיף את הספריות הנדרשות ל- Arduino IDE. לשם כך, הורד את הקבצים הבאים:
github.com/autowp/arduino-mcp2515/archive/…
github.com/philbowles/Arduino-X9C/archive/…
לאחר מכן הוסף את שניהם על ידי מעבר לסקיצה> כלול ספרייה> הוסף ספריית zip.
CanBusStereoAdapter.ino
ההתקנה הבסיסית מבוצעת בקובץ זה.
ערכי אוטובוס CAN של פקודה מרכזיים מוגדרים בחלק העליון. אלא אם כן יש לך את אותה מכונית כמוני, סביר להניח שתצטרך לשים ערכים משלך. אתה יכול להשתמש בערכים ההקסדצימליים מהריחוף, השתמשתי בינארית כך שקל יותר לראות שאין חפיפות מקריות בביטים.
לכל המכוניות אין אותן פקודות הגה, אז אל תהסס להסיר, להוסיף או לערוך את הערכים המוגדרים.
אל תשכח להחליף את מזהה תת המערכת שלך ב- "STEERING_ID".
CanBus.ino
קובץ זה מגדיר את מאזין האוטובוסים CAN, מפרש את המנות ומכניס את ערכי ההתנגדות למאגר מעגלי.
התאם את תצורת האוטובוס CAN בפונקציית "setupCanBus" כך שיתאים לרכב שלך.
אנו משתמשים במאגר מעגלי מכיוון שכאמור, קלט הפקודה מההגה מהיר בהרבה מכניסת הסטריאו. בדרך זו אנו לא מפספסים שום פקודה בזמן שהפוטנציומטר הדיגיטלי עושה את שלו. אם נזין יותר מדי פקודות הוותיקות ביותר ייזרקו תחילה, מכיוון שהן הפחות חשובות. זה גם מאפשר לנו לטפל במקרה כאשר נלחצים על מספר כפתורים, מכיוון שכניסת הסטריאו מקבלת ערך בודד בכל פעם.
אם שינית את אחת מהגדרות הפקודה ב- "CanBusStereoAdapter.ino" יהיה עליך לעדכן אותן גם בפונקציה "handleMessageData". "handleMessageData" בודק אם מסגרות הנתונים של אוטובוס CAN המסופקות מכילות אחת מהפקודות הידועות על ידי שימוש בפעולה AND וחלק.
לדוגמה, אם לחצתי >> ו + במקביל מה שיתן לנו מסגרת נתונים עם ערך של 0b10010000. >> (לרכב שלי) הוא 0b00010000 בינארי, ו- + הוא 0b10000000.
--------------- >> -------------- + ------------- << --- - data0 | 0b10010000 | 0b10010000 | פקודה 0b10010000 | וגם 0b00010000 | וגם 0b10000000 | ותוצאה 0b00001000 | = 0b00010000 | = 0b10000000 | = 0b00000000
כאן אנו יכולים לראות שהתוצאה של פעולת AND תהיה גדולה מ- 0 אם הפקודה נמצאת במסגרת הנתונים. אז כל שעלינו לעשות הוא לבדוק אם קיימים {מסגרת נתונים} ו {ערך פקודה}> 0, עבור כל פקודה שהגדרנו.
זכור כי כל מסגרת נתונים מכילה פקודות שונות, ולכן זה בסדר אם ערכי הפקודה זהים, מכיוון שאנו בודקים אותם מול המסגרות שלהם. בדוגמה שלי לשני << ול- ESC שניהם בעלי אותו ערך 0b00001000 (0x08), אך << נמצא ב data0 ו- ESC ב data1.
לאחר שקבענו כי קיימת פקודה במסגרת אנו מוסיפים ערך סיר דיגיטלי למאגר המעגלי. הערכים נעים בין 0 ל -99, אך שמתי לב שה"מתח "הנקרא על ידי הסטריאו אינו לינארי, בדוק את הערכים בעצמך.
DigitalPot.ino
קובץ זה מוציא ערכים מהמאגר המעגלי ושולח אותם לסיר הדיגיטלי לביצוע. במקרה שלי "pot.setPotMin (false);" יגדיל את ההתנגדות למקסימום, שהסטריאו יקרא כ"מתח "מרבי. הסטריאו שלך עשוי לדרוש ממך להגדיר את הסיר הדיגיטלי למינימום, אז בדוק אותו.
שלב 5: מעטפת הפרויקט
יש לי מדפסת תלת מימד אז החלטתי להדפיס מארז בשני חלקים למתאם שלי. צירפתי קובץ Fusion 360 אותו אתה יכול לערוך וקבצי gcode שיתאימו ללוח 60x80 מ מ.
אם אין לך גישה למדפסת תלת מימד, תוכל להשתמש במארז פרוייקטים מוכן או במיכל יציב.
שלב 6: מחשבות אחרונות
בתחילה תכננתי לחבר את המתאם לחשמל קבוע ולהתעורר מהודעות מסוימות של אוטובוס CAN, מכיוון שלמכונית שלי אין חוט הצתה בתא הסטריאו. מאוחר יותר החלטתי נגד זה כיוון שאני לא רוצה להסתכן בריקון הסוללה ולדאוג למתאם בזמן שאני רחוק מהמכונית. השתמשתי במפצל תיבת נתיכים לרכב כדי להפעיל חוט הצתה ולא צריך לסבך את המתאם עוד יותר.
מהבדיקות שלי צריכת החשמל היא 20-30 mA. הורדתי אותו ל- 10 mA במצב שינה, ויכולתי לרדת עוד יותר על ידי הסרת נוריות ה- LED מהרכיבים, אך החלטתי לא להטריד אותו מכיוון שהוא יפעל רק בזמן שהרכב פועל.
אני די מרוצה מהתוצאה הסופית. זמן התגובה סביר, ולעתים רחוקות הוא מפספס פקודות.
למרות שההשקעה שלי בזמן הייתה גדולה בהרבה מהעלות של המתאם הזמין מסחרית (שלא עבד), הידע שצברתי לא יסולא בפז.
מוּמלָץ:
מחזיק מפתחות לרכב חירום: 11 שלבים (עם תמונות)
מחזיק מפתחות לבריחת רכב חירום: תאונות דרכים. איכס! הדרך הטובה ביותר להימנע מתאונה היא להשתמש בטכניקות נהיגה בטוחות ותמיד לשים לב לאן אתה נוסע ולמכוניות אחרות סביבך. עם זאת, למרות מאמציך, אינך שולט בכונן אחר
מודול מונו-סטריאו-מודול סטריאו- Eurorack מבוקר: 3 שלבים
פורמט מודול סטריאו מודול-סטריאו-אירווראק נשלט על ידי קורות חיים: המהפכה בסינתרים מודולריים וחצי-מודולריים הניבה מגוון יפהפה של אפשרויות מונו-סינתר חדשות לשימוש מוזיקה אלקטרונית ורעש, אך בעיה אחת עם מונו-סינתרים (ורוב המודולים של Eurorack ו /או זרימות האות) היא שלא רק שהם
מסגרת סטריאו לאולפן סטריאו משנות השישים: 8 שלבים (עם תמונות)
שנות השישים Volumio Console סטריאו לארון סטריאו: לסבא וסבתא שלי הייתה קונסולת סטריאו כשהייתי ילד, ותמיד אהבתי לשחק איתה. יש משהו יפה ברהיט פונקציונלי כזה. ידעתי שכאשר קניתי מקום משלי, חייב להיות לי אחד. מצאתי פנסקרסט ישן
Arduino מותאם אישית לשמירה על לחצני הגה מסוג CAN עם סטריאו לרכב חדש: 9 שלבים (עם תמונות)
Arduino מותאם אישית בכדי לשמור על לחצני הגה מסוג CAN עם סטריאו לרכב חדש: החלטתי להחליף את מערכת הסטריאו המקורית של וולוו V70 -02 שלי בסטריאו חדשה כך שאוכל ליהנות מדברים כמו mp3, בלוטות 'ודיבורית. לרכב שלי יש כמה פקדי הגה לסטריאו שאני עדיין רוצה להשתמש בהם
סטריאו לרכב שלי - אייפוד מופעל: 8 שלבים
מערכת הסטריאו לרכב שלי - האייפוד מופעל: שימו לב: עשו זאת על אחריותכם בלבד, רוב הסיכויים היא שתוכלו לקלקל לכם את האייפוד ואת אודיו המכונית שלכם. איך אתה יכול להפוך את המכונית שלך לאודיו, לאייפוד מופעל, יש לי אודיו לרכב של פיוניר ואייפוד מיני. אתה צריך כבלי אודיו וסטריאו 2 מונו פין