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

Benewake TFmini - LiDAR זול עם Teensy 3.5: 3 שלבים
Benewake TFmini - LiDAR זול עם Teensy 3.5: 3 שלבים

וִידֵאוֹ: Benewake TFmini - LiDAR זול עם Teensy 3.5: 3 שלבים

וִידֵאוֹ: Benewake TFmini - LiDAR זול עם Teensy 3.5: 3 שלבים
וִידֵאוֹ: מדריך I2C חלק 3 בניית מעגל עם RTC ,LCD ,PCF8574, ארדוינו 2024, יולי
Anonim
Benewake TFmini - LiDAR זול עם Teensy 3.5
Benewake TFmini - LiDAR זול עם Teensy 3.5

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

אז זה מה שעבד בשבילי, וזה באמת מכשיר שקל לעבוד איתו.

בחרתי להשתמש ב- Teensy 3.5 מכיוון שיש לו מספר יציאות סידורי HW, זה יותר מהר מספיק כדי לקבל נתונים ולעבד אותם מבלי לתת לנתונים להצטבר. סתם בשביל הכיף השתמשתי בספריית ה- Thensy Threading כדי להפריד את קבלת הנתונים משאר הקוד.

שלב 1: חיבור TFmini ל- Teensy 3.5 (דומה ל- Arduino Mega)

חיבור TFmini ל- Teensy 3.5 (דומה ל- Arduino Mega)
חיבור TFmini ל- Teensy 3.5 (דומה ל- Arduino Mega)

דוגמה זו דורשת שני חיבורים סדרתיים: אחד ל- TFmini, ואחד להצגת תוצאות במחשב שלך. מסיבה זו, וככל שאני יכול להבין, מסיבה זו בלבד, הדוגמה הספציפית הזו לא תעבוד על שום דבר מתחת ל- Arduino Mega או Teensy 3.x.

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

שימוש ברתמת חוט כלולה:

1) חבר את החוט השחור ל- Teensy GND (אם אתה משתמש במקור VDC שונה, וודא שהקרקע עוברת גם ל- GND ב- Teensy)

2) חבר חוט אדום ל- Teensy Vin (או מקור 5VDC)

3) חבר חוט לבן (TFmini RX) לסיכה 1 ב- Teensy (Serial1 TX)

4) חבר חוט ירוק (TFmini TX) לסיכה 0 ב- Teensy (סידורי RX)

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

שלב 2: קוד להפעלה

השתמש בקוד הבא (עבור Teensy 3.5) או הורד את הקובץ המצורף:

עבור Arduino Mega, השחלה כנראה לא תעבוד. העבר את הקוד מפונקציית readLiDAR ללולאה הראשית והסר כל מה שקשור לשרשור.

#include #include "TeensyThreads.h"

// שימוש בכבל המסופק:

// - שחור = GND (מחובר ל- GND) // - אדום = 5V (4.5 - 6.0V) (מחובר ל- Vin ב- Teensy 3.5, או 5V ב- Arduino) // - לבן = TFmini RX (aka. להתחבר למיקרו -בקר TX, pin1 ב- Teensy 3.5) // - ירוק = TFmini TX (aka. להתחבר למיקרו -בקר RX, pin0 ב- Teensy 3.5) // הערה: עבור סקיצה זו אתה צריך מיקרו -בקר עם יציאות טוריות נוספות מעבר לזה המחובר לכבל USB / / זה כולל Arduino MEGA (השתמש ב- Serial1), Teensy (3.x) (השתמש באחד מהחיבורים הזמינים של HW Serial)

נדיף int liDARval = 0;

void readLiDAR () {

// פורמט נתונים עבור Benewake TFmini 1) 0x59 // 2) 0x59 // 3) Dist_L (נמוך 8bit) // 4) Dist_H (גבוהה 8bit) // 5) Strength_L (נמוך 8bit) // 6) Strength_H (גבוהה 8bit) // 7) בתים שמורים // 8) דרגת איכות אות מקורית // 9) סיביות זוגיות של בדיקת סכום (8 ביט נמוך), בדיקת סכום = Byte1 +Byte2 +… +Byte8. זהו רק 8 ביט נמוך אם כי (1) {// המשך כך לתמיד (Serial1.available ()> = 9) // כאשר לפחות 9 בתים של נתונים זמינים (מספר בייטים צפוי לאות אחד), אז קרא {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // byte 1 and byte 2 {unsigned int t1 = Serial1.read (); // בת 3 = Dist_L unsigned int t2 = Serial1.read (); // בת 4 = Dist_H t2 << = 8; t2 += t1; liDARval = t2; t1 = Serial1.read (); // בייט 5 = Strength_L t2 = Serial1.read (); // בת 6 = Strength_H t2 << = 8; t2 += t1; for (int i = 0; i <3; i ++) Serial1.read (); // בייט 7, 8, 9 מתעלמים}}}}

הגדרת חלל ()

{Serial1.begin (115200); // סדרת HW עבור TFmini Serial.begin (115200); // פלט סדרתי באמצעות עיכוב USB למחשב (100); // תן קצת זמן לדברים להתחיל // הגדר למצב פלט רגיל Serial1.write (0x42); Serial1.write (0x57); Serial1.write (0x02); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x01); Serial1.write (0x06); // שרשור התקנה לקריאת קלט סידורי מ- TFmini threads.addThread (readLiDAR); }

לולאת חלל ()

{עיכוב (10); // לא רוצה לקרוא לעתים קרובות מדי כדוגמאות TFmini ב- 100Hz Serial.println (liDARval); }

שלב 3: שימוש ב- Arduino IDE הצג תוצאות במגרש סידורי

שימוש ב- Arduino IDE הצג תוצאות במגרש סידורי
שימוש ב- Arduino IDE הצג תוצאות במגרש סידורי

אתה יכול להשתמש בכל שיטה שתרצה, אך ה- IDE של Arduino יתווה את התוצאות בצורה יפה.

התחבר ל- Teensy ופתח את צג סידורי. ודא כי Baudrate מוגדר ל- 115200.

מוּמלָץ: