Indholdsfortegnelse:

Benewake TFmini - Billig LiDAR Med Teensy 3.5: 3 trin
Benewake TFmini - Billig LiDAR Med Teensy 3.5: 3 trin

Video: Benewake TFmini - Billig LiDAR Med Teensy 3.5: 3 trin

Video: Benewake TFmini - Billig LiDAR Med Teensy 3.5: 3 trin
Video: Момент поиска сокровищ. / Мы нашли сокровище с металлоискателем Gold Legend 2024, November
Anonim
Benewake TFmini - Billig LiDAR Med Teensy 3.5
Benewake TFmini - Billig LiDAR Med Teensy 3.5

Benewake TFmini LiDAR -enheden er en lille, meget let LiDAR -sensor til omkring $ 50 canadiske. Dokumentationen var god, men ufuldstændig. Det gav detaljer om modtagelse af data fra sensoren, men glemte at nævne det signal, der er nødvendigt for at sætte sensoren i standardtilstand, så den faktisk sender dataene. Det var heldigvis i fejlfindingsdokumentet.

Så det er det, der fungerede for mig, og det er virkelig en let enhed at arbejde med.

Jeg valgte at bruge en Teensy 3.5, da den har flere HW serielle porte, den er mere end hurtig nok til at modtage data og behandle dem uden at lade data hobe sig op. Bare for sjov brugte jeg Teensy Threading -biblioteket til at adskille at få dataene fra resten af koden.

Trin 1: Tilslutning af TFmini til Teensy 3.5 (lignende for Arduino Mega)

Tilslutning af TFmini til Teensy 3.5 (lignende for Arduino Mega)
Tilslutning af TFmini til Teensy 3.5 (lignende for Arduino Mega)

Dette eksempel kræver to serielle forbindelser: en til TFmini og en for at vise resultater på din computer. Af denne grund, og så vidt jeg kan se, kun denne grund, fungerer dette særlige eksempel ikke på noget under en Arduino Mega eller Teensy 3.x.

Når det er sagt, for applikationer, der ikke kræver seriel output for at udskrive til computerskærm, bør det samme projekt kunne tilpasses.

Brug af medfølgende ledningsnet:

1) tilslut sort ledning til Teensy GND (hvis du bruger forskel VDC -kilde, skal du sørge for, at jorden også går til GND på Teensy)

2) tilslut rød ledning til Teensy Vin (eller 5VDC kilde)

3) Tilslut hvid ledning (TFmini RX) til pin 1 på Teensy (Serial1 TX)

4) tilslut grøn ledning (TFmini TX) til pin 0 på Teensy (Serial RX)

Den medfølgende ledningssele var for lille til, at jeg kunne arbejde med den på et brødbræt, så jeg afbrød enden overfor TFmini og lodde ledningerne til et brødbræt, tilføjede et JST -stik til opslagstavlen og lavede en JST til mandlig jumper ledningsnet.

Trin 2: Kode for at køre det

Brug følgende kode (til Teensy 3.5), eller download den vedhæftede fil:

For Arduino Mega virker trådning sandsynligvis ikke. Flyt kode fra readLiDAR -funktionen til hovedsløjfen, og fjern alt, der er relateret til trådning.

#include #include "TeensyThreads.h"

// Brug af medfølgende kabel:

// - Sort = GND (tilsluttet GND) // - Rød = 5V (4,5 - 6,0V) (tilsluttet Vin på Teensy 3,5 eller 5V på Arduino) // - Hvid = TFmini RX (aka. Tilslutning til mikrokontroller TX, pin1 på Teensy 3.5) // - Grøn = TFmini TX (aka. tilslutning til mikrokontroller RX, pin0 på Teensy 3.5) // BEMÆRK: til denne skitse har du brug for en mikrokontroller med yderligere serielle porte ud over den, der er tilsluttet USB -kablet / / Dette inkluderer Arduino MEGA (brug Serial1), Teensy (3.x) (brug en af de tilgængelige HW Serial -forbindelser)

flygtig int liDARval = 0;

void readLiDAR () {

// Dataformat for Benewake TFmini // =============================== // 9 bytes i alt pr. Besked: // 1) 0x59 // 2) 0x59 // 3) Dist_L (lav 8bit) // 4) Dist_H (høj 8bit) // 5) Strength_L (lav 8bit) // 6) Strength_H (høj 8bit) // 7) Reserverede bytes // 8) Original signalkvalitetsgrad // 9) Checksum paritetsbit (lav 8bit), Checksum = Byte1 +Byte2 +… +Byte8. Dette er dog kun en lav 8bit, mens (1) {// Fortsæt for evigt mens (Serial1.available ()> = 9) // Når mindst 9 bytes data er tilgængelige (forventet antal bytes for 1 signal), så læs {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // byte 1 og 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 = Styrke_H t2 << = 8; t2 += t1; for (int i = 0; i <3; i ++) Serial1.read (); // byte 7, 8, 9 ignoreres}}}}

ugyldig opsætning ()

{Serial1.begin (115200); // HW Serial til TFmini Serial.begin (115200); // Seriel output via USB til computer forsinkelse (100); // Giv lidt tid til tingene skal starte // Indstil til Standard Output -tilstand Serial1.write (0x42); Serial1.write (0x57); Serial1.write (0x02); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x01); Serial1.write (0x06); // Opsætningstråd til læsning af seriel input fra TFmini -tråde. AddThread (readLiDAR); }

hulrum ()

{forsinkelse (10); // Vil ikke læse for ofte som TFmini -prøver ved 100Hz Serial.println (liDARval); }

Trin 3: Brug af Arduino IDE Se resultater i seriel plotter

Brug af Arduino IDE Se resultater i seriel plotter
Brug af Arduino IDE Se resultater i seriel plotter

Du kan bruge hvilken som helst metode, du vil, men Arduinos IDE vil plotte resultaterne pænt.

Opret forbindelse til Teensy, og åbn Serial Monitor. Sørg for, at Baudrate er indstillet til 115200.

Anbefalede: