- חיישן איתור טווח VL6180X זמן טיסה (ToF)
- תרשים מעגל
- הוספת ספריות נדרשות עבור חיישן ToF VL6180
- הסבר על תכנות ועבודה
TOF או זמן טיסה היא שיטה נפוצה למדידת מרחק האובייקטים המרוחקים על ידי חיישן מדידת מרחק שונים כמו חיישן קולי. מדידת הזמן שלוקח חלקיק, גל או אובייקט לנסוע מרחק דרך מדיום מכונה זמן הטיסה (TOF). לאחר מכן ניתן להשתמש במדידה זו לחישוב המהירות או אורך הנתיב. זה יכול לשמש גם כדי ללמוד על החלקיק או התכונות של המדיום כגון הרכב או קצב זרימה. ניתן לזהות את האובייקט הנוסע ישירות או בעקיפין.
מכשירי מדידת מרחק קולי הם אחד המכשירים המוקדמים ביותר המשתמשים בעקרון זמן הטיסה. מכשירים אלה פולטים דופק אולטרסאונד ומודדים את המרחק לחומר מוצק על בסיס הזמן שלוקח הגל לקפוץ חזרה לפולט. השתמשנו בחיישן קולי ברבים מהיישומים שלנו כדי למדוד את המרחק:
- מדידת מרחק מבוססת חיישנים וקולי Arduino
- מדוד מרחק באמצעות פטל פי וחיישן קולי HCSR04
- כיצד למדוד מרחק בין שני חיישנים קולי
ניתן להשתמש בשיטת זמן הטיסה גם להערכת ניידות האלקטרונים. למעשה, הוא תוכנן למדידה של סרטים דקים עם מוליכות נמוכה, ומאוחר יותר הוא הותאם למוליכים למחצה נפוצים. טכניקה זו משמשת לטרנזיסטורי אפקט שדה אורגניים כמו גם למבני מתכת דיאלקטריים-מתכתיים. על ידי יישום לייזר או דופק מתח, נוצרים המטענים העודפים.
עקרון ה- TOF משמש למדידת המרחק בין חיישן לאובייקט. נמדד הזמן שלוקח האות לחזור אל החיישן לאחר ההשתקפות מאובייקט והוא משמש לחישוב המרחק. ניתן להשתמש בסוגים שונים של אותות (מובילים) כמו צליל, אור עם עקרון ה- TOF. כאשר TOF משמש למציאת טווחים הוא חזק מאוד כאשר פולט אור ולא קול. בהשוואה לאולטרסאונד הוא מספק קריאה מהירה יותר, דיוק גבוה יותר וטווח גדול יותר, אך עדיין שומר על משקלו הנמוך, גודלו הקטן ומאפייני צריכת החשמל הנמוכים שלו.
כאן במדריך זה נשתמש בחיישן Finder Range VL6180X TOF עם Arduino כדי לחשב את המרחק בין החיישן לאובייקט. חיישן זה אומר גם את ערך עוצמת האור ב- LUX.
חיישן איתור טווח VL6180X זמן טיסה (ToF)
VL6180 שונה מחיישני מרחק אחרים שכן הוא משתמש בשעון מדויק כדי למדוד את הזמן שלוקח לאור להחזיר חזרה מכל משטח. זה מעניק ל- VL6180 יתרון על חיישנים אחרים מכיוון שהוא מדויק יותר וחסין מפני רעשים.
VL6180 היא חבילת 3 ב -1 הכוללת פולט IR, חיישן תאורת סביבה וחיישן טווח. הוא מתקשר באמצעות ממשק I 2 C. יש לו רגולטור 2.8V מובנה. כך שגם אם נחבר מתח גדול מ -2.8 וולט הוא יוסט אוטומטית למטה מבלי לפגוע בלוח. הוא מודד טווח של עד 25 ס"מ. שני GPIO לתכנות מסופקים בו.
תרשים מעגל
כאן LCD ה- Nokia 5110 משמש להצגת רמת האור והמרחק. LCD ה- Nokia 5110 פועל ב -3.3 וולט ולכן לא ניתן לחבר אותו ישירות עם פינים דיגיטליים של Arduino Nano. אז הוסף נגדי 10k בסדרה עם אותות הנתונים כדי להגן על קווי 3.3V מפני פינים דיגיטליים של 5V. למידע נוסף על השימוש ב- Nokia 5110 LCD עם Arduino.
ניתן לחבר את חיישן VL6180 ישירות לארדואינו. התקשורת בין ה- VL6180 לארדואינו היא I2C. למעשה פרוטוקול התקשורת I2C משלב את התכונות הטובות ביותר של SPI ו- UART. כאן אנו יכולים לחבר עבדים מרובים לאדון יחיד ויכולים להיות מספר אדונים השולטים בעבדים בודדים או מרובים. כמו תקשורת UART, I2C משתמש בשני חוטים לתקשורת SDA (Serial Data) ו- SCL (Clock Serial), קו נתונים וקו שעון.
דיאגרמת מעגלים לחיבור חיישן Finder Range VL6180 ToF עם Arduino מוצגת להלן:
- חבר את סיכת ה- RST של ה- LCD לסיכה 6 של Arduino דרך הנגד 10K.
- חבר את סיכת ה- CE של LCD לסיכה 7 של Arduino דרך הנגד 10K.
- חבר את סיכת ה- DC של ה- LCD לסיכה 5 של Arduino דרך הנגד 10K.
- חבר את פין ה- DIN של LCD לסיכה 4 של Arduino דרך הנגד 10K.
- חבר את סיכת ה- CLK של ה- LCD לסיכה 3 של Arduino דרך הנגד 10K.
- חבר את פין ה- VCC של ה- LCD לסיכה 3.3V של Arduino.
- חבר את ה- GND Pin של LCD ל- GND של Arduino.
- חבר את סיכת SCL של VL6180 לסיכה A5 של Arduino
- חבר את סיכת SDA של VL6180 לסיכת A4 של ארדואינו
- חבר את סיכת VCC של VL6180 לסיכה 5V של Arduino
- חבר את סיכת GND של VL6180 לסיכה GND של Arduino
הוספת ספריות נדרשות עבור חיישן ToF VL6180
שלוש ספריות ישמשו בממשק חיישן VL6180 עם Arduino.
1. Adafruit_PCD8544
Adafruit_PCD8544 היא ספרייה לתצוגות LCD המונוכרומיות של Nokia 5110. תצוגות אלה משתמשות ב- SPI לתקשורת. ארבעה או חמישה פינים נדרשים לממשק LCD זה. הקישור להורדת ספרייה זו ניתן להלן:
github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip
2. Adafruit_GFX
ספריית Adafruit_GFX עבור Arduino היא ספריית הגרפיקה המרכזית לתצוגות LCD, ומספקת תחביר משותף ומערך פרימיטיבי גרפי (נקודות, קווים, עיגולים וכו '). זה צריך להיות מזווג עם ספרייה ספציפית לחומרה עבור כל מכשיר תצוגה בו אנו משתמשים (כדי לטפל בפונקציות ברמה התחתונה). הקישור להורדת ספרייה זו ניתן להלן:
github.com/adafruit/Adafruit-GFX-Library
3. SparkFun VL6180
SparkFun_VL6180 היא ספריית Arduino עם פונקציונליות בסיסית של חיישן VL6180. ה- VL6180 מורכב מפולט IR, חיישן טווח וחיישן אור סביבתי אשר מתקשרים באמצעות ממשק I2C. ספרייה זו מאפשרת לך לקרוא את מרחקי יציאות האור מהחיישן, ומוציאה את הנתונים באמצעות חיבור סדרתי. הקישור להורדת ספרייה זו ניתן להלן:
downloads.arduino.cc/libraries/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip
הוסף את כל הספריות אחת אחת על ידי כניסה לסקיצה >> כלול ספרייה >> הוסף ספריית.ZIP בארדואינו IDE. לאחר מכן העלה את הספרייה שהורדת מהקישורים שלמעלה.
לפעמים לא תצטרך להוסיף ספריות חוטים ו- SPI, אך אם אתה מקבל שגיאה אנא הורד והוסף אותם ל- Arduino IDE שלך.
github.com/PaulStoffregen/SPI
github.com/PaulStoffregen/Wire
הסבר על תכנות ועבודה
קוד מלא עם סרטון עבודה ניתן בסוף הדרכה זו, כאן אנו מסבירים את התוכנית המלאה להבנת עבודתו של הפרויקט.
בתוכנית זו רוב החלקים מטופלים על ידי הספריות שהוספנו כך שאינך צריך לדאוג מכך.
ב ההתקנה חלק ים להגדיר את קצב השידור כפי 115,200 ו לאתחל את ספריית בנקאית עבור I2C. ואז בדוק אם חיישן VL6180 עובד כראוי או לא, אם הוא לא פועל אז הראה הודעת שגיאה.
בחלק הבא אנו מגדירים את התצוגה, אתה יכול לשנות את הניגוד לערך הרצוי כאן אני מגדיר אותה כ- 50
הגדרת חלל () { Serial.begin (115200); // התחל סדרתי ב 115200bps Wire.begin (); // התחל עיכוב ספריית I2C (100); // עיכוב. אם (sensor.VL6180xInit ()! = 0) { Serial.println ("נכשל לאפשר"); // אתחל את המכשיר ובדוק אם קיימות שגיאות }; חיישן.VL6180xDefautSettings (); // טען הגדרות ברירת מחדל כדי להתחיל. עיכוב (1000); // עיכוב תצוגת 1s.begin (); // init done // תוכלו לשנות את הניגודיות סביב להתאמת התצוגה // לצפייה הטובה ביותר! display.setContrast (50); display.display (); // הצג תצוגת מסך התזה . clearDisplay (); }
ב לולאה והמבוטלת חלק ההתקנה בהתאם להוראות כדי להציג את הערכים על מסך LCD. כאן אנו מציגים שני ערכים, האחד הוא "רמת האור הסביבתי בלוקס" (לוקס אחד הוא למעשה לומן אחד לכל שטח של מטר רבוע), והשני הוא "מרחק נמדד במ"מ". כדי להציג ערכים שונים על גבי מסך LCD הגדירו את המיקום של כל טקסט שיוצג על גבי מסך ה- LCD באמצעות "display.setCursor (0,0);".
loop loop () { display.clearDisplay (); // קבל רמת אור הסביבה ודיווח ב- LUX Serial.print ("רמת התאורה הסביבתית (לוקס) ="); Serial.println (sensor.getAmbientLight (GAIN_1)); display.setTextSize (1); display.setTextColor (שחור); display.setCursor (0,0); display.println ("רמת אור"); display.setCursor (0,12); display.println (sensor.getAmbientLight (GAIN_1)); // קבל מרחק ודיווח במ"מ Serial.print ("מרחק נמדד (מ"מ) ="); Serial.println (sensor.getDistance ()); display.setTextSize (1); display.setTextColor (שחור); display.setCursor (0, 24); display.println ("מרחק (מ"מ) ="); display.setCursor (0, 36); b = sensor.getDistance (); display.println (ב); display.display (); עיכוב (500); }
לאחר העלאת התוכנית, פתח את המסך הטורי והוא אמור להציג את הפלט כמוצג להלן.
מציאי טווח ה- VL6180 TOF משמשים בסמארטפונים, מכשירי מסך מגע ניידים, טאבלט, מחשב נייד, מכשירי משחק ומכשירים ביתיים / מכשירים תעשייתיים.
כאן אנו מציגים את רמת האור הסביבתי ב- Lux ואת המרחק ב- mm.
מצא את התוכנית המלאה ואת סרטון ההדגמה להלן. בדוק גם כיצד למדוד מרחק באמצעות חיישן אולטראסוני ורמת אור באמצעות חיישן אור הסביבה BH1750.