Mündəricat:

Benewake TFmini - Teensy 3.5: 3 Addımlı Ucuz LiDAR
Benewake TFmini - Teensy 3.5: 3 Addımlı Ucuz LiDAR

Video: Benewake TFmini - Teensy 3.5: 3 Addımlı Ucuz LiDAR

Video: Benewake TFmini - Teensy 3.5: 3 Addımlı Ucuz LiDAR
Video: XRAD'S REAL LIDAR SCANNER part 3 2024, Iyul
Anonim
Benewake TFmini - Teensy 3.5 ilə Ucuz LiDAR
Benewake TFmini - Teensy 3.5 ilə Ucuz LiDAR

Benewake TFmini LiDAR vahidi, təxminən 50 dollarlıq Kanadalı kiçik, çox yüngül LiDAR sensordur. Sənədlər yaxşı idi, amma natamam idi. Sensordan məlumatların alınması ilə bağlı təfərrüatlar verdi, ancaq məlumatları əslində göndərməsi üçün sensorun standart rejimə keçməsi üçün lazım olan siqnalın qeyd edilməsini unutdu. Xoşbəxtlikdən bu, ayıklama sənədində idi.

Mənim üçün işləyən budur və işləmək həqiqətən də asan bir cihazdır.

Teensy 3.5 istifadə etməyi seçdim, çünki birdən çox HW Serial portu var, məlumatların yığılmasına icazə vermədən məlumatları qəbul etmək və emal etmək üçün kifayət qədər sürətlidir. Verilənləri kodun qalan hissəsindən ayırmaq üçün əylənmək üçün Teensy Threading kitabxanasından istifadə etdim.

Addım 1: TFmini Teensy 3.5 -ə qoşmaq (Arduino Mega üçün oxşar)

TFmini Teensy 3.5 -ə qoşmaq (Arduino Mega üçün oxşar)
TFmini Teensy 3.5 -ə qoşmaq (Arduino Mega üçün oxşar)

Bu nümunə iki ardıcıl əlaqə tələb edir: biri TFmini, digəri isə nəticələrinizi kompüterinizdə göstərmək üçün. Bu səbəbdən və deyə bildiyim qədər yalnız bu səbəbdən, bu xüsusi nümunə Arduino Mega və ya Teensy 3.x -dən aşağı heç bir şeydə işləməyəcəkdir.

Deyilənə görə, kompüter ekranına çap etmək üçün seriya çıxışı tələb etməyən tətbiqlər üçün eyni layihə uyğunlaşdırılmalıdır.

Daxil edilmiş tel kəmərindən istifadə edərək:

1) qara teli Teensy GND -yə bağlayın (VDC fərqi istifadə edilərsə, zəminin Teensy -də GND -ə keçməsini təmin edin)

2) qırmızı teli Teensy Vin -ə (və ya 5VDC mənbəyinə) qoşun

3) ağ teli (TFmini RX) Teensy (Serial1 TX) pin 1 -ə qoşun

4) yaşıl teli (TFmini TX) Teensy -də (Serial RX) 0 pininə qoşun

Daxil edilmiş tel kəməri çörək taxtasında işləyə bilməyim üçün çox kiçik idi, buna görə də TFmini -nin qarşısındakı ucunu kəsdim və telləri çörək taxtasına lehimlədim, qırılma taxtasına JST konnektoru əlavə etdim və kişi tullananlara JST düzəltdim. tel qoşqu.

Addım 2: İşlətmək üçün Kod

Aşağıdakı kodu istifadə edin (Teensy 3.5 üçün) və ya əlavə edilmiş faylı yükləyin:

Arduino Mega üçün yiv açma çox güman ki işləməyəcək. Kodu readLiDAR funksiyasından əsas döngəyə köçürün və iş parçacığı ilə əlaqəli hər şeyi silin.

#daxil edin "TeensyThreads.h" daxil edin

// Verilən kabeldən istifadə edərək:

// - Qara = GND (GND -yə qoşulur) // - Qırmızı = 5V (4.5 - 6.0V) (Teinsy 3.5 -də Vin -ə və ya Arduino -da 5V -ə qoşulur) // - Ağ = TFmini RX (aka. TX mikrokontrolörünə qoşulun), Pin1 Teensy 3.5 -də) // - Yaşıl = TFmini TX (aka. RX mikrokontrollerinə qoşulun, Teensy 3.5 -də pin0) // QEYD: bu eskiz üçün USB kabelinə qoşulduğundan əlavə əlavə seriyalı portları olan bir mikro nəzarətçi lazımdır / / Bura Arduino MEGA (Serial1 istifadə), Teensy (3.x) daxildir (mövcud HW Serial əlaqələrindən birini istifadə edin)

uçucu int liDARval = 0;

etibarsız readLiDAR () {

// Benewake TFmini üçün Məlumat Formatı // ============================== // Mesaj başına 9 bayt: // 1) 0x59 // 2) 0x59 // 3) Dist_L (aşağı 8 bit) // 4) Dist_H (yüksək 8 bit) // 5) Güc_L (aşağı 8 bit) // 6) Güc_H (yüksək 8 bit) // 7) Ayrılmış baytlar // 8) Orijinal siqnal keyfiyyət dərəcəsi // 9) Checksum parite bit (aşağı 8bit), Checksum = Byte1 +Byte2 +… +Byte8. (1) {// Əbədi davam edin (Serial1.available ()> = 9) // Ən az 9 bayt məlumat olduqda (1 siqnal üçün gözlənilən bayt sayı) {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // bayt 1 və bayt 2 {işarəsiz int t1 = Serial1.read (); // bayt 3 = Dist_L işarəsiz int t2 = Serial1.read (); // bayt 4 = Dist_H t2 << = 8; t2 += t1; liDARval = t2; t1 = Serial1.read (); // bayt 5 = Strength_L t2 = Serial1.read (); // bayt 6 = Güc_H t2 << = 8; t2 += t1; for (int i = 0; i <3; i ++) Serial1.read (); // bayt 7, 8, 9 nəzərə alınmır}}}}

boş quraşdırma ()

{Serial1.begin (115200); // TFmini Serial.begin üçün HW Serial (115200); // Kompüterin gecikməsinə USB vasitəsilə seriya çıxışı (100); // İşlərə başlamaq üçün bir az vaxt verin // Standart Çıxış rejiminə qoyun 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) -dan serial girişi oxumaq üçün konfiqurasiya; }

boşluq döngəsi ()

{gecikmə (10); // 100Hz Serial.println (liDARval) tez -tez TFmini nümunələri kimi oxumaq istəmirəm; }

Addım 3: Arduino IDE Görünüş Nəticələrini Serial Plotterdə istifadə edin

Arduino IDE -dən İstifadə Serial Plotterdə Nəticələri Bax
Arduino IDE -dən İstifadə Serial Plotterdə Nəticələri Bax

İstədiyiniz hər hansı bir üsuldan istifadə edə bilərsiniz, ancaq Arduinonun IDE nəticələri gözəl tərtib edəcək.

Teensy -yə qoşulun və Serial Monitoru açın. Baudrate'nin 115200 olaraq ayarlandığından əmin olun.

Tövsiyə: