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

מתאם I2C הזול ביותר בעולם (I-Squared-C): 5 שלבים (עם תמונות)
מתאם I2C הזול ביותר בעולם (I-Squared-C): 5 שלבים (עם תמונות)

וִידֵאוֹ: מתאם I2C הזול ביותר בעולם (I-Squared-C): 5 שלבים (עם תמונות)

וִידֵאוֹ: מתאם I2C הזול ביותר בעולם (I-Squared-C): 5 שלבים (עם תמונות)
וִידֵאוֹ: באמצעות Melexis MLX90614 מדחום אינפרא אדום עם ארדואינו 2024, יולי
Anonim
מתאם I2C (I-Squared-C) הזול בעולם
מתאם I2C (I-Squared-C) הזול בעולם

הפוך ממשק חיישן למחשב שלך בפחות כסף! עדכון 6/9/08: לאחר שבדקתי מספר דרכים שהסקתי שאין דרך מעשית ליישם טכניקה זו ב- Microsoft Windows. זה לא קלוש של מערכת ההפעלה, ממש ניסיתי לפגוע בניסיונות! מצטער! משתמשי Windows הזקוקים ליכולות I2C משמשים בצורה הטובה ביותר על ידי פתרונות קיימים מבוססי USB. עדכון 24/05/08: נוספה תמיכה ב- Linux, כמו גם קוד לדוגמא לבקר Nintendo Wii Nunchuk ו- "LED חכם" של BlinkM. עיין בקובץ README.txt הכלול בקוד המקור להנחיות לגבי הידור והתקנה ב- Linux. I2C (קיצור של Inter-Integrated Circuit) הוא אוטובוס סידורי דו-חוטי המשמש בדרך כלל במחשבים לתקשורת ברמה נמוכה בין רכיבים פנימיים. I2C פופולרי גם ברובוטיקה. כל סוגי החיישנים והמפעילים זמינים בצורה תואמת I2C: מדידי טווח קולי, חיישנים להאצה, הטיה, טמפרטורה ולחץ, בקרי סרוו ומרחיבי אוטובוסים המספקים קווים כלליים נוספים (GPIO). רוב הבקרים המודרניים ביותר (Atmel, Microchip PIC וכו ') יש תמיכה ב- I2C מובנית ממש. אך כוח העיבוד הקיים בבקרי מיקרו הוא מוגבל, ופיתוח תוכנה - עם מהדרים צולבים וסביבות תכנות מיוחדות - יכול לפעמים להיות מטלה. כאשר מחשבים ניידים ומחשבים לוח אחד הופכים קטנים יותר ויותר במחירים נוחים יותר, נפוץ יותר ויותר לראות מערכות אלה בשימוש ישיר בפרויקטים של רובוטיקה ואלקטרוניקה. זה מספק מספיק כוח ליכולות חדשות כגון עיבוד ראייה ותחושת AI מתוחכמת יותר, וזה מרחיב מאוד את היקף כלי הפיתוח והשפות הזמינים … אבל זה גם מציג בעיה חדשה: ממשק מערכות "רגילות" אלה לציוד היקפי מתבצע בדרך כלל דרך המיינסטרים. יציאות ברמת הצרכן כגון USB; אין "יציאת I2C" זמינה חיצונית שאנו יכולים פשוט להשתמש בה כדי להשתמש בחיישנים שלנו … או שיש?

שלב 1: אפשרויות קיימות

אפשרויות קיימות
אפשרויות קיימות
אפשרויות קיימות
אפשרויות קיימות

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

חיסרון אחד בגישה USB-to-I2C הוא העלות. דגם מסחרי מלא יכול לעלות 250 $ ומעלה. אפילו החלופות ה"חינמיות "של homebrew מניחות אוסף של חלקים והשקעה מוקדמת במתכנת של מיקרו -בקר והידע הנלווה לשימוש בו. חיסרון נוסף הוא המחסור היחסי בתמיכת נהגים מחוץ לקפל הפופולרי של Windows. מעט מהתקנים אלה פועלים באופן מקורי במחשבי מקינטוש או לינוקס.

שלב 2: DDC הוא I2C

DDC הוא I2C
DDC הוא I2C
DDC הוא I2C
DDC הוא I2C
DDC הוא I2C
DDC הוא I2C

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

רוב כרטיסי המסך והמסכים המודרניים תומכים במשהו שנקרא Display Data Channel (DDC), קישור תקשורת בתוך כבל וידיאו המאפשר למחשב ולמסך לנהל משא ומתן על רזולוציות תואמות הדדית ולאפשר שליטה בתוכנה על פונקציות הצג בדרך כלל באמצעות לחצנים פיזיים על הכפתור. לְהַצִיג. DDC הוא למעשה יישום של אוטובוס I2C עם כמה כללים שנקבעו. על ידי הקשה על חיבור זה בין המחשב לצג (או שימוש בקווי ה- DDC ביציאת וידאו שאינה בשימוש, כגון חיבור המסך החיצוני במחשב נייד), ניתן להתממשק עם כמה מכשירי I2C כמעט ללא כל עלות, לעקוף את הצורך הרגיל בהתקן מתאם לחלוטין. כל מה שאנחנו צריכים כדי לגשת פיזית לאוטובוס I2C הזה הוא כבל וידיאו שנפרץ …

שלב 3: מנתחים את הכבל

מנתחים את הכבל
מנתחים את הכבל
מנתחים את הכבל
מנתחים את הכבל

דרושים ארבעה חוטים לממשק I2C שלנו: +5V מתח, קרקע, נתונים סדרתיים ושעון סדרתי. ניתן למצוא Pinouts לסוגים השונים של יציאות הווידאו בויקיפדיה או Pinouts.ru. זכור אם אתה משתמש בכבל VGA כדי למצוא אותו עם השלמת הסיכות המלאה; חלקם כוללים רק קבוצת משנה.כדי לנתק את הבידוד והמיגון מהחלק החיצוני של הכבל, סביר להניח שתמצא שתי קבוצות חוטים בפנים. חוטים עבים יותר, או צרורות חוטים עטופים במיגון נוסף, בדרך כלל נושאים את אות הווידיאו. זה לא מעניין אותנו וניתן לחתוך אותם בחזרה. חוטים דקים יותר ולא מוגנים בדרך כלל נושאים בין היתר את אותות DDC (I2C). מודד מולטימטר או רציף יכול לעזור במציאת ארבעת החוטים הנכונים לכבל שלך. שימוש במחבר חשוף יכול להיות יתרון כאן, מכיוון שאתה רק צריך להלחם ארבעה חוטים לפינים המעניינים. הערה על כוח +5V: הזרם הזמין מוגבל מאוד; כ- 50 mA בהתאם למפרט DDC. רוב מכשירי I2C לוגמים רק מעט זרם, כך שאפשר יהיה להריץ מספר בבת אחת … אך אם משתמשים ביותר מנורות אחת או שתיים (או התקנים אחרים בעלי זרם גבוה יחסית), יש לספק כוח חיצוני.

שלב 4: המתאם הושלם

המתאם הושלם
המתאם הושלם

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

שלב 5: תוכנה ופרויקטים

תוכנות ופרויקטים
תוכנות ופרויקטים
תוכנות ופרויקטים
תוכנות ופרויקטים

ניתן להוריד את קוד המקור של Mac OS X ו- Linux לעבודה עם המתאם מאתר האינטרנט שלי (קישור ההורדה נמצא בתחתית העמוד). הוא כתוב ב- C, ותצטרך להתקין gcc (לינוקס בדרך כלל כוללת את זה כברירת מחדל, בעוד שמשתמשי Mac יצטרכו להתקין את כלי המפתחים המהווים מתקין אופציונלי על תקליטור מערכת ההפעלה המקורית שלך או שניתן להוריד אותם בחינם מאפל). קוד דוגמה כלול לקריאת חיישן טמפרטורה, להבהב "LED חכם" של BlinkM, כתיבה ואימות EEPROM סדרתי, קריאת בקר נינטנטו Wii Nunchuk (לינוקס בלבד) ותקשורת עם לוח בקר סרוו. למרבה הצער ערכת מתאם זו אינה תואם את כל המערכות. אין תמיכה ב- DDC, ולכן לא כל כרטיסי המסך תומכים ביכולת זו. היה לי בהצלחה עד כה במערכות Mac בעלות שבבי גרפיקה ATI או אינטל, אך למערכות מבוססות NVIDIA אין מזל. בצד לינוקס בדקתי בהצלחה רק IBM ThinkPad A31p (גרפיקה ATI), אבל זה לא יעבוד עם Asus EeePC (אינטל). התמונות כאן מציגות אסדת בדיקה המדגימה התקני I2C שונים בפעולה. המחשב קורא ללא הרף את טמפרטורת הסביבה מחיישן טמפרטורה I2C, רושם מדי פעם את הנתונים האלה לשבב EEPROM טורי של I2C (כן, זה יכול פשוט להדפיס לקובץ, אבל זה היה כדי להדגים עוד יישומי I2C) ולאחר מכן סרוו (דרך בקר I2C) משמש כחוגה חיווי מאולתרת. כשהספרייה וקוד הדוגמא למכשירים אלה כבר קיימים, זה לקח רק כמה דקות להרכיב את ההדגמה הזו (ורוב זה היה ביצירת חיוג המחוון).

מוּמלָץ: