Cov txheej txheem:

Benewake TFmini - Tsis kim LiDAR Nrog Teensy 3.5: 3 Cov Kauj Ruam
Benewake TFmini - Tsis kim LiDAR Nrog Teensy 3.5: 3 Cov Kauj Ruam

Video: Benewake TFmini - Tsis kim LiDAR Nrog Teensy 3.5: 3 Cov Kauj Ruam

Video: Benewake TFmini - Tsis kim LiDAR Nrog Teensy 3.5: 3 Cov Kauj Ruam
Video: [BizSmart] Ep.61 - LiDAR sensor / Water treatment system / Electronic communication modules 2024, Kaum ib hlis
Anonim
Benewake TFmini - Tsis kim LiDAR Nrog Teensy 3.5
Benewake TFmini - Tsis kim LiDAR Nrog Teensy 3.5

Benewake TFmini LiDAR chav tsev me me, hnyav heev LiDAR sensor rau kwv yees li $ 50 Canadian. Cov ntaub ntawv tau zoo, tab sis tsis tiav. Nws tau muab cov ntsiab lus ntawm kev tau txais cov ntaub ntawv los ntawm lub ntsuas cua, tab sis tsis nco qab hais txog lub teeb liab xav tau los tso lub sensor rau hauv lub hom phiaj ua ntej kom nws thiaj li xa cov ntaub ntawv. Luckily uas yog nyob rau hauv cov ntaub ntawv debugging.

Yog li qhov no yog dab tsi ua haujlwm rau kuv, thiab nws yog lub cuab yeej yooj yim los ua haujlwm nrog.

Kuv tau xaiv los siv Teensy 3.5 vim nws muaj ntau lub HW Serial chaw nres nkoj, nws tau nrawm dua txaus kom tau txais cov ntaub ntawv thiab txheej txheem nws yam tsis pub cov ntaub ntawv khaws cia. Tsuas yog rau kev lom zem Kuv siv Teensy Threading library los cais kom tau txais cov ntaub ntawv los ntawm tus lej seem.

Kauj Ruam 1: Txuas TFmini rau Teensy 3.5 (zoo ib yam rau Arduino Mega)

Txuas TFmini rau Teensy 3.5 (zoo ib yam rau Arduino Mega)
Txuas TFmini rau Teensy 3.5 (zoo ib yam rau Arduino Mega)

Qhov piv txwv no xav tau ob qhov txuas txuas: ib qho rau TFmini, thiab ib qho los tso tawm cov txiaj ntsig ntawm koj lub computer. Vim li no, thiab kom deb li kuv tuaj yeem qhia, qhov laj thawj no nkaus xwb, qhov piv txwv tshwj xeeb no yuav tsis ua haujlwm ntawm ib yam hauv qab Arduino Mega lossis Teensy 3.x.

Uas tau hais tias, rau daim ntawv thov tsis xav tau cov ntawv tso tawm kom luam tawm rau lub computer screen, tib txoj haujlwm yuav tsum hloov pauv.

Siv suav nrog cov hlua hlau:

1) txuas cov xaim dub rau Teensy GND (yog tias siv qhov sib txawv VDC qhov chaw, xyuas kom hauv av kuj mus rau GND ntawm Teensy)

2) txuas cov hlau liab rau Teensy Vin (lossis 5VDC qhov chaw)

3) txuas cov xaim dawb (TFmini RX) rau tus pin 1 ntawm Teensy (Serial1 TX)

4) txuas cov hlau ntsuab (TFmini TX) rau tus pin 0 ntawm Teensy (Serial RX)

Cov xaim hluav taws xob me me dhau rau kuv ua haujlwm nrog ntawm lub rooj mov ci, yog li kuv txiav tawm qhov kawg rov qab ntawm TFmini, thiab muab cov xov hlau txuas rau lub khob cij, ntxiv JST txuas rau lub rooj sib tham, thiab ua JST rau txiv neej jumper xaim hlua.

Kauj ruam 2: Txoj Cai Kom Ua Nws

Siv cov cai hauv qab no (rau Teensy 3.5) lossis rub tawm cov ntawv txuas nrog:

Rau Arduino Mega, xov yuav zoo li yuav tsis ua haujlwm. Tsiv cov cai los ntawm readLiDAR ua haujlwm rau lub voj loj, thiab tshem tawm txhua yam cuam tshuam nrog xov.

#include #include "TeensyThreads.h"

// Siv cov khoom siv cable:

// - Dub = GND (txuas nrog GND) // - Liab = 5V (4.5 - 6.0V) (txuas nrog Vin ntawm Teensy 3.5, lossis 5V ntawm Arduino) // - Dawb = TFmini RX (aka txuas rau microcontroller TX, pin1 ntawm Teensy 3.5) // - Ntsuab = TFmini TX (aka. txuas rau microcontroller RX, pin0 ntawm Teensy 3.5) // NCO TSEG: rau qhov kos duab no koj xav tau microcontroller nrog cov txuas ntxiv txuas ntxiv ib qho txuas nrog USB cable / / Qhov no suav nrog Arduino MEGA (siv Serial1), Teensy (3.x) (siv ib qho ntawm HW Serial txuas)

volatile int liDARval = 0;

void readLiDAR () {

// Cov Qauv Ntaub Ntawv rau Benewake TFmini // =============================== // 9 bytes tag nrho cov lus: // 1) 0x59 // 2) 0x59 // 3) Dist_L (qis 8bit) // 4) Dist_H (siab 8bit) // 5) Muaj zog_L (qis 8bit) // 6) Muaj zog_H (siab 8bit) // 7) Tshwj xeeb bytes // 8) Thawj lub teeb liab zoo // 9) Checksum parity ntsis (qis 8 ntsis), Checksum = Byte1 +Byte2 +… +Byte8. Qhov no tsuas yog qhov tsawg kawg 8bit txawm hais tias thaum (1) {// Khaws mus ib txhis thaum (Serial1.available ()> = 9) // Thaum tsawg kawg 9 bytes ntawm cov ntaub ntawv muaj (xav tau tus lej ntawm bytes rau 1 lub teeb liab), tom qab ntawd nyeem {yog ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // byte 1 thiab 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 = Strength_L t2 = Serial1.read (); // byte 6 = Lub zog_H t2 << = 8; t2 += t1; rau (int i = 0; i <3; i ++) Serial1.read (); // byte 7, 8, 9 tsis quav ntsej}}}}

void teeb tsa ()

{Serial1.begin (115200); // HW Serial rau TFmini Serial.begin (115200); // Serial output los ntawm USB rau lub computer qeeb (100); // Muab sijhawm me ntsis rau yam pib // teeb tsa rau 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); // Teeb xov rau nyeem cov ntawv nkag los ntawm TFmini threads.addThread (readLiDAR); }

void lub voj ()

{ncua (10); // Tsis txhob xav nyeem ntau zaus li TFmini kuaj ntawm 100Hz Serial.println (liDARval); }

Kauj Ruam 3: Siv Arduino IDE Saib Cov txiaj ntsig hauv Serial Plotter

Siv Arduino IDE Saib Cov Ntsiab Lus hauv Cov Plotter
Siv Arduino IDE Saib Cov Ntsiab Lus hauv Cov Plotter

Koj tuaj yeem siv txhua txoj hauv kev uas koj xav tau, tab sis Arduino's IDE yuav npaj cov txiaj ntsig kom zoo.

Txuas rau Teensy, thiab qhib Serial Monitor. Xyuas kom Baudrate tau teeb tsa rau 115200.

Pom zoo: