Índice:

Benewake LiDAR TFmini (guia completo): 5 etapas (com fotos)
Benewake LiDAR TFmini (guia completo): 5 etapas (com fotos)

Vídeo: Benewake LiDAR TFmini (guia completo): 5 etapas (com fotos)

Vídeo: Benewake LiDAR TFmini (guia completo): 5 etapas (com fotos)
Vídeo: Webinar Sensores LiDAR 2024, Julho
Anonim
Benewake LiDAR TFmini (guia completo)
Benewake LiDAR TFmini (guia completo)
Benewake LiDAR TFmini (guia completo)
Benewake LiDAR TFmini (guia completo)

Descrição

O Módulo Benewake TFMINI Micro LIDAR tem seus designs ópticos, estruturais e eletrônicos exclusivos. O produto possui três vantagens principais: baixo custo, pequeno volume e baixo consumo de energia.

O algoritmo integrado adaptado a ambientes internos e externos pode garantir um excelente desempenho de alcance a um baixo custo e em um pequeno volume, o que expande muito os campos de aplicação e cenários de LiDAR e estabelece uma base sólida para futuros “olhos” no smart era.

Especificações

  • Tensão de entrada: 5v
  • Potência média: 0,12 W
  • Protocolo de comunicação: UART (taxa Baud: 115200)
  • Temperatura de operação: -20 ℃ ~ 60 ℃
  • FOV: 2,3 °

Dimensões

  • Tamanho: 42 mm x 15 mm x 16 mm
  • Peso: 6,1g

Limitações

Alcance "cego" de 0cm-30cm

Onde comprar

  • RobotShop
  • Amazonas

Este instrutível requer que você esteja familiarizado com o seguinte:

  • Eletrônica básica
  • Ferramentas manuais como cortadores de fio e decapantes
  • Lendo esquemas e diagramas de conexão
  • Programação C / C ++ para Arduino (opcional)
  • Programação Python para Raspberry Pi (opcional)

Etapa 1: coleta de material

Coletando Material
Coletando Material
Coletando Material
Coletando Material
Coletando Material
Coletando Material

Este instrutível o levará por diferentes maneiras de implantar TFmini LiDAR usando seu PC com Windows e Raspberry Pi. Cada método tem seus requisitos e pode variar de acordo com suas necessidades.

** Você precisará do Benewake TFmini LiDAR para cada caso (é claro) **

Para implementação baseada em PC:

  • SO: Windows
  • Conversor USB-TTL
  • Jumper Wires

Para implementação baseada em Raspberry Pi:

  • Raspberry Pi
  • Jumper Wires
  • LEDs (opcional)
  • Conversor USB-TTL (opcional)
  • Placa de ensaio (opcional)
  • Resistor (entre 100-1k Ohm) (opcional)

Etapa 2: Implementação baseada em PC usando o aplicativo Benewake

Implementação baseada em PC usando o aplicativo Benewake
Implementação baseada em PC usando o aplicativo Benewake
Implementação baseada em PC usando o aplicativo Benewake
Implementação baseada em PC usando o aplicativo Benewake
  1. Conecte TFmini LiDAR ao conversor USB-TTL usando fios jumper (macho-fêmea) de acordo com o esquema mostrado

    • Fio Vermelho 5V
    • Black Wire GND
    • Fio Tx Branco / Azul
    • Green Wire Rx
  2. Conecte o USB-TTL ao seu computador
  3. Vá para o Gerenciador de Dispositivos (Win + X) e localize "Prolific USB-to-Serial Comm Port" em Ports (COM e LPT). Certifique-se de que o Windows reconhece o dispositivo
  4. Baixe e extraia WINCC_TF.rar
  5. Execute WINCC_TFMini.exe a partir dos arquivos extraídos
  6. Selecione a porta COM correspondente no menu suspenso no aplicativo Benewake sob o título Porta serial
  7. Clique em CONECTAR

Etapa 3: implementação baseada em PC usando Python (PySerial)

Implementação baseada em PC usando Python (PySerial)
Implementação baseada em PC usando Python (PySerial)
  1. Conecte TFmini LiDAR ao PC usando o conversor USB-TTL
  2. Baixe e abra PC_Benewake_TFmini_LiDAR.py usando Python IDLE (certifique-se de ter PySerial e Python instalados em seu PC)
  3. Edite a porta COM no código para corresponder à porta COM do conversor USB-TTL em seu PC (veja a imagem)
  4. Clique na guia Executar
  5. Clique em Executar Módulo

** Consulte a Etapa 5 para obter uma explicação do código

Etapa 4: Implementação baseada em Raspberry Pi

Implementação baseada em Raspberry Pi
Implementação baseada em Raspberry Pi
Implementação baseada em Raspberry Pi
Implementação baseada em Raspberry Pi
Implementação baseada em Raspberry Pi
Implementação baseada em Raspberry Pi
Implementação baseada em Raspberry Pi
Implementação baseada em Raspberry Pi
  1. Conecte TFmini LiDAR a RPi usando conversor USB-TTL ou porta UART usando GPIO
  2. Baixe e abra Pi_benewake_LiDAR.py usando Python IDLE
  3. Se você estiver usando um conversor USB-TTL com RPi, abra o Arduino IDE. Clique em Ferramentas -> Porta serial e edite o código de acordo. Se você estiver usando a porta UART GPIO, escreva / dev / ttyAMA0
  4. Execute o código

** O código pode ser usado para imprimir a distância, mas como RPi não tem muito poder de processamento, é aconselhável acender um LED se a distância registrada estiver abaixo de um determinado intervalo (esquema para LED com RPi está anexado)

P. Por que usar o conversor USB-TTL com RPi?

RPi possui apenas uma porta UART, e às vezes você precisa colocar alguns módulos que exigem comunicação UART. USB-TTL fornece uma porta UART adicional para RPi nos dando a oportunidade de conectar mais de um dispositivo UART (como dois ou mais TFmini LiDAR) para RPi.

Etapa 5: Sobre o Código

Sobre o Código
Sobre o Código

O código pode ser dividido em três partes:

  • Estabelecendo conexão
  • Gravando dados
  • Lendo dados

Estabelecendo conexão:

Depois de importar os arquivos de cabeçalho necessários, estabelecemos a conexão com nosso TFmini LiDAR informando sua porta COM, Baud-rate e tempo limite de conexão

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

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

Gravando dados:

O código pode ser dividido em duas partes, escrita e recebimento. Para receber dados, você precisa encaminhar o comando certo para TFmini LiDAR (parte do processo de inicialização). Neste caso, escolhi 4257020000000106. Embora RPi execute a mesma versão do Python, há uma pequena mudança na sintaxe, pois RPi não aceita dados diferentes de binários.

ser.write (0x42)

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

Dados de leitura:

O gráfico fornecido na folha de dados nos dá a 'divisão' da mensagem UART de 9 bytes. Os primeiros dois bytes são cabeçalhos de quadro com um valor hexadecimal 0x59 (caractere 'Y'). Eles podem ser lidos e usados para identificar o início da mensagem UART.

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

Uma vez que o quadro de cabeçalho é lido, os próximos dois bytes, carregando dados de distância, podem ser lidos. Os dados de distância são divididos em dois pacotes de 8 bits, Dist_L (Byte3) - 8bits inferiores e Dist_H (Byte4) - 8bits superiores.

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

Multiplicando Dist_H por 256, os dados binários são deslocados por 8 para a esquerda (equivalente a "<< 8"). Agora, os dados de distância de 8 bits mais baixos, Dist_L, poderiam simplesmente ser adicionados, resultando em dados de 16 bits de Dist_Total.

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

Como temos o valor de distância 'decifrado' conosco, os próximos cinco bytes podem ser ignorados. Observe que os dados lidos não estão sendo armazenados em lugar nenhum.

para i no intervalo (0, 5): ser.read ()

** Em algum outro lugar, você pode encontrar 'delay' (time.sleep em Python) incorporado antes do final do loop, porque o TFmini LiDAR tem freqüência de operação de 100Hz. Este atraso 'atrasa o programa' e resultará na ATUALIZAÇÃO dos dados após algum atraso. Acredito que, como já estamos esperando que os dados se acumulem em até 9 bytes, não deve haver nenhum outro atraso

# time.sleep (0,0005) #O atraso está comentado

enquanto (ser.in_waiting> = 9):

Recomendado: