Controlador de fusão de sensores

Esta página descreve como montar o controlador de revisão 2 para um equipamento de teste de fusão de sensores. O teste de fusão do sensor faz parte do Camera Image Test Suite (Camera ITS) no Compatibility Test Suite (CTS). O controlador rev2 foi projetado para facilitar a montagem e reduzir custos. Benefícios adicionais são o isolamento de alimentação entre a eletrônica e os servos e o controle de até seis servos a partir de um único controlador.

Visão geral do controlador de fusão do sensor de revisão 2

Equipamento de teste de fusão do sensor

O equipamento de teste de fusão do sensor fornece um movimento fixo do telefone para testes reproduzíveis. O telefone é girado na frente de um alvo quadriculado para permitir a captura de imagens com o telefone em várias posições. O equipamento de teste gira o telefone em torno do centro da câmera em 90 graus e volta em cerca de 2 segundos. A Figura 1 mostra dois telefones se movendo em um equipamento de teste de fusão de sensores.

Movimento do telefone no equipamento de teste

Figura 1. Movimento do telefone no equipamento de teste

Controle de servo motor

Os servomotores analógicos no equipamento de teste são servos posicionais controlados usando modulação por largura de pulso (PWM). Um exemplo típico de controle posicional é mostrado na Figura 2. O sinal de controle tem um período de 20 ms. Alterar a largura de pulso para a largura mínima move o motor para a posição neutra e alterar a largura de pulso para a largura máxima move o motor 180 graus no sentido horário.

Descrição do servocontrole

Figura 2. Descrição típica do servocontrole

Implementação do controlador de fusão do sensor

Para controlar o movimento do servo motor por meio de um host, o equipamento de teste de fusão do sensor requer uma conexão USB. O controlador rev2 test rig usa uma placa Arduino UNO R3 conectada por USB com uma placa de roteamento personalizada (ou shield ) montada na parte superior. A blindagem de duas camadas foi projetada com uma ferramenta de design de PCB online de código aberto e está disponível em https://easyeda.com/portmannc/servo_controller . As vistas superior e inferior da blindagem de roteamento personalizada são mostradas nas Figuras 3 e 4.

Vista superior do escudo de roteamento personalizado

Figura 3. Escudo de roteamento personalizado (vista superior)

Vista inferior do escudo de roteamento personalizado

Figura 4. Escudo de roteamento personalizado (vista inferior)

O controlador de fusão de sensor rev2 pode controlar até seis equipamentos de fusão de sensor de um único host. A vista superior mostra os contornos da serigrafia para montar os seis cabeçotes do motor de 3 pinos ao longo do eixo central. Há um conector adicional na parte superior que não é usado para este projeto. A vista inferior mostra os contornos da serigrafia para as conexões de cabeçalho de 4 e 8 pinos necessárias para combinar com o UNO, um conector de alimentação de 5 V e um capacitor de desvio de 10 uF.

Para isolar as correntes dos servos, a alimentação dos servos é fornecida através do conector externo de 5 V. A eletrônica UNO é alimentada separadamente através do conector USB, e não há compartilhamento de energia entre as duas placas. Observe que a tomada de alimentação externa existente no UNO não é usada e está coberta no design do gabinete para evitar confusão ao conectar a alimentação ao controlador.

Montando um controlador de fusão do sensor rev2

Lista de materiais (BOM)

Quantidade Descrição PN/Link
1 Placa de roteamento de fusão de sensor de 1,6 mm de espessura https://easyeda.com/portmannc/servo_controller
1 Arduino UNO R3 https://store.arduino.cc/usa/arduino-uno-rev3
1 2,1x5,5 mm, orifício de passagem de 5 V, conector de cano em ângulo reto 101179
1 Capacitores de tântalo de 16 V, 10%, 10 uF TAP106K016CCS
1 1x2, passo de 200 mil (5,08 mm), furo passante Phoenix Contact 651-1755736
6 1x3x, passo de 100 mil (2,54 mm), cabeçote macho passante 732-5316-ND
1 1x8x, passo de 100 mil (2,54 mm), cabeçote macho passante 732-5321-ND
1 1x4x, passo de 100 mil (2,54 mm), cabeçote macho passante 732-5317-ND
3 Distanciadores fêmea-fêmea de 11 mm (largura de 5 mm, roscas M3-0,5) R30-1001102
4 Distanciadores macho-fêmea de 6 mm (largura de 5 mm, roscas M3-0,5) R30-3000602
3 Parafusos de máquina de cabeça cilíndrica M3-0,5 6 mm 36-9191-3-ND
4 Parafusos de máquina de cabeça chata M3-0,5 8 mm XM2510008A20000
2 Parafusos de máquina de cabeça chata M3-0,5 6 mm XM2510006A20000
6 # 4, parafusos de chapa de metal de cabeça redonda de 1/2 pol. 90925A110
1 Fonte de alimentação de 5 V, 15 W listada em UL, plugue de 2,1 x 5,5 mm (motores) 36-9191-3-ND

Outras ferramentas necessárias

  • Ferro de solda, solda, sugador de solda
  • Chave de fenda pequena Phillips
  • Chave de fenda Torx tamanho T10

Preenchendo a placa de roteamento

Preencha a parte superior e inferior da placa de roteamento com as peças que se encaixam em seus contornos. Para a parte inferior da placa, os conectores machos podem ser alinhados colocando-os nos locais corretos na placa Arduino e colocando a placa de roteamento na parte superior dos conectores. Os headers 1x8 e 1x4 podem então ser soldados no lugar, garantindo um bom alinhamento entre o Arduino e a placa de roteamento. O mesmo pode ser feito para o conector de alimentação, mas é necessário um calço para uma montagem apertada, pois o conector de alimentação não repousa sobre o Arduino após a montagem. Após a soldagem do capacitor de bypass, a parte superior da placa pode ser preenchida com os seis conectores macho 1x3 para controle do motor e o conector Phoenix Contact 1x2. Observe que o cabeçalho deve ser orientado de forma que a parte inferior do conector de encaixe fique em direção aos motores para dar espaço máximo para a montagem do motor.

Quando todos os componentes são soldados no lugar, o sistema pode ser montado usando os espaçadores e parafusos. Existem quatro espaçadores macho-fêmea de 6 mm para fornecer estabilidade mecânica entre o Arduino e a parte inferior do gabinete de plástico. No entanto, existem apenas três afastamentos fêmea-fêmea de 11 mm entre o Arduino e o shield personalizado porque um orifício no Arduino (o próximo ao pino SCL) é inutilizável devido à sua proximidade com o conector fêmea no Arduino. Parafuse os três espaçadores fêmea-fêmea em três espaçadores macho-fêmea para prender os espaçadores ao Arduino. Em seguida, prenda a blindagem da placa de roteamento aos espaçadores com os três parafusos M3. A Figura 5 mostra uma vista final conceitualizada do shield preenchido montado no Arduino. A Figura 6 mostra uma fotografia do sistema preenchido e montado.

Vista final conceitualizada do shield preenchido montado no Arduino

Figura 5. Blindagem preenchida com cabeçalhos, tomada de alimentação e espaçadores mostrados (vista final conceitualizada)

Parte superior do escudo preenchido

Figura 6. Escudo rev2.2 preenchido montado no Arduino (vista superior)

Gabinete do controlador

O controlador inclui um gabinete personalizado. O desenho mecânico é mostrado na figura 7.

Desenho mecânico do gabinete

Figura 7. Desenho mecânico do gabinete

O controlador montado é montado no gabinete por meio de quatro parafusos escareados na placa inferior do gabinete. O gabinete pode ser montado através dos seis parafusos de montagem de cabeça redonda e dois de cabeça chata. Informações pertinentes, como ordem do número do servo e alimentação externa de 5 V, são gravadas no topo de plástico. A Figura 8 mostra uma fotografia do controlador dentro do gabinete montado.

Sistema montado no gabinete

Figura 8. Sistema montado no gabinete

Controle de software do host

O microcódigo pode ser baixado para o UNO para atribuir os pinos PWM aos sinais do motor e definir as faixas de largura de pulso para diferentes ângulos. O microcódigo para controle de rotação do servo dos seis motores HS-755MB está incluído em Outros recursos . Essa seção também inclui um link para um programa simples chamado rotator.py , que gira os servos.

Usando o controlador rev2

Uso de ITS da câmera:

python tools/run_all_tests.py device=device_id camera=0 rot_rig=arduino:1 scenes=sensor_fusion

Com script de teste incluído:

python rotator.py --ch 1 --dir ON --debug

Outros recursos

Download de desenhos mecânicos

Downloads de controle de software