Innholdsfortegnelse:

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

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

Video: Benewake TFmini - Billig LiDAR Med Teensy 3.5: 3 trinn
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 -enheten er en liten, veldig lett LiDAR -sensor for ca $ 50 kanadisk. Dokumentasjonen var god, men ufullstendig. Den ga detaljer om mottak av data fra sensoren, men glemte å nevne signalet som trengs for å sette sensoren i standardmodus slik at den faktisk sender dataene. Det var heldigvis i feilsøkingsdokumentet.

Så dette er det som fungerte for meg, og det er virkelig en enkel enhet å jobbe med.

Jeg valgte å bruke en Teensy 3.5 siden den har flere HW serielle porter, den er mer enn rask nok til å motta data og behandle den uten å la data hoper seg opp. Bare for moro skyld brukte jeg Teensy Threading -biblioteket til å skille dataene fra resten av koden.

Trinn 1: Koble TFmini til Teensy 3.5 (lignende for Arduino Mega)

Koble TFmini til Teensy 3.5 (lignende for Arduino Mega)
Koble TFmini til Teensy 3.5 (lignende for Arduino Mega)

Dette eksemplet krever to serielle tilkoblinger: en til TFmini og en for å vise resultater på datamaskinen. Av denne grunn, og så langt jeg kan fortelle, bare av denne grunnen, vil dette eksemplet ikke fungere på noe under en Arduino Mega eller Teensy 3.x.

Når det er sagt, for applikasjoner som ikke krever seriell utgang for å skrive ut til dataskjerm, bør det samme prosjektet kunne tilpasses.

Bruke medfølgende ledningsnett:

1) koble svart ledning til Teensy GND (hvis du bruker differensiell VDC -kilde, må du sørge for at bakken også går til GND på Teensy)

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

3) koble den hvite ledningen (TFmini RX) til pinne 1 på Teensy (Serial1 TX)

4) koble den grønne ledningen (TFmini TX) til pin 0 på Teensy (Serial RX)

Den medfølgende ledningsnettet var for liten til at jeg kunne jobbe med på et brødbrett, så jeg kuttet av enden overfor TFmini, og loddet ledningene til et brødbrett, la en JST -kontakt til tavlen og lagde en JST til hannhopper ledningsnett.

Trinn 2: Kode for å kjøre den

Bruk følgende kode (for Teensy 3.5) eller last ned den vedlagte filen:

For Arduino Mega vil tråden sannsynligvis ikke fungere. Flytt koden fra readLiDAR -funksjonen til hovedsløyfen, og fjern alt som er relatert til tråden.

#include #include "TeensyThreads.h"

// Bruk av medfølgende kabel:

// - Svart = GND (koblet til GND) // - Rød = 5V (4,5 - 6,0V) (koblet til Vin på Teensy 3.5 eller 5V på Arduino) // - Hvit = TFmini RX (aka. Koble til mikrokontroller TX, pin1 på Teensy 3.5) // - Grønn = TFmini TX (aka. koble til mikrokontroller RX, pin0 på Teensy 3.5) // MERK: for denne skissen trenger du en mikrokontroller med flere serielle porter utover den som er koblet til USB -kabelen / / Dette inkluderer Arduino MEGA (bruk Serial1), Teensy (3.x) (bruk en av de tilgjengelige HW Serial -tilkoblingene)

flyktig int liDARval = 0;

void readLiDAR () {

// Dataformat for Benewake TFmini // =============================== // 9 byte totalt per melding: // 1) 0x59 // 2) 0x59 // 3) Dist_L (lav 8bit) // 4) Dist_H (høy 8bit) // 5) Strength_L (lav 8bit) // 6) Strength_H (høy 8bit) // 7) Reserverte byte // 8) Original signalkvalitetsgrad // 9) Sjekksum paritetsbit (lav 8bit), Checksum = Byte1 +Byte2 +… +Byte8. Dette er bare en lav 8 -bits, mens (1) {// Fortsett for alltid mens (Serial1.available ()> = 9) // Når minst 9 byte med data er tilgjengelig (forventet antall byte for 1 signal), da les {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 oppsett ()

{Serial1.begin (115200); // HW Serial for TFmini Serial.begin (115200); // Seriell utgang via USB til datamaskinforsinkelse (100); // Gi litt tid til ting kan begynne // Sett til Standard Output -modus Serial1.write (0x42); Serial1.write (0x57); Serial1.write (0x02); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x01); Serial1.write (0x06); // Oppsettstråd for å lese seriell inngang fra TFmini -tråder. AddThread (readLiDAR); }

hulrom ()

{forsinkelse (10); // Vil ikke lese for ofte som TFmini -prøver på 100Hz Serial.println (liDARval); }

Trinn 3: Bruke Arduino IDE Se resultater i serieplotter

Bruke Arduino IDE Se resultater i seriell plotter
Bruke Arduino IDE Se resultater i seriell plotter

Du kan bruke hvilken som helst metode du vil, men Arduinos IDE vil plotte resultatene pent.

Koble til Teensy, og åpne Serial Monitor. Sørg for at Baudrate er satt til 115200.

Anbefalt: