Controlador de Android 13

Esta página describe cómo ensamblar el controlador Android 13, que controla el movimiento de un equipo de prueba de fusión de sensores y la iluminación para ITS-in-a-box. La prueba de fusión de sensores es parte del Camera Image Test Suite (Camera ITS) en el Compatibility Test Suite (CTS). El controlador Android 13 está diseñado para facilitar el montaje y reducir costos en comparación con versiones anteriores del controlador. Los beneficios adicionales son el aislamiento del suministro entre la electrónica y los servos y el control de hasta tres servos y tres luces desde un solo controlador.

Descripción general del controlador Android 13

Servocontrol y control de iluminación en bancos de pruebas.

El banco de pruebas de fusión de sensores proporciona un movimiento fijo del teléfono para realizar pruebas reproducibles. El teléfono se gira frente a un objetivo de tablero de ajedrez para permitir la captura de imágenes con el teléfono en varias posiciones. Para test_sensor_fusion, el servo gira el teléfono alrededor del centro del eje de la cámara 90 grados y viceversa en aproximadamente 2 segundos. Para test_video_stabilization, el servo gira el teléfono alrededor del centro del eje de la cámara 10 grados y hacia atrás repetidamente para imitar el movimiento del teléfono al tomar un video mientras camina. La Figura 1 muestra dos teléfonos moviéndose en un banco de pruebas de fusión de sensores. La Figura 2 muestra un teléfono moviéndose en un banco de pruebas de fusión de sensores.

ITS-in-a-box proporciona un entorno de prueba consistente con una distancia fija entre la tableta de prueba y el teléfono de prueba, además de una iluminación constante sin fuente de luz externa. Para test_auto_flash, se necesita un ambiente oscuro con las luces apagadas para activar la función de flash automático en los teléfonos de prueba. La Figura 3 muestra las luces en ITS-in-a-box siendo apagadas y encendidas por el controlador de Android 13.

Movimiento del teléfono en el banco de pruebas.

Figura 1. Movimiento del teléfono en el banco de pruebas de test_sensor_fusion

Movimiento del teléfono en el banco de pruebas.

Figura 2. Movimiento del teléfono en el banco de pruebas para test_video_stabilization

Control de iluminación dentro de ITS-in-a-box

Figura 3. Luces apagadas y encendidas para test_auto_flash

Control de servomotores

Los servomotores analógicos del banco de pruebas son servos posicionales controlados mediante modulación de ancho de pulso (PWM). En la Figura 3 se muestra un ejemplo típico de control posicional. La señal de control tiene un período de 20 ms. Cambiar el ancho del pulso al ancho mínimo mueve el motor a la posición neutral y cambiar el ancho del pulso al ancho máximo mueve el motor 180 grados en el sentido de las agujas del reloj.

Descripción del servocontrol

Figura 4. Descripción típica del servocontrol

Vídeotutorial

Este es un video tutorial sobre cómo configurar el controlador de Android 13.

Revisión histórica

La siguiente tabla describe el historial de revisiones del equipo Camera ITS WFoV e incluye enlaces de descarga a cada versión de los archivos de producción.

Fecha Revisión Descarga del archivo de producción Registro de cambios
diciembre 2022 1.1
  • Opción agregada para pedir una placa PCB poblada de EasyEDA
  • Se eliminaron retrasos falsos después de los movimientos del servo en el microcódigo Arduino.
  • Se cambiaron los separadores de metal a nailon.
  • Se cambiaron MOSFETS de orificio pasante a MOSFETS montados en superficie
  • Se cambió el condensador de 10 uF a 1000 uF.
marzo 2022 1
  • Capacidad de control de iluminación agregada.
  • Se cambió de 6 servocontroles a 3 de iluminación y 3 servocontroles.

Implementación del controlador de Android 13

Para controlar el movimiento del servomotor y las luces a través de una computadora host, el banco de pruebas de fusión de sensores requiere una conexión USB. El controlador Android 13 utiliza una placa Arduino UNO R3 conectada por USB con una placa de enrutamiento personalizada (o escudo ) montada en la parte superior. El escudo de dos capas está diseñado con una herramienta de diseño de PCB en línea de código abierto y está disponible en https://oshwlab.com/leslieshaw1023/cameraits_arduino_shield_populated . Las vistas superior e inferior del protector de enrutamiento personalizado se muestran en las Figuras 5 y 6.

Vista superior del escudo de enrutamiento personalizado

Figura 5. Escudo de enrutamiento personalizado (vista superior)

Vista superior del escudo de enrutamiento personalizado

Figura 6. Escudo de enrutamiento personalizado (vista inferior)

El controlador Android 13 puede controlar hasta tres equipos de fusión de sensores y tres ITS-in-a-box desde una única computadora host. La vista superior muestra los contornos serigrafiados para montar los tres cabezales del motor de 3 pines a lo largo del eje central y tres conectores de alimentación LED. La vista inferior muestra los contornos serigrafiados de las conexiones de los cabezales de 4 y 8 pines necesarias para acoplarse con el UNO, un conector de alimentación de 5 V y un condensador de derivación de 10 uF.

Para aislar las corrientes de los servos y de iluminación, la alimentación de los servos se proporciona a través del conector externo de 5 V. La electrónica de UNO se alimenta por separado a través del conector USB y no se comparte la energía entre las dos placas. Tenga en cuenta que el conector de alimentación externo existente en el UNO no se utiliza y está cubierto en el diseño del gabinete para evitar confusiones al conectar la alimentación al controlador.

Alimentación de iluminación y cargador de 12 V conectados al controlador de Android 13

Figura 7. Iluminación y alimentación de 12 V conectadas al controlador de Android 13

Dependiendo del tamaño del cilindro de la potencia de iluminación, utilice el adaptador según sea necesario.

Convertidor de conector macho de 3,5 mm x 1,35 mm a conector hembra de 5,5 mm x 2,1 mm

Figura 8. Adaptador que conecta la alimentación de iluminación al controlador

Montaje del controlador Android 13

Lista de materiales (BOM)

Cantidad Descripción PN/Enlace
1 Escudo CameraITS Arduino de 1,6 mm de espesor https://oshwlab.com/leslieshaw1023/cameraits_arduino_shield_populated
1 Arduino UNO R3 https://store.arduino.cc/usa/arduino-uno-rev3
6 Conector cilíndrico en ángulo recto de 2,1 x 5,5 mm, orificio pasante de 5 V 101179
2 Condensadores de tantalio de 35 V, 10 %, 10 uF 2290863
2 Condensadores cerámicos de montaje 1206 de 50 V, 5 %, 100 pF 12065A101JAT2A
3 1 kΩ, resistencia de montaje en superficie CRCW08051K00FKEAC
3 MOSFET de potencia RFP30N06LE
3 Cabezal macho de orificio pasante, 1x3x, paso de 100 mil (2,54 mm) 732-5316-ND
1 Cabezal macho de orificio pasante, paso de 100 mil (2,54 mm) 1x8x 732-5321-ND
1 Cabezal macho de orificio pasante, paso de 100 mil (2,54 mm) 1x4x 732-5317-ND
3 Separadores de nailon hembra-hembra de 11 mm (ancho de 5 mm, roscas M3-0,5) 92319a317
4 Separadores de nailon macho-hembra de 6 mm (ancho de 5 mm, roscas M3-0,5) 95783a004
3 Tornillos de nailon de cabeza plana M3-0,5 de 6 mm 92492A716
4 Tornillos para metales de cabeza plana M3-0.5 de 8 mm XM2510008A20000
2 Tornillos para metales de cabeza plana M3-0.5 de 6 mm XM2510006A20000
6 #4, tornillos para chapa de cabeza redonda de 1/2 pulgada 90925A110
1 Fuente de alimentación de 5 V, 15 W con certificación UL, enchufe de 2,1 x 5,5 mm (motores) KSAS0180500300VU-VI
1 Fuente de alimentación de 12 V, 60 W con certificación UL, enchufe de 2,1 x 5,5 mm (luces) GSM60A12-P1J

Otras herramientas necesarias

  • Soldador, soldadura, lechón de soldadura.
  • Destornillador Phillips pequeño
  • Destornillador Torx tamaño T10

Llenando el tablero de enrutamiento

Complete la parte superior e inferior del tablero de enrutamiento con las piezas que encajen en sus contornos. Para la parte inferior de la placa, los encabezados macho se pueden alinear colocándolos en las ubicaciones correctas en la placa Arduino y colocando la placa de enrutamiento encima de los conectores. Luego, los encabezados 1x8 y 1x4 se pueden soldar en su lugar, garantizando una buena alineación entre el Arduino y la placa de enrutamiento. Se puede hacer lo mismo con el conector de alimentación, pero se necesita una cuña para un montaje perfecto ya que el conector de alimentación no descansa sobre el Arduino después del montaje. Después de soldar el capacitor de derivación, la parte superior de la placa se puede llenar con seis cabezales macho de 1x3 para control del motor. Tenga en cuenta que el cabezal debe orientarse de modo que la parte inferior del conector a presión quede hacia los motores para dar el máximo espacio para el soporte del motor.

Cuando todos los componentes estén soldados en su lugar, el sistema se puede ensamblar usando los separadores y tornillos. Hay cuatro separadores macho-hembra de 6 mm para proporcionar estabilidad mecánica entre el Arduino y la parte inferior de la carcasa de plástico. Sin embargo, solo hay tres separadores hembra-hembra de 11 mm entre el Arduino y el escudo personalizado porque un orificio en el Arduino (el que está cerca del pin SCL) no se puede utilizar debido a su proximidad al encabezado hembra del Arduino. Atornille los tres separadores hembra-hembra a tres separadores macho-hembra para asegurarlos al Arduino. Luego fije el protector de la placa de enrutamiento a los separadores con los tres tornillos M3. La Figura 9 muestra un esquema del escudo Arduino.

Esquema del escudo arduino

Figura 9. Esquema del escudo Arduino

Caja del controlador

El controlador incluye un gabinete personalizado. El controlador ensamblado se monta en el gabinete mediante cuatro tornillos avellanados a través de la placa inferior del gabinete. Ensamble el gabinete usando seis tornillos de montaje de cabeza redonda y dos de cabeza plana. La información pertinente, como el servo y el suministro externo de 5 V, está grabada en la parte superior de plástico. La Figura 10 muestra una imagen del controlador dentro del gabinete ensamblado.

Sistema montado en caja.

Figura 10. Escudo poblado y sistema ensamblado en gabinete.

Control de software desde el host

Se puede descargar un microcódigo a UNO para asignar los pines PWM a las señales del motor y definir los rangos de ancho de pulso para diferentes ángulos. El microcódigo para el control de rotación del servo de los seis motores HS-755MB se incluye en Otros recursos . Esa sección también incluye un enlace a un programa simple llamado rotator.py , que rota los servos.

Usando el controlador de Android 13

Cámara SU uso:

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

Con guión de prueba incluido:

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

Controladores anteriores y compatibilidad

El controlador Rev. 2 y el controlador Rev. 1 (que se muestran en las Figuras 11 y 12) no son compatibles con Android 13 y no admiten test_preview_stabilization, test_video_stabilization y test_auto_flash porque no permiten el movimiento fino necesario para la estabilización y la iluminación. control.

Controlador Arduino Rev.2

Figura 11. Controlador Arduino Rev. 2

Sistema montado en caja.

Figura 12. Controlador del kit Cana

Otros recursos

Descargas de dibujos mecánicos.

Descargas de control de software