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.
Figura 1. Movimiento del teléfono en el banco de pruebas de test_sensor_fusion
Figura 2. Movimiento del teléfono en el banco de pruebas para test_video_stabilization
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.
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 |
| |
marzo 2022 | 1 |
|
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.
Figura 5. Escudo de enrutamiento personalizado (vista superior)
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.
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.
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.
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.
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.
Figura 11. Controlador Arduino Rev. 2
Figura 12. Controlador del kit Cana
Otros recursos
Descargas de dibujos mecánicos.
- Archivos de producción del gabinete del controlador CameraITS
- Archivo Gerber del escudo del controlador CameraITS (rev 2.2)
Descargas de control de software
- Microcódigo Arduino para Android 11 y superior
VarSpeedServo_and_lighting_control.ino
- Código de prueba de control de Python
rotator.py