Talaan ng mga Nilalaman:

Benewake TFmini - Murang LiDAR Sa Teensy 3.5: 3 Mga Hakbang
Benewake TFmini - Murang LiDAR Sa Teensy 3.5: 3 Mga Hakbang

Video: Benewake TFmini - Murang LiDAR Sa Teensy 3.5: 3 Mga Hakbang

Video: Benewake TFmini - Murang LiDAR Sa Teensy 3.5: 3 Mga Hakbang
Video: WOW TO SEE IS TO BELIEVE!!! GOLD SCANNER NA HI-TECH. 2024, Nobyembre
Anonim
Benewake TFmini - Murang LiDAR Sa Teensy 3.5
Benewake TFmini - Murang LiDAR Sa Teensy 3.5

Ang unit ng Benewake TFmini LiDAR ay isang maliit, napakagaan ng timbang na sensor ng LiDAR sa halos $ 50 Canada. Ang dokumentasyon ay mabuti, ngunit hindi kumpleto. Nagbigay ito ng mga detalye sa pagtanggap ng data mula sa sensor, ngunit nakalimutan na banggitin ang signal na kinakailangan upang ilagay ang sensor sa default mode upang maipadala talaga nito ang data. Sa kabutihang palad ay nasa dokumento ng pag-debug iyon.

Kaya't ito ang gumana para sa akin, at ito ay talagang isang madaling aparato upang gumana.

Pinili kong gumamit ng isang Teensy 3.5 dahil mayroon itong maraming mga HW Serial port, higit pa sa sapat na mabilis upang makatanggap ng data at iproseso ito nang hindi pinapayagan ang data na mag-ipon. Para lamang sa kasiyahan ginamit ko ang Teensy Threading library upang paghiwalayin ang pagkuha ng data mula sa natitirang code.

Hakbang 1: Pagkonekta sa TFmini sa Teensy 3.5 (katulad para sa Arduino Mega)

Pagkonekta sa TFmini sa Teensy 3.5 (katulad para sa Arduino Mega)
Pagkonekta sa TFmini sa Teensy 3.5 (katulad para sa Arduino Mega)

Ang halimbawang ito ay nangangailangan ng dalawang koneksyon sa serial: isa sa TFmini, at isa upang ipakita ang mga resulta sa iyong computer. Para sa kadahilanang ito, at hanggang sa masasabi ko, ang dahilang ito lamang, ang partikular na halimbawang ito ay hindi gagana sa anumang bagay sa ibaba ng isang Arduino Mega o Teensy 3.x.

Sinabi na, para sa mga application na hindi nangangailangan ng serial output upang mai-print sa computer screen, ang parehong proyekto ay dapat na naaangkop.

Paggamit ng kasama na wire harness:

1) ikonekta ang itim na kawad sa Teensy GND (kung gumagamit ng pagkakaiba ng mapagkukunan ng VDC, tiyakin na ang lupa ay pupunta rin sa GND sa Teensy)

2) ikonekta ang pulang kawad sa Teensy Vin (o 5VDC na mapagkukunan)

3) ikonekta ang puting wire (TFmini RX) upang i-pin ang 1 sa Teensy (Serial1 TX)

4) ikonekta ang berdeng kawad (TFmini TX) upang i-pin 0 sa Teensy (Serial RX)

Ang kasama na wire harness ay masyadong maliit para sa akin upang gumana sa isang board ng tinapay, kaya pinutol ko ang dulo sa tapat ng TFmini, at hinangin ang mga wire sa isang breadboard, magdagdag ng isang konektor ng JST sa breakboard, at gumawa ng isang JST sa male jumper wire harness.

Hakbang 2: Code upang Patakbuhin Ito

Gamitin ang sumusunod na code (para sa Teensy 3.5) o i-download ang nakalakip na file:

Para kay Arduino Mega, malamang na hindi gagana ang pag-thread. Ilipat ang code mula sa function na readLiDAR patungo sa pangunahing loop, at alisin ang anumang nauugnay sa pag-thread.

# isama ang # isama ang "TeensyThreads.h"

// Paggamit ng ibinigay na cable:

// - Black = GND (konektado sa GND) // - Red = 5V (4.5 - 6.0V) (konektado sa Vin sa Teensy 3.5, o 5V sa Arduino) // - White = TFmini RX (aka. Kumonekta sa microcontroller TX, pin1 sa Teensy 3.5) // - Green = TFmini TX (aka. kumonekta sa microcontroller RX, pin0 sa Teensy 3.5) // TANDAAN: para sa sketch na ito kailangan mo ng isang microcontroller na may mga karagdagang serial port na lampas sa isang konektado sa USB cable / / Kasama rito ang Arduino MEGA (gumamit ng Serial1), Teensy (3.x) (gumamit ng isa sa mga magagamit na HW Serial na koneksyon)

pabagu-bago ng isip int liDARval = 0;

walang bisa ang readLiDAR () {

// Format ng Data para sa Benewake TFmini // =_ // // 9 bytes total per message: // 1) 0x59 // 2) 0x59 // 3) Dist_L (low 8bit) // 4) Dist_H (high 8bit) // 5) Lakas_L (mababang 8bit) // 6) Lakas_H (mataas 8bit) // 7) Nakareserba ng mga byte // 8) Orihinal na degree na kalidad ng signal // 9) Bit ng pagkakapareho ng Checksum (mababang 8bit), Checksum = Byte1 + Byte2 +… + Byte8. Mababang 8bit lamang ito habang (basahin ang {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // byte 1 at byte 2 {unsigned int t1 = Serial1.read (); // byte 3 = Dist_L unsigned int t2 = Serial1.read (); // byte 4 = Dist_H t2 << = 8; t2 + = t1; liDARval = t2; t1 = Serial1.read (); // byte 5 = Lakas_L t2 = Serial1.read (); // byte 6 = Lakas_H t2 << = 8; t2 + = t1; para sa (int i = 0; i <3; i ++) Serial1.read (); // byte 7, 8, 9 ay hindi pinapansin}}}}

walang bisa ang pag-setup ()

{Serial1.begin (115200); // HW Serial para sa TFmini Serial.begin (115200); // Serial output sa pamamagitan ng USB upang maantala ang computer (100); // Bigyan ng kaunting oras para magsimula ang mga bagay // Itakda sa Standard Output mode Serial1.write (0x42); Serial1.write (0x57); Serial1.write (0x02); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x01); Serial1.write (0x06); // Setup thread para sa pagbabasa ng serial input mula sa mga TFmini threads.addThread (readLiDAR); }

walang bisa loop ()

{pagkaantala (10); // Ayaw mong basahin nang madalas bilang mga sample ng TFmini sa 100Hz Serial.println (liDARval); }

Hakbang 3: Paggamit ng Arduino IDE View Mga Resulta sa Serial Plotter

Paggamit ng Arduino IDE View Mga Resulta sa Serial Plotter
Paggamit ng Arduino IDE View Mga Resulta sa Serial Plotter

Maaari mong gamitin ang anumang pamamaraan na nais mo, ngunit ang IDE ng Arduino ay balangkas ng mabuti ang mga resulta.

Kumonekta sa Teensy, at buksan ang Serial Monitor. Tiyaking ang Baudrate ay nakatakda sa 115200.

Inirerekumendang: