Inhaltsverzeichnis:

Benewake LiDAR TFmini (vollständige Anleitung) - Gunook
Benewake LiDAR TFmini (vollständige Anleitung) - Gunook

Video: Benewake LiDAR TFmini (vollständige Anleitung) - Gunook

Video: Benewake LiDAR TFmini (vollständige Anleitung) - Gunook
Video: Hello ROS 2 from RPi3 with Jammy Jellyfish 2024, Juli
Anonim
Benewake LiDAR TFmini (Vollständige Anleitung)
Benewake LiDAR TFmini (Vollständige Anleitung)
Benewake LiDAR TFmini (Vollständige Anleitung)
Benewake LiDAR TFmini (Vollständige Anleitung)

Beschreibung

Das Benewake TFMINI Micro-LIDAR-Modul hat sein einzigartiges optisches, strukturelles und elektronisches Design. Das Produkt besitzt drei wesentliche Vorteile: geringe Kosten, geringes Volumen und geringer Stromverbrauch.

Der eingebaute Algorithmus, der an Innen- und Außenumgebungen angepasst ist, kann eine hervorragende Entfernungsleistung zu geringen Kosten und in einem winzigen Volumen garantieren, was die Anwendungsfelder und Szenarien von LiDAR stark erweitert und eine solide Grundlage für zukünftige „Augen“im smart legt Epoche.

Spezifikationen

  • Eingangsspannung: 5V
  • Durchschnittliche Leistung: 0,12 W
  • Kommunikationsprotokoll: UART (Baudrate: 115200)
  • Betriebstemperatur: -20℃~60℃
  • Sichtfeld: 2,3°

Maße

  • Größe: 42mmx15mmx16mm
  • Gewicht: 6.1g

Einschränkungen

0cm-30cm "blinde" Reichweite

Wo zu kaufen

  • RobotShop
  • Amazonas

Dieses instructable erfordert, dass Sie mit den folgenden vertraut sind:

  • Grundelektronik
  • Handwerkzeuge wie Drahtschneider und Abisolierer
  • Lesen von Schaltplänen und Anschlussplänen
  • C/C++-Programmierung für Arduino (optional)
  • Python-Programmierung für Raspberry Pi (optional)

Schritt 1: Material sammeln

Material sammeln
Material sammeln
Material sammeln
Material sammeln
Material sammeln
Material sammeln

Diese Anleitung führt Sie durch verschiedene Möglichkeiten zur Bereitstellung von TFmini LiDAR mit Ihrem Windows-PC und Raspberry Pi. Jede Methode hat ihre Anforderungen und kann je nach Bedarf variieren.

**Sie benötigen für jeden Fall Benewake TFmini LiDAR (natürlich)**

Für PC-basierte Implementierung:

  • Betriebssystem: Windows
  • USB-TTL-Konverter
  • Überbrückungsdrähte

Für Raspberry Pi-basierte Implementierung:

  • Himbeer-Pi
  • Überbrückungsdrähte
  • LEDs (optional)
  • USB-TTL-Konverter (optional)
  • Steckbrett (optional)
  • Widerstand (zwischen 100-1k Ohm) (optional)

Schritt 2: PC-basierte Implementierung mit der Benewake App

PC-basierte Implementierung mit der Benewake-App
PC-basierte Implementierung mit der Benewake-App
PC-basierte Implementierung mit der Benewake-App
PC-basierte Implementierung mit der Benewake-App
  1. Verbinden Sie den TFmini LiDAR mit dem USB-TTL-Konverter mithilfe von Jumper (männlich-weiblich) Drähten gemäß dem gezeigten Schema
    • Rotes Kabel 5V
    • Schwarzer Draht GND
    • Weiß/Blauer Draht Tx
    • Grüner Draht Rx
  2. Schließen Sie USB-TTL an Ihren Computer an
  3. Gehen Sie zum Geräte-Manager (Win + X) und suchen Sie "Prolific USB-to-Serial Comm Port" unter Ports (COM & LPT). Stellen Sie sicher, dass Windows das Gerät erkennt
  4. Herunterladen und Extrahieren von WINCC_TF.rar
  5. Führen Sie WINCC_TFMini.exe aus den extrahierten Dateien aus
  6. Wählen Sie den entsprechenden COM-Port aus dem Dropdown-Menü in der Benewake App unter der Überschrift Serial Port
  7. Klicken Sie auf VERBINDEN

Schritt 3: PC-basierte Implementierung mit Python (PySerial)

PC-basierte Implementierung mit Python (PySerial)
PC-basierte Implementierung mit Python (PySerial)
  1. Verbinden Sie TFmini LiDAR mit dem PC über einen USB-TTL-Konverter
  2. Laden Sie PC_Benewake_TFmini_LiDAR.py mit Python IDLE herunter und öffnen Sie es (stellen Sie sicher, dass PySerial und Python auf Ihrem PC installiert sind)
  3. Bearbeiten Sie den COM-Port im Code so, dass er mit dem COM-Port des USB-TTL-Konverters auf Ihrem PC übereinstimmt (siehe Bild)
  4. Klicken Sie auf die Registerkarte Ausführen
  5. Klicken Sie auf Modul ausführen

**Erläuterung des Codes finden Sie in Schritt 5

Schritt 4: Raspberry Pi-basierte Implementierung

Raspberry Pi-basierte Implementierung
Raspberry Pi-basierte Implementierung
Raspberry Pi-basierte Implementierung
Raspberry Pi-basierte Implementierung
Raspberry Pi-basierte Implementierung
Raspberry Pi-basierte Implementierung
Raspberry Pi-basierte Implementierung
Raspberry Pi-basierte Implementierung
  1. Verbinden Sie TFmini LiDAR mit RPi über einen USB-TTL-Konverter oder einen UART-Port mit GPIO
  2. Laden Sie Pi_benewake_LiDAR.py herunter und öffnen Sie es mit Python IDLE
  3. Wenn Sie einen USB-TTL-Konverter mit RPi verwenden, öffnen Sie Arduino IDE. Klicken Sie auf Tools -> Serial Port und bearbeiten Sie den Code entsprechend. Wenn Sie den UART GPIO-Port verwenden, schreiben Sie /dev/ttyAMA0
  4. Führen Sie den Code aus

**Der Code könnte verwendet werden, um die Entfernung zu drucken, aber da RPi nicht viel Rechenleistung hat, wird empfohlen, eine LED zu leuchten, wenn die aufgezeichnete Entfernung unter einem bestimmten Bereich liegt (Schema für LED mit RPi ist beigefügt)

F. Warum einen USB-TTL-Konverter mit RPi verwenden?

RPi hat nur einen UART-Port, und manchmal müssen Sie einige Module installieren, die eine UART-Kommunikation erfordern. USB-TTL bietet einen zusätzlichen UART-Port für RPi, der uns die Möglichkeit gibt, mehr als ein UART-Gerät (wie zwei oder mehr TFmini LiDAR) an RPi anzuschließen.

Schritt 5: Über den Code

Über den Kodex
Über den Kodex

Der Code lässt sich in drei Teile unterteilen:

  • Stelle Verbindung her
  • Daten schreiben
  • Daten lesen

Stelle Verbindung her:

Nach dem Import der notwendigen Header-Dateien stellen wir die Verbindung zu unserem TFmini LiDAR her, indem wir dessen COM-Port, Baudrate und Verbindungszeitüberschreitung angeben

ser = serial. Serial('COM7', 115200, timeout = 1) #PC

ser = serial. Serial('/dev/ttyUSB1', 115200, timeout = 1) #Raspberry Pi

Daten schreiben:

Der Code kann in zwei Teile unterteilt werden, Schreiben und Empfangen. Um Daten zu empfangen, müssen Sie den bestimmten Befehl an TFmini LiDAR weiterleiten (Teil des Initialisierungsprozesses). In diesem Fall habe ich 4257020000000106 gewählt. Obwohl RPi die gleiche Version von Python ausführt, gibt es eine geringfügige Änderung in der Syntax, da RPi keine anderen Daten als Binärdaten akzeptiert.

ser.write(0x42)

ser.write(0x57) ser.write(0x02) ser.write(0x00) ser.write(0x00) ser.write(0x00) ser.write(0x01) ser.write(0x06)

Auslesen von Daten:

Die im Datenblatt bereitgestellte Tabelle gibt uns die 'Aufschlüsselung' der 9-Byte-UART-Nachricht. Die ersten beiden Bytes sind Frame-Header mit einem Wert von Hex 0x59 (Zeichen 'Y'). Sie können gelesen und verwendet werden, um den Anfang der UART-Nachricht zu identifizieren.

if(('Y' == ser.read()) und ('Y' == ser.read())):

Sobald der Header-Frame gelesen ist, könnten die nächsten zwei Bytes, die Distanzdaten tragen, gelesen werden. Distanzdaten werden in zwei 8-Bit-Pakete unterteilt, Dist_L (Byte3) – Lower 8bits und Dist_H (Byte4) – Higher 8bits.

Dist_L = ser.read() #Byte3Dist_H = ser.read() #Byte4

Durch Multiplizieren von Dist_H mit 256 werden die Binärdaten um 8 nach links verschoben (entspricht "<< 8"). Jetzt könnten die unteren 8-Bit-Distanzdaten Dist_L einfach hinzugefügt werden, was zu 16-Bit-Daten von Dist_Total führt.

Dist_Total = (ord(Dist_H) * 256) + (ord(Dist_L))

Da wir den 'entschlüsselten' Distanzwert bei uns haben, könnten die nächsten fünf Byte ignoriert werden. Beachten Sie, dass die gelesenen Daten nirgendwo gespeichert werden.

für i im Bereich (0, 5):ser.read()

**An anderer Stelle könnte 'delay' (time.sleep in Python) vor dem Ende der Schleife eingebaut sein, da der TFmini LiDAR eine Betriebsfrequenz von 100 Hz hat. Diese Verzögerung 'Programmverzögerung' und führt dazu, dass die Daten nach einer gewissen Verzögerung AKTUALISIERT werden. Ich glaube, da wir bereits darauf warten, dass sich die Daten auf 9-Byte anhäufen, sollte es keine weitere Verzögerung geben

#time.sleep(0.0005) #Die Verzögerung ist auskommentiert

while(ser.in_waiting >= 9):

Empfohlen: