Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Componentes e Materiais

Componente Quantidade
Arduino Nano R3 1
OLED Elecrow 0.96" 128x64 1
Trena Laser X-40 1
Módulo DC-DC LM2596 1

Ferramentas e Máquinas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

Precisa de um módulo telêmetro laser rápido e barato para seu projeto Arduino?

Claro, pode usar módulos especializados, mas a maioria tem preço alto. Módulos VL53L0X/VL53L1X são baratos, mas têm campo de visão muito grande.

Encontrei uma solução: usar a trena laser barata "X-40" como telêmetro laser. Esses dispositivos custam $20 ou menos e medem distância até 40m com precisão ~3mm. Mas há dois problemas: não há como obter leituras da trena e as medições são lentas - menos de 1 Hz.

Para resolver, fiz engenharia reversa da trena laser e escrevi firmware próprio para o MCU STM32 do módulo. Velocidade de medição era importante e alcancei ~60 Hz, mas distância máxima estável caiu para ~6m (alcance máximo total 37m, não testei completamente).

Precisão varia de 1mm a 10mm dependendo da cor do alvo e distância.

Dimensões do módulo: 25x13x50 mm.

AVISO IMPORTANTE: VOCÊ PERDERÁ O FIRMWARE ORIGINAL, O DISPOSITIVO NÃO PODERÁ SER USADO COMO TRENA LASER DEPOIS!

Note que trenas "X-40" podem ter diferentes revisões do módulo, e meu firmware suporta apenas algumas!

"X-40" não é o único nome - existem várias trenas laser chinesas com módulos adequados.

Passo 1: Desmontando a Trena Laser

Desmonte a trena para obter o módulo telêmetro.

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Desparafuse 7 parafusos do gabinete:

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Trena desmontada:

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Dentro do gabinete, há um pequeno módulo telêmetro. Desconecte os cabos flat e remova o módulo:

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

O módulo é marcado como "701A". Meu firmware suporta apenas versões "512A" e "701A". Vários usuários confirmaram que módulos "703A" também funcionam (não testei).

ATUALIZAÇÃO 11/2019: Novas trenas "X-40" vêm com módulos "M88B". Marcação "88B" no PCB perto do MCU. Baseados em STM32F0 (pacote QFN-32). Esses módulos NÃO são suportados pelo meu firmware!

ATUALIZAÇÃO 10/2021: Adicionado suporte a módulos U85B: veja link! Usados em trenas laser modernas.

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Se seu módulo é suportado, dessolde as linhas de alimentação.

Passo 2: Programando o Módulo Telêmetro

Grave firmware especializado no MCU do módulo.

  1. Solde fios para programar o MCU. Pinout na imagem:
Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Conecte pinos 7-8 do conector do teclado - necessário para alimentar.

Linhas "GND" e "Vbat" à fonte. Tensão +2.7...+3.3V. Deve haver +3.5V na linha "Vdd" quando alimentado.

Linhas "GND", "SWDIO", "SWCLK", "NRST" ao programador ST-LINK. Linha "NRST" é crucial - firmware original do MCU é travado, essa linha entra no modo programação.

Alguns programadores têm essa linha, outros (baratos) não, mas há workaround.

Alguns (como "ST-LINK/V2" original) precisam "Vbat" conectado com "VCC/TVCC" do programador.

Exemplo de conexões (programador sem linha NRST):

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível
  1. Instale "ST-LINK utility" no PC. Há muitos tutoriais na web.

Configure a utility (Target → Settings):

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Se seu programador tem saída "NRST", ligue a energia e pressione "Target → Connect".

Se não tem, faça:

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível
  1. Flash do MCU está travado para leitura. Desabilite "Read Out Protection". Perderá firmware original neste passo!

Abra Target → "Option Bytes":

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Mude "Read Out Protection" para "Disabled", pressione "Unselect all" e "Apply". Reinicie módulo (desconecte energia).

Pressione Target → Connect. Deve mostrar conexão bem-sucedida e memória preenchida com 0xFF. Agora grave firmware personalizado.

  1. Firmware necessário: https://github.com/iliasam/Laser_tape_reverse_engineering/tree/master/Code/Firmware_dist_calculation_fast

Selecione arquivo HEX adequado para seu módulo e grave no MCU Flash usando "ST-LINK utility".

Passo 3: Conectando Módulo Telêmetro ao Arduino

Solde um fio ou conector no pad TX da placa:

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Veja esquemático de conexão abaixo.

Primeiro, verifique se o módulo funciona. Não precisa conectar OLED ainda - apenas conecte TX do módulo ao TX do Arduino, e alimentação do módulo a +3V.

Crie sketch vazio e carregue no Arduino. Abra "Serial Monitor" na Arduino IDE. Baud rate: 250000.

Se funcionando, você verá os dados.

Melhor usar conversor USB-UART especializado. Selecione 256000 baudrate (baudrate real do MCU X-40).

Segundo, monte esquemático completo com display.

Conecte TX do módulo ao RX do Arduino (desconecte esse fio durante upload de programa ao Arduino).

Se tudo ok, verá resultado:

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Display mostra 3 números:

Passo 4: Calibração Zero

Após primeiro início, módulo precisa calibração.

Coloque objeto branco a certa distância do módulo. Essa distância vira zero para o telêmetro. Para iniciar calibração, conecte teclado da trena e pressione botão inferior. Módulo bipa duas vezes - início e fim (calibração ~10 segundos).

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Agora pode usar este módulo telêmetro laser.

Links:

  1. GitHub - resultados engenharia reversa e código fonte.
  2. Habr.com - artigo traduzido sobre engenharia reversa da trena laser.

Desculpe meu inglês - sou de país não falante de inglês.

Código

Sketch Arduino

Sem preview (apenas download).

GitHub

Código para a trena laser: https://github.com/iliasam/Laser_tape_reverse_engineering

Esquemáticos

Esquemático montagem em protoboard

Telêmetro Laser DIY de Baixo Custo para Arduino – Rápido, Confiável e Acessível

Processo de manufatura

  1. Monitoramento de Qualidade do Ar com OpenSensors: Guia Arduino e Python
  2. Aplicações de Cortadora a Laser: Da Madeira à Aeroespacial
  3. Sistema Inteligente de Monitoramento de Temperatura para Escolas: Preciso, Tempo Real e Seguro
  4. Biblioteca Eficiente de Porta IO de 8 Bits para Arduino – Expanda o Controle Digital
  5. Teclado Prototípico de 64 Teclas com Arduino: Matriz com Registradores de Deslocamento
  6. Shield TFT 2,8" para Arduino Nano – Display SPI 320×240 de Alto Desempenho
  7. Circuito de Entrada Analógica Isolada para Arduino
  8. Controlador de Respiração Arduino Acessível com Integração USB-MIDI
  9. Kit de Robô de Navegação Interna Inteligente para Projetos Arduino
  10. Por que o 5G é Essencial para a Manufatura Inteligente Moderna