Benewake LiDAR TFmini (volledige gids): 5 stappe (met foto's)
Benewake LiDAR TFmini (volledige gids): 5 stappe (met foto's)
Anonim
Benewake LiDAR TFmini (volledige gids)
Benewake LiDAR TFmini (volledige gids)
Benewake LiDAR TFmini (volledige gids)
Benewake LiDAR TFmini (volledige gids)

Beskrywing

Die Benewake TFMINI Micro LIDAR -module het sy unieke optiese, strukturele en elektroniese ontwerpe. Die produk het drie groot voordele: lae koste, klein volume en lae kragverbruik.

Die ingeboude algoritme wat aangepas is vir binne en buite omgewings, kan 'n uitstekende prestasie teen lae koste en in 'n klein volume verseker, wat die toepassingsvelde en scenario's van LiDAR sterk uitbrei en 'n stewige basis lê vir toekomstige 'oë' in die slim era.

Spesifikasies

  • Ingangsspanning: 5V
  • Gemiddelde krag: 0.12W
  • Kommunikasieprotokol: UART (Baud -tempo: 115200)
  • Bedryfstemperatuur: -20 ℃ ~ 60 ℃
  • FOV: 2,3 °

Afmetings

  • Grootte: 42mmx15mmx16mm
  • Gewig: 6,1 g

Beperkings

0 cm-30 cm "blinde" reeks

Waar om te koop

  • RobotShop
  • Amazon

Hierdie instruksies vereis dat u vertroud is met die volgende:

  • Basiese elektronika
  • Handgereedskap soos draadknipers en -stroppers
  • Lees skemas en verbindingsdiagramme
  • C/C ++ programmering vir Arduino (opsioneel)
  • Python -programmering vir Raspberry Pi (opsioneel)

Stap 1: Versamel materiaal

Versamelingsmateriaal
Versamelingsmateriaal
Versamelingsmateriaal
Versamelingsmateriaal
Versamelingsmateriaal
Versamelingsmateriaal

Hierdie instruksies lei u op verskillende maniere om TFmini LiDAR met u Windows -rekenaar en Raspberry Pi te implementeer. Elke metode het sy vereistes en kan afhang van u behoeftes.

** U benodig Benewake TFmini LiDAR vir elke saak (natuurlik) **

Vir rekenaargebaseerde implementering:

  • Bedryfstelsel: Windows
  • USB-TTL omskakelaar
  • Jumper Wires

Vir Raspberry Pi -gebaseerde implementering:

  • Framboos Pi
  • Jumper Wires
  • LED's (opsioneel)
  • USB-TTL-omskakelaar (opsioneel)
  • Broodbord (opsioneel)
  • Weerstand (tussen 100-1k Ohm) (opsioneel)

Stap 2: implementering op 'n rekenaar met behulp van die Benewake -app

PC -gebaseerde implementering met die Benewake -app
PC -gebaseerde implementering met die Benewake -app
PC -gebaseerde implementering met die Benewake -app
PC -gebaseerde implementering met die Benewake -app
  1. Koppel TFmini LiDAR aan USB-TTL-omskakelaar met behulp van jumper (manlik-vroulik) drade volgens die skema wat getoon word

    • Rooi draad 5V
    • Black Wire GND
    • Wit/blou draad Tx
    • Groen draad Rx
  2. Koppel USB-TTL aan op u rekenaar
  3. Gaan na Toestelbestuurder (Win + X) en vind "Prolific USB-to-Serial Comm Port" onder Ports (COM & LPT). Maak seker dat Windows die toestel herken
  4. Laai WINCC_TF.rar af en haal dit uit
  5. Begin WINCC_TFMini.exe uit die onttrek lêers
  6. Kies die ooreenstemmende COM-poort in die keuselys in die Benewake-app onder die opskrif Serial Port
  7. Klik op Koppel

Stap 3: implementering op rekenaar met behulp van Python (PySerial)

PC -gebaseerde implementering met behulp van Python (PySerial)
PC -gebaseerde implementering met behulp van Python (PySerial)
  1. Koppel TFmini LiDAR aan op 'n rekenaar met behulp van 'n USB-TTL-omskakelaar
  2. Laai PC_Benewake_TFmini_LiDAR.py af en maak dit oop met Python IDLE (maak seker dat PySerial en Python op u rekenaar geïnstalleer is)
  3. Wysig die COM-poort in die kode wat ooreenstem met die COM-poort van die USB-TTL-omskakelaar op u rekenaar (sien prent)
  4. Klik op die blad Uitvoer
  5. Klik op Module uitvoer

** Verwys na stap 5 vir verduideliking van die kode

Stap 4: Raspberry Pi -implementering

Raspberry Pi -implementering
Raspberry Pi -implementering
Raspberry Pi -gebaseerde implementering
Raspberry Pi -gebaseerde implementering
Raspberry Pi -implementering
Raspberry Pi -implementering
Raspberry Pi -implementering
Raspberry Pi -implementering
  1. Koppel TFmini LiDAR aan RPi met behulp van USB-TTL-omskakelaar of UART-poort met GPIO
  2. Laai Pi_benewake_LiDAR.py af en maak dit oop met Python IDLE
  3. As u 'n USB-TTL-omskakelaar met RPi gebruik, maak Arduino IDE oop. Klik op Tools -> Serial Port en wysig die kode dienooreenkomstig. As u die UART GPIO -poort gebruik, skryf dan /dev /ttyAMA0
  4. Begin die kode

** Die kode kan gebruik word om die afstand af te druk, maar aangesien RPi nie baie verwerkingskrag het nie, word dit aangeraai om 'n LED aan te steek as die aangetekende afstand onder 'n sekere reeks is (skema vir LED met RPi is aangeheg)

V. Waarom 'n USB-TTL-omskakelaar met RPi gebruik?

RPi het slegs een UART -poort, en soms moet u 'n paar modules plaas wat UART -kommunikasie vereis. USB-TTL bied 'n ekstra UART-poort aan RPi, wat ons die geleentheid bied om meer as een UART-toestel (soos twee of meer TFmini LiDAR) aan RPi te koppel.

Stap 5: Oor die kode

Oor die kode
Oor die kode

Die kode kan in drie dele verdeel word:

  • Verbind verbinding
  • Skryf data
  • Lees data

Verbinding tot stand bring:

Nadat ons die nodige koptekstlêers ingevoer het, word die verbinding met ons TFmini LiDAR tot stand gebring deur die COM-poort, baud-koers en verbindingstyd uit te gee

ser = serial. Serial ('COM7', 115200, time -out = 1) #PC

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

Skryf data:

Die kode kan in twee dele verdeel word, skryf en ontvang. Om data te ontvang, moet u die sekere opdrag na TFmini LiDAR stuur (deel van die inisialiseringsproses). In hierdie geval het ek 4257020000000106 gekies. Alhoewel RPi dieselfde weergawe van Python gebruik, maar daar is 'n effense verandering in sintaksis, aangesien RPi nie ander data as binêre aanvaar nie.

ser.write (0x42)

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

Lees data:

Die grafiek in die datablad gee ons die 'uiteensetting' van 'n 9-Byte UART-boodskap. Die eerste twee grepe is 'n raamkop met 'n waarde van hex 0x59 (karakter 'Y'). Dit kan gelees en gebruik word om die begin van die UART -boodskap te identifiseer.

as (('Y' == ser.read ()) en ('Y' == ser.read ())):

Sodra die kopraam gelees is, kan die volgende twee grepe, met afstandafstanddata, gelees word. Afstandsdata is verdeel in twee 8 -bis pakkies, Dist_L (Byte3) - Laer 8bits en Dist_H (Byte4) - Hoër 8bits.

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

Deur Dist_H met 256 te vermenigvuldig, word die binêre data met 8 na links verskuif (gelykstaande aan "<< 8"). Nou kan die onderste 8-bis-afstanddata, Dist_L, eenvoudig bygevoeg word, wat lei tot 16-bis-data van Dist_Total.

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

Aangesien ons die 'ontsyferde' afstandwaarde by ons het, kan die volgende vyf byte geïgnoreer word. Let daarop dat die geleesde data nêrens gestoor word nie.

vir i in reeks (0, 5): ser.read ()

** Op 'n ander plek kan u 'vertraging' (time.sleep in Python) voor die einde van die lus vind, omdat die TFmini LiDAR 'n frekwensie van 100 Hz het. Hierdie vertraging 'programvertraging' en sal daartoe lei dat data na 'n tydjie opgedateer word. Ek glo dat daar geen ander vertraging is nie, aangesien ons reeds wag totdat die data tot 9-bytes ophoop

#time.sleep (0.0005) #Die vertraging word opgemerk

terwyl (ser.in_waiting> = 9):

Aanbeveel: