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.
Figura 1. Movimento do telefone no equipamento de teste para test_sensor_fusion
Figura 2. Movimento do telefone no equipamento de teste para test_video_stabilization
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.
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 |
| |
Março de 2022 | 1 |
|
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.
Figura 5. Blindagem de roteamento personalizada (vista superior)
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.
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.
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.
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.
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.
Figura 11. Controlador Arduino Rev. 2
Figura 12. Controlador do kit Cana
Outros recursos
Download de desenhos mecânicos
- Arquivos de produção do gabinete do controlador CameraITS
- Arquivo Gerber de proteção do controlador CameraITS (rev 2.2)
Downloads de controle de software
- Microcódigo Arduino para Android 11 e superior
VarSpeedServo_and_lighting_control.ino
- Código de teste de controle Python
rotator.py