فهرست مطالب:

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
تصویری: LoRaWAN LWHD-WM420 Long-Distance Wireless Inclinometer Accuracy 0.05° 2024, جولای
Anonim
Benewake TFmini - LiDAR ارزان قیمت با Teensy 3.5
Benewake TFmini - LiDAR ارزان قیمت با Teensy 3.5

واحد Benewake TFmini LiDAR یک سنسور LiDAR کوچک و بسیار سبک با قیمت حدود 50 دلار کانادایی است. مستندات خوب بود ، اما ناقص بود. این اطلاعات در مورد دریافت داده ها از سنسور ارائه کرد ، اما فراموش کرد که سیگنال مورد نیاز برای قرار دادن سنسور در حالت پیش فرض را ذکر کند تا در واقع داده ها را ارسال کند. خوشبختانه در سند اشکال زدایی وجود داشت.

بنابراین این چیزی است که برای من کار کرد و واقعاً یک دستگاه آسان برای کار است.

من استفاده از Teensy 3.5 را انتخاب کردم زیرا دارای چندین پورت سریال HW است ، برای دریافت داده ها و پردازش آن بدون اجازه انباشته شدن داده ها بیش از حد سریع است. فقط برای سرگرمی از کتابخانه Teensy 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 وصل کنید (Serial RX)

مهار سیمی موجود برای کار با من روی تخته نان بسیار کوچک بود ، بنابراین انتهای روبه روی TFmini را قطع کردم و سیم ها را به یک تخته نورد لحیم کردم ، یک کانکتور JST را به تخته شکن اضافه کردم و یک JST به پرش مرد ساختم. مهار سیم

مرحله 2: کد را اجرا کنید

از کد زیر (برای Teensy 3.5) استفاده کنید یا فایل پیوست را بارگیری کنید:

برای آردوینو مگا ، نخ بندی به احتمال زیاد کار نخواهد کرد. کد را از عملکرد readLiDAR به حلقه اصلی منتقل کنید و هر چیزی را که مربوط به رشته می شود حذف کنید.

#شامل #شامل "TeensyThreads.h"

// استفاده از کابل ارائه شده:

// - سیاه = GND (متصل به GND) // - قرمز = 5V (4.5 - 6.0V) (متصل به Vin در Teensy 3.5 ، یا 5V در آردوینو) // - سفید = TFmini RX (معروف به اتصال به میکروکنترلر TX ، pin1 در Teensy 3.5) // - سبز = TFmini TX (معروف به اتصال به میکروکنترلر RX ، pin0 در Teensy 3.5) // توجه: برای این طرح به یک میکروکنترلر با پورت های سریال اضافی فراتر از پورت متصل به کابل USB نیاز دارید / / این شامل Arduino MEGA (استفاده از Serial1) ، Teensy (3.x) (استفاده از یکی از اتصالات سریال HW موجود است)

فرار int liDARval = 0؛

void readLiDAR () {

// فرمت داده برای Benewake TFmini // ============================ // کل 9 بایت در هر پیام: // 1) 0x59 // 2) 0x59 // 3) Dist_L (کم 8bit) // 4) Dist_H (زیاد 8bit) // 5) Strength_L (کم 8bit) // 6) Strength_H (high 8bit) // 7) بایت های رزرو شده // 8) درجه کیفیت سیگنال اصلی // 9) بیت برابری چک (پایین 8bit) ، Checksum = Byte1 +Byte2 +… +Byte8. این فقط 8 بیت پایین است هر چند در حالی که (1) {// تا ابد ادامه دهید (Serial1.available ()> = 9) // هنگامی که حداقل 9 بایت داده در دسترس باشد (تعداد بایت مورد انتظار برای 1 سیگنال) ، سپس {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // بایت 1 و بایت 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؛ برای (int i = 0؛ i <3؛ i ++) Serial1.read ()؛ // بایت 7 ، 8 ، 9 نادیده گرفته می شود}}}}

void setup ()

{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 نمایش نتایج در Serial Plotter

با استفاده از Arduino IDE نمایش نتایج در Serial Plotter
با استفاده از Arduino IDE نمایش نتایج در Serial Plotter

می توانید از هر روشی که می خواهید استفاده کنید ، اما IDE آردوینو نتایج را به خوبی ترسیم می کند.

به Teensy وصل شوید و Serial Monitor را باز کنید. اطمینان حاصل کنید که Baudrate روی 115200 تنظیم شده است.

توصیه شده: