Controle Android 13

Esta página descreve como montar o controlador Android 13, que controla o movimento para um equipamento de teste de fusão de sensores e a iluminação para o ITS-in-a-box. O teste de fusão de sensores faz parte do Camera Image Test Suite (Camera ITS) do Compatibility Test Suite (CTS). O controlador Android 13 foi projetado para facilitar a montagem e reduzir custos em comparação com versões anteriores do controlador. Benefícios adicionais são o isolamento de alimentação entre a eletrônica e os servos e o controle de até três servos e três luzes a partir de um único controlador.

Visão geral do controlador Android 13

Controle de servo e iluminação em bancadas de teste

O equipamento de teste de fusão de sensores 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. Para test_sensor_fusion, o servo gira o telefone em torno do centro do eixo da câmera em 90 graus e volta em cerca de 2 segundos. Para test_video_stabilization, o servo gira o telefone em torno do centro do eixo da câmera 10 graus e volta repetidamente para imitar o movimento do telefone ao gravar um vídeo enquanto caminha. A Figura 1 mostra dois telefones se movendo em uma plataforma de teste de fusão de sensores. A Figura 2 mostra um telefone movendo-se em uma bancada de teste de fusão de sensores.

O ITS-in-a-box fornece um ambiente de teste consistente com distância fixa entre o tablet de teste e o telefone de teste, além de iluminação consistente sem fonte de luz externa. Para test_auto_flash, é necessário um ambiente escuro com luzes apagadas para acionar a função de flash automático em telefones de teste. A Figura 3 mostra as luzes do ITS-in-a-box sendo ligadas e desligadas pelo controlador Android 13.

Movimento do telefone no equipamento de teste

Figura 1. Movimento do telefone no equipamento de teste para test_sensor_fusion

Movimento do telefone no equipamento de teste

Figura 2. Movimento do telefone no equipamento de teste para test_video_stabilization

Controle de luz dentro do ITS-in-a-box

Figura 3. Luzes apagadas e acesas para test_auto_flash

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 3. O sinal de controle tem um período de 20 ms. Alterar a largura do pulso para a largura mínima move o motor para a posição neutra e alterar a largura do pulso para a largura máxima move o motor 180 graus no sentido horário.

Descrição do servocontrole

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

Vídeo tutorial

Este é um tutorial em vídeo sobre como configurar o controlador Android 13.

Histórico de Revisão

A tabela a seguir descreve o histórico de revisões do equipamento Camera ITS WFoV e inclui links de download para cada versão dos arquivos de produção.

Data Revisão Download do arquivo de produção Registro de alterações
Dezembro de 2022 1.1
  • Adicionada opção para solicitar placa PCB preenchida da EasyEDA
  • Removido atrasos espúrios após movimentos do servo no microcódigo do Arduino
  • Impasses alterados de metal para náilon
  • MOSFETS de furo passante alterados para MOSFETS montados em superfície
  • Capacitor alterado de 10 uF para 1000 uF
Março de 2022 1
  • Adicionada capacidade de controle de iluminação.
  • Alterado de 6 servocontroles para 3 de iluminação e 3 servocontroles

Implementação do controlador Android 13

Para controlar o movimento do servo motor e as luzes através de um computador host, o equipamento de teste de fusão de sensores requer uma conexão USB. O controlador Android 13 usa uma placa Arduino UNO R3 conectada por USB com uma placa de roteamento personalizada (ou escudo ) montada na parte superior. A blindagem de duas camadas foi projetada com uma ferramenta de design de PCB on-line de código aberto e está disponível em https://oshwlab.com/leslieshaw1023/cameraits_arduino_shield_populated . As vistas superior e inferior da blindagem de roteamento personalizada são mostradas nas Figuras 5 e 6.

Vista superior do escudo de roteamento personalizado

Figura 5. Blindagem de roteamento personalizada (vista superior)

Vista superior do escudo de roteamento personalizado

Figura 6. Blindagem de roteamento personalizada (vista inferior)

O controlador Android 13 pode controlar até três plataformas de fusão de sensores e três ITS-in-a-box a partir de um único computador host. A vista superior mostra os contornos da serigrafia para a montagem dos três conectores do motor de 3 pinos ao longo do eixo central e três conectores de alimentação de LED. A vista inferior mostra os contornos da serigrafia para as conexões dos conectores de 4 e 8 pinos necessárias para combinar com o UNO, um conector de alimentação de 5 V e um capacitor de bypass de 10 uF.

Para isolar as correntes do servo e da iluminação, 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 o conector de alimentação externo existente no UNO não é utilizado e está oculto no design do gabinete para evitar confusão ao conectar a alimentação ao controlador.

Energia de iluminação e carregador de 12 V conectado ao controlador Android 13

Figura 7. Iluminação e alimentação de 12 V conectada ao controlador Android 13

Dependendo do tamanho do cano da potência de iluminação, use o adaptador conforme necessário.

Plugue macho de 3,5 mm x 1,35 mm para conversor de tomada fêmea de 5,5 mm x 2,1 mm

Figura 8. Adaptador conectando a energia de iluminação ao controlador

Montando o controlador Android 13

Lista de materiais (BOM)

Quantidade Descrição PN/Link
1 Escudo Arduino CameraITS de 1,6 mm de espessura https://oshwlab.com/leslieshaw1023/cameraits_arduino_shield_populated
1 Arduino UNO R3 https://store.arduino.cc/usa/arduino-uno-rev3
6 2,1x5,5 mm, furo passante de 5 V, conector cilíndrico em ângulo reto 101179
2 Capacitores de tântalo de 35 V, 10%, 10 uF 2290863
2 Capacitores de montagem cerâmicos 1206 de 50 V, 5%, 100 pF 12065A101JAT2A
3 1 kΩ, resistor de montagem em superfície CRCW08051K00FKEAC
3 MOSFET de potência RFP30N06LE
3 1x3x, passo de 100 mil (2,54 mm), cabeçote macho com furo passante 732-5316-ND
1 1x8x, passo de 100 mil (2,54 mm), cabeçote macho com furo passante 732-5321-ND
1 1x4x, passo de 100 mil (2,54 mm), cabeçote macho com furo passante 732-5317-ND
3 Espaçadores de náilon fêmea-fêmea de 11 mm (largura de 5 mm, roscas M3-0,5) 92319a317
4 Espaçadores de náilon macho-fêmea de 6 mm (largura de 5 mm, roscas M3-0,5) 95783a004
3 Parafusos de nylon de cabeça panela M3-0,5 de 6 mm 92492A716
4 Parafusos de máquina de cabeça chata M3-0.5 de 8 mm XM2510008A20000
2 Parafusos de máquina de cabeça chata M3-0.5 de 6 mm XM2510006A20000
6 # 4, parafusos de chapa metálica 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) KSAS0180500300VU-VI
1 Fonte de alimentação de 12 V, 60 W listada em UL, plugue de 2,1 x 5,5 mm (luzes) GSM60A12-P1J

Outras ferramentas necessárias

  • Ferro de soldar, solda, sugador de solda
  • Chave de fenda Phillips pequena
  • 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 ajustadas em seus contornos. Para a parte inferior da placa, os conectores macho podem ser alinhados colocando-os nos locais corretos na placa Arduino e colocando a placa de roteamento em cima dos conectores. Os conectores 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 perfeita, pois o conector de alimentação não fica apoiado no Arduino após a montagem. Depois de soldar o capacitor de bypass, a parte superior da placa pode ser preenchida com seis conectores macho 1x3 para controle do motor. Observe que o cabeçote deve ser orientado de forma que a parte inferior do conector de encaixe fique voltada para os motores para dar espaço máximo para a montagem do motor.

Quando todos os componentes estiverem soldados no lugar, o sistema poderá ser montado usando 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 invólucro plástico. No entanto, existem apenas três impasses fêmea-fêmea de 11 mm entre o Arduino e o escudo personalizado porque um orifício no Arduino (aquele próximo ao pino SCL) é inutilizável devido à sua proximidade com o conector fêmea no Arduino. Aparafuse os três impasses fêmea-fêmea em três impasses macho-fêmea para prendê-los ao Arduino. Em seguida, prenda a blindagem da placa de roteamento aos espaçadores com os três parafusos M3. A Figura 9 mostra um esquema do escudo do Arduino.

Esquema do escudo Arduino

Figura 9. Esquema do escudo Arduino

Gabinete do controlador

O controlador inclui um gabinete personalizado. O controlador montado é montado no gabinete por meio de quatro parafusos escareados na placa inferior do gabinete. Monte o gabinete usando seis parafusos de montagem de cabeça redonda e dois de cabeça chata. Informações pertinentes, como servo e alimentação externa de 5 V, estão gravadas na parte superior de plástico. A Figura 10 mostra uma imagem do controlador dentro do gabinete montado.

Sistema montado em gabinete

Figura 10. Blindagem preenchida e sistema montado em 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 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 Android 13

Uso 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

Controladores anteriores e compatibilidade

O controlador Rev. 2 e o controlador Rev. 1 (mostrados nas Figuras 11 e 12) não são compatíveis com Android 13 e não suportam test_preview_stabilization, test_video_stabilization e test_auto_flash porque não permitem o movimento preciso necessário para estabilização e iluminação ao controle.

Controlador Arduino Rev.

Figura 11. Controlador Arduino Rev. 2

Sistema montado em gabinete

Figura 12. Controlador do kit Cana

Outros recursos

Download de desenhos mecânicos

Downloads de controle de software