Spisu treści:

Benewake LiDAR TFmini (kompletny przewodnik): 5 kroków (ze zdjęciami)
Benewake LiDAR TFmini (kompletny przewodnik): 5 kroków (ze zdjęciami)

Wideo: Benewake LiDAR TFmini (kompletny przewodnik): 5 kroków (ze zdjęciami)

Wideo: Benewake LiDAR TFmini (kompletny przewodnik): 5 kroków (ze zdjęciami)
Wideo: Benewake TFmini-S — лазерный дальномер на 12 метров для Arduino и Raspberry. Железки Амперки 2024, Lipiec
Anonim
Benewake LiDAR TFmini (Kompletny przewodnik)
Benewake LiDAR TFmini (Kompletny przewodnik)
Benewake LiDAR TFmini (Kompletny przewodnik)
Benewake LiDAR TFmini (Kompletny przewodnik)

Opis

Moduł Benewake TFMINI Micro LIDAR ma unikalną konstrukcję optyczną, konstrukcyjną i elektroniczną. Produkt ma trzy główne zalety: niski koszt, niewielka objętość i niskie zużycie energii.

Wbudowany algorytm dostosowany do środowisk wewnętrznych i zewnętrznych może zagwarantować doskonałą wydajność przy niskich kosztach i niewielkiej objętości, co znacznie rozszerza obszary zastosowań i scenariusze LiDAR i stanowi solidną podstawę dla przyszłych „oczu” w inteligentnym era.

Specyfikacje

  • Napięcie wejściowe: 5 v
  • Średnia moc: 0,12 W
  • Protokół komunikacyjny: UART (szybkość transmisji: 115200)
  • Temperatura pracy: -20 ℃ ~ 60 ℃
  • Pole widzenia: 2,3°

Wymiary

  • Rozmiar: 42mmx15mmx16mm
  • Waga: 6,1g

Ograniczenia

Zakres "niewidomych" 0cm-30cm

Gdzie kupić

  • Sklep z robotami
  • Amazonka

Ta instrukcja wymaga znajomości następujących zagadnień:

  • Elektronika podstawowa
  • Narzędzia ręczne, takie jak przecinaki do drutu i ściągacze izolacji
  • Czytanie schematów i schematów połączeń
  • Programowanie w C/C++ dla Arduino (opcjonalnie)
  • Programowanie w Pythonie dla Raspberry Pi (opcjonalnie)

Krok 1: Zbieranie materiałów

Zbieranie materiałów
Zbieranie materiałów
Zbieranie materiałów
Zbieranie materiałów
Zbieranie materiałów
Zbieranie materiałów

Ta instrukcja poprowadzi Cię przez różne sposoby wdrażania TFmini LiDAR za pomocą komputera z systemem Windows i Raspberry Pi. Każda metoda ma swoje wymagania i może się różnić w zależności od Twoich potrzeb.

**Będziesz potrzebować Benewake TFmini LiDAR w każdym przypadku (oczywiście)**

W przypadku wdrożenia na komputerze PC:

  • System operacyjny: Windows
  • Konwerter USB-TTL
  • Przewody połączeniowe

Implementacja oparta na Raspberry Pi:

  • Malina Pi
  • Przewody połączeniowe
  • diody LED (opcjonalnie)
  • Konwerter USB-TTL (opcjonalnie)
  • Deska do krojenia chleba (opcjonalnie)
  • Rezystor (pomiędzy 100-1k Ohm) (opcjonalnie)

Krok 2: Implementacja na komputerze PC przy użyciu aplikacji Benewake

Implementacja na komputerze PC przy użyciu aplikacji Benewake
Implementacja na komputerze PC przy użyciu aplikacji Benewake
Implementacja na komputerze PC przy użyciu aplikacji Benewake
Implementacja na komputerze PC przy użyciu aplikacji Benewake
  1. Podłącz TFmini LiDAR do konwertera USB-TTL za pomocą zworek (męsko-żeńskich) zgodnie z przedstawionym schematem

    • Czerwony przewód 5V
    • Czarny przewód GND
    • Biały/niebieski przewód Tx
    • Przewód zielony Rx
  2. Podłącz USB-TTL do komputera
  3. Przejdź do Menedżera urządzeń (Win + X) i zlokalizuj „Prolific USB-to-Serial Comm Port” w obszarze Ports (COM i LPT). Upewnij się, że system Windows rozpoznaje urządzenie
  4. Pobierz i rozpakuj WINCC_TF.rar
  5. Uruchom WINCC_TFMini.exe z rozpakowanych plików
  6. Wybierz odpowiedni port COM z menu rozwijanego w aplikacji Benewake pod nagłówkiem Port szeregowy
  7. Kliknij POŁĄCZ

Krok 3: Implementacja oparta na PC przy użyciu Pythona (PySerial)

Implementacja na PC przy użyciu Pythona (PySerial)
Implementacja na PC przy użyciu Pythona (PySerial)
  1. Podłącz TFmini LiDAR do komputera za pomocą konwertera USB-TTL
  2. Pobierz i otwórz PC_Benewake_TFmini_LiDAR.py za pomocą Python IDLE (upewnij się, że masz zainstalowane PySerial i Python na swoim komputerze)
  3. Edytuj port COM w kodzie, aby pasował do portu COM konwertera USB-TTL na twoim komputerze (patrz zdjęcie)
  4. Kliknij kartę Uruchom
  5. Kliknij Uruchom moduł

**Odnieś się do Kroku-5 w celu wyjaśnienia kodu

Krok 4: Implementacja oparta na Raspberry Pi

Implementacja oparta na Raspberry Pi
Implementacja oparta na Raspberry Pi
Implementacja oparta na Raspberry Pi
Implementacja oparta na Raspberry Pi
Implementacja oparta na Raspberry Pi
Implementacja oparta na Raspberry Pi
Implementacja oparta na Raspberry Pi
Implementacja oparta na Raspberry Pi
  1. Podłącz TFmini LiDAR do RPi za pomocą konwertera USB-TTL lub portu UART za pomocą GPIO
  2. Pobierz i otwórz Pi_benewake_LiDAR.py za pomocą Pythona IDLE
  3. Jeśli używasz konwertera USB-TTL z RPi, otwórz Arduino IDE. Kliknij Narzędzia -> Port szeregowy i odpowiednio edytuj kod. Jeśli używasz portu UART GPIO, napisz /dev/ttyAMA0
  4. Uruchom kod

**Kod może być użyty do wydrukowania odległości, ale ponieważ RPi nie ma dużej mocy obliczeniowej, zaleca się zapalenie diody LED, jeśli zarejestrowana odległość jest poniżej pewnego zakresu (załączony schemat dla diody LED z RPi)

P. Dlaczego warto używać konwertera USB-TTL z RPi?

RPi ma tylko jeden port UART, a czasami trzeba umieścić kilka modułów wymagających komunikacji UART. USB-TTL zapewnia dodatkowy port UART do RPi dając nam możliwość podłączenia więcej niż jednego urządzenia UART (np. dwóch lub więcej TFmini LiDAR) do RPi.

Krok 5: O kodzie

O kodeksie
O kodeksie

Kod można podzielić na trzy części:

  • Nawiązywanie połączenia
  • Zapisywanie danych
  • Czytanie danych

Nawiązywanie połączenia:

Po zaimportowaniu niezbędnych plików nagłówkowych nawiązujemy połączenie z naszym TFmini LiDAR, podając jego port COM, szybkość transmisji i limit czasu połączenia

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

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

Zapisywanie danych:

Kod można podzielić na dwie części, pisanie i odbiór. Aby otrzymać dane, należy przekazać określone polecenie do TFmini LiDAR (część procesu inicjalizacji). W tym przypadku wybrałem 4257020000000106. Mimo że RPi obsługuje tę samą wersję Pythona, ale jest niewielka zmiana w składni, ponieważ RPi nie akceptuje danych innych niż binarne.

ser.write(0x42)

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

Odczytywanie danych:

Wykres zamieszczony w arkuszu danych przedstawia „rozbicie” 9-bajtowego komunikatu UART. Pierwsze dwa bajty to nagłówek ramki o wartości szesnastkowej 0x59 (znak 'Y'). Można je odczytać i wykorzystać do identyfikacji początku komunikatu UART.

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

Po odczytaniu ramki nagłówka można odczytać kolejne dwa bajty zawierające dane dotyczące odległości. Dane odległości są podzielone na dwa pakiety 8-bitowe, Dist_L (Bajt3) - Lower 8bits i Dist_H (Byte4) - Higher 8bits.

Dist_L = ser.odczyt() #Bajt3Dist_H = ser.odczyt() #Bajt4

Mnożąc Dist_H przez 256, dane binarne są przesuwane o 8 w lewo (odpowiednik „<< 8”). Teraz niższe 8-bitowe dane odległości, Dist_L, można po prostu dodać, dając 16-bitowe dane Dist_Total.

Całkowita_odległość = (ord(Odleg_H) * 256) + (ord(Odleg_L))

Ponieważ mamy przy sobie „odszyfrowaną” wartość odległości, następne pięć bajtów można zignorować. Zauważ, że odczytane dane nie są nigdzie przechowywane.

dla i w zakresie (0, 5):ser.read()

**W innym miejscu możesz znaleźć 'delay' (time.sleep w Pythonie) włączone przed końcem pętli, ponieważ TFmini LiDAR ma częstotliwość roboczą 100 Hz. To opóźnienie jest „opóźnieniem programu” i spowoduje, że dane zostaną UAKTUALNIONE po pewnym opóźnieniu. Uważam, że skoro już czekamy na zgromadzenie się danych do 9 bajtów, nie powinno być żadnych innych opóźnień

#time.sleep(0.0005) #Opóźnienie jest skomentowane

while(ser.in_waiting >= 9):

Zalecana: