Benewake LiDAR TFmini (kompletní průvodce): 5 kroků (s obrázky)
Benewake LiDAR TFmini (kompletní průvodce): 5 kroků (s obrázky)
Anonim
Benewake LiDAR TFmini (kompletní průvodce)
Benewake LiDAR TFmini (kompletní průvodce)
Benewake LiDAR TFmini (kompletní průvodce)
Benewake LiDAR TFmini (kompletní průvodce)

Popis

Modul Benewake TFMINI Micro LIDAR má svůj jedinečný optický, strukturální a elektronický design. Tento produkt má tři hlavní výhody: nízké náklady, malý objem a nízkou spotřebu energie.

Vestavěný algoritmus přizpůsobený vnitřnímu i venkovnímu prostředí může zaručit vynikající výkon při nízkých nákladech a v malém objemu, což výrazně rozšiřuje aplikační pole a scénáře LiDAR a vytváří pevný základ pro budoucí „oči“chytrých éra.

Specifikace

  • Vstupní napětí: 5v
  • Průměrný výkon: 0,12 W.
  • Komunikační protokol: UART (přenosová rychlost: 115200)
  • Provozní teplota: -20 ℃ ~ 60 ℃
  • FOV: 2,3 °

Rozměry

  • Velikost: 42 mm x 15 mm x 16 mm
  • Hmotnost: 6,1 g

Omezení

Rozsah „slepý“0 cm-30 cm

Kde koupit

  • RobotShop
  • Amazonka

Tento pokyn vyžaduje, abyste se seznámili s následujícími:

  • Základní elektronika
  • Ruční nářadí jako nůžky na drát a odizolovače
  • Čtení schémat a schémat připojení
  • Programování C/C ++ pro Arduino (volitelně)
  • Programování Pythonu pro Raspberry Pi (volitelně)

Krok 1: Shromažďování materiálu

Sběr materiálu
Sběr materiálu
Sběr materiálu
Sběr materiálu
Sběr materiálu
Sběr materiálu

Tento návod vás provede různými způsoby nasazení TFmini LiDAR pomocí počítače se systémem Windows a Raspberry Pi. Každá metoda má své požadavky a může se lišit podle vašich potřeb.

** Budete potřebovat Benewake TFmini LiDAR pro každý případ (samozřejmě) **

Pro implementaci na PC:

  • OS: Windows
  • Převodník USB-TTL
  • Propojovací dráty

Pro implementaci založenou na Raspberry Pi:

  • Raspberry Pi
  • Propojovací dráty
  • LED diody (volitelně)
  • Převodník USB-TTL (volitelně)
  • Breadboard (volitelně)
  • Rezistor (mezi 100-1k Ohm) (volitelně)

Krok 2: Implementace na PC pomocí aplikace Benewake

Implementace na PC pomocí aplikace Benewake
Implementace na PC pomocí aplikace Benewake
Implementace na PC pomocí aplikace Benewake
Implementace na PC pomocí aplikace Benewake
  1. Připojte TFmini LiDAR k převodníku USB-TTL pomocí propojovacích vodičů (samec-samice) podle zobrazeného schématu

    • Červený vodič 5V
    • Černý drát GND
    • Bílý/modrý drát Tx
    • Zelený drát Rx
  2. Plug-in USB-TTL k vašemu počítači
  3. Přejděte do Správce zařízení (Win + X) a v části Porty (COM a LPT) vyhledejte „Prolific USB-to-Serial Comm Port“. Ujistěte se, že systém Windows zařízení rozpozná
  4. Stáhněte a rozbalte soubor WINCC_TF.rar
  5. Spusťte WINCC_TFMini.exe z extrahovaných souborů
  6. Vyberte odpovídající COM port z rozevírací nabídky v aplikaci Benewake pod nadpisem Sériový port
  7. Klikněte na PŘIPOJIT

Krok 3: Implementace na PC pomocí Pythonu (PySerial)

Implementace na PC pomocí Pythonu (PySerial)
Implementace na PC pomocí Pythonu (PySerial)
  1. Připojte TFmini LiDAR k počítači pomocí převaděče USB-TTL
  2. Stáhněte a otevřete PC_Benewake_TFmini_LiDAR.py pomocí Python IDLE (ujistěte se, že máte v počítači nainstalován PySerial a Python)
  3. Upravte port COM v kódu tak, aby odpovídal portu COM převodníku USB-TTL na vašem počítači (viz obrázek)
  4. Klikněte na kartu Spustit
  5. Klikněte na Spustit modul

** Vysvětlení kódu najdete v kroku 5

Krok 4: Implementace založená na Raspberry Pi

Implementace založená na Raspberry Pi
Implementace založená na Raspberry Pi
Implementace založená na Raspberry Pi
Implementace založená na Raspberry Pi
Implementace založená na Raspberry Pi
Implementace založená na Raspberry Pi
Implementace založená na Raspberry Pi
Implementace založená na Raspberry Pi
  1. Připojte TFmini LiDAR k RPi pomocí převodníku USB-TTL nebo portu UART pomocí GPIO
  2. Stáhněte a otevřete Pi_benewake_LiDAR.py pomocí Python IDLE
  3. Pokud používáte převodník USB-TTL s RPi, otevřete Arduino IDE. Klikněte na Nástroje -> Sériový port a podle toho upravte kód. Pokud používáte port UART GPIO, napište /dev /ttyAMA0
  4. Spusťte kód

** Kód lze použít k tisku vzdálenosti, ale protože RPi nemá velký výpočetní výkon, doporučuje se rozsvítit LED, pokud je zaznamenaná vzdálenost pod určitým rozsahem (schéma pro LED s RPi je připojeno)

Otázka: Proč používat převodník USB-TTL s RPi?

RPi má pouze jeden port UART a někdy je potřeba umístit několik modulů, které vyžadují komunikaci UART. USB-TTL poskytuje další port UART pro RPi, což nám dává příležitost připojit k RPi více než jedno zařízení UART (například dva nebo více TFmini LiDAR).

Krok 5: O kódu

O kodexu
O kodexu

Kód lze rozdělit na tři části:

  • Navazování spojení
  • Zápis dat
  • Čtení dat

Navazování spojení:

Po importu potřebných souborů záhlaví navážeme připojení k našemu TFmini LiDAR uvedením jeho COM portu, přenosové rychlosti a časového limitu připojení

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

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

Zápis dat:

Kód lze rozdělit na dvě části, psaní a přijímání. Chcete -li přijímat data, musíte předat určitý příkaz TFmini LiDAR (součást procesu inicializace). V tomto případě jsem zvolil 4257020000000106. I když RPi provozuje stejnou verzi Pythonu, ale dochází k mírné změně syntaxe, protože RPi nepřijímá jiná data než binární.

ser.write (0x42)

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

Údaje ke čtení:

Tabulka poskytnutá v datovém listu nám poskytuje „rozpis“9bajtové zprávy UART. První dva bajty jsou záhlaví rámce s hodnotou hex 0x59 (znak 'Y'). Lze je přečíst a použít k identifikaci začátku zprávy UART.

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

Jakmile je načten rámec záhlaví, lze přečíst další dva bajty, nesoucí údaje o vzdálenosti. Údaje o vzdálenosti jsou rozděleny do dvou 8bitových paketů, Dist_L (Byte3) - Lower 8bits a Dist_H (Byte4) - Higher 8bits.

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

Vynásobením Dist_H číslem 256 se binární data posunou o 8 doleva (ekvivalent "<< 8"). Nyní lze jednoduše přidat data o nižší 8bitové vzdálenosti Dist_L, což má za následek 16bitová data Dist_Total.

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

Protože máme s sebou hodnotu „rozluštěné“vzdálenosti, dalších pět bajtů by bylo možné ignorovat. Pamatujte, že načtená data se nikam neukládají.

pro i v rozsahu (0, 5): ser.read ()

** Na jiném místě můžete najít „zpoždění“(time.sleep v Pythonu) začleněné před koncem smyčky, protože TFmini LiDAR má pracovní frekvenci 100 Hz. Toto zpoždění „zpoždění programu“povede k aktualizaci dat po určitém zpoždění. Věřím, že vzhledem k tomu, že již čekáme na nahromadění dat až na 9 bajtů, nemělo by dojít k žádnému jinému zpoždění

#time.sleep (0,0005) #Zpoždění je okomentováno

while (ser.in_waiting> = 9):

Doporučuje: