Controlador de fusión de sensores

Esta página describe cómo ensamblar el controlador revisión 2 para un equipo de prueba de fusión de sensores. La prueba de fusión del sensor es parte de Camera Image Test Suite (Camera ITS) en Compatibility Test Suite (CTS). El controlador rev2 está diseñado para facilitar el montaje y reducir los costes. Los beneficios adicionales son el aislamiento de suministro entre la electrónica y los servos y el control de hasta seis servos desde un solo controlador.

Descripción general del controlador de fusión de sensores de la revisión 2

Banco de pruebas de fusión de sensores

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. El equipo de prueba gira el teléfono alrededor del centro del eje de la cámara 90 grados y retrocede en aproximadamente 2 segundos. La Figura 1 muestra dos teléfonos moviéndose en un banco de pruebas de fusión de sensores.

Movimiento del teléfono en el banco de pruebas

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

Control de servomotores

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

Descripción del servocontrol

Figura 2. Descripción típica de servocontrol

Implementación del controlador de fusión de sensores

Para controlar el movimiento del servomotor a través de un host, el equipo de prueba de fusión de sensores requiere una conexión USB. El controlador del equipo de prueba rev2 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://easyeda.com/portmannc/servo_controller . Las vistas superior e inferior del protector de enrutamiento personalizado se muestran en las Figuras 3 y 4.

Vista superior del escudo de enrutamiento personalizado

Figura 3. Escudo de enrutamiento personalizado (vista superior)

Vista inferior del protector de enrutamiento personalizado

Figura 4. Escudo de enrutamiento personalizado (vista inferior)

El controlador de fusión de sensores rev2 puede controlar hasta seis equipos de fusión de sensores desde un solo host. La vista superior muestra los contornos serigrafiados para montar los seis cabezales de motor de 3 pines a lo largo del eje central. Hay un conector adicional en la parte superior que no se utiliza para este proyecto. La vista inferior muestra los contornos serigrafiados de las conexiones de cabecera 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, la alimentación de los servos se proporciona a través del conector externo de 5 V. Los componentes electrónicos de UNO se alimentan 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 de la carcasa para evitar confusiones al conectar la alimentación al controlador.

Montaje de un controlador de fusión de sensor rev2

Lista de materiales (BOM)

Cantidad Descripción PN/Enlace
1 Tablero de enrutamiento de fusión de sensor de 1,6 mm de espesor https://easyeda.com/portmannc/servo_controller
1 Arduino UNO R3 https://store.arduino.cc/usa/arduino-uno-rev3
1 2,1 x 5,5 mm, 5 V, orificio pasante, conector de cilindro en ángulo recto 101179
1 Condensadores de tantalio de 16 V, 10%, 10 uF GRIFO106K016CCS
1 1x2, paso de 200 mil (5,08 mm), cabezal Phoenix Contact de orificio pasante 651-1755736
6 1x3x, paso de 100 mil (2,54 mm), cabezal macho de orificio pasante 732-5316-ND
1 1x8x, paso de 100 mil (2,54 mm), cabezal macho de orificio pasante 732-5321-ND
1 1x4x, paso de 100 mil (2,54 mm), cabezal macho de orificio pasante 732-5317-ND
3 Separadores hembra-hembra de 11 mm (5 mm de ancho, roscas M3-0,5) R30-1001102
4 Separadores macho-hembra de 6 mm (5 mm de ancho, roscas M3-0,5) R30-3000602
3 Tornillos de máquina de cabeza troncocónica M3-0.5 de 6 mm 36-9191-3-ND
4 Tornillos de máquina de cabeza plana M3-0.5 de 8 mm XM2510008A20000
2 Tornillos de máquina de cabeza plana M3-0.5 de 6 mm XM2510006A20000
6 #4, tornillos para chapa de metal de cabeza redonda de 1/2 pulg. 90925A110
1 Fuente de alimentación de 5 V, 15 W con certificación UL, enchufe de 2,1 x 5,5 mm (motores) 36-9191-3-ND

Otras herramientas necesarias

  • soldador, soldadura, soldador-lechón
  • Destornillador de cabeza Phillips pequeño
  • Destornillador Torx tamaño T10

Llenar el tablero de enrutamiento

Rellene la parte superior e inferior del tablero de enrutamiento con las piezas que encajan en sus contornos. Para la parte inferior de la placa, los cabezales macho se pueden alinear colocando los cabezales en las ubicaciones correctas en la placa Arduino y colocando la placa de enrutamiento encima de los conectores. Los encabezados de 1x8 y 1x4 se pueden soldar en su lugar, lo que garantiza 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 ajustado ya que el conector de alimentación no descansa sobre el Arduino después del montaje. Después de soldar el condensador de derivación, la parte superior de la placa se puede llenar con los seis cabezales macho 1x3 para el control del motor y el cabezal Phoenix Contact 1x2. Tenga en cuenta que el cabezal debe estar orientado de modo que la parte inferior del conector a presión quede hacia los motores para dar el máximo espacio para el montaje 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 usar debido a su proximidad al conector hembra en el Arduino. Atornille los tres separadores hembra-hembra a tres separadores macho-hembra para asegurar los separadores al Arduino. Luego fije el protector de la placa de enrutamiento a los separadores con los tres tornillos M3. La Figura 5 muestra una vista final conceptualizada del escudo poblado montado en el Arduino. La Figura 6 muestra una fotografía del sistema poblado y montado.

Vista final conceptualizada del escudo poblado montado en Arduino

Figura 5. Escudo ocupado con encabezados, conector de alimentación y espaciadores mostrados (vista final conceptualizada)

Parte superior del escudo poblada

Figura 6. Shield rev2.2 completo montado en Arduino (vista superior)

Gabinete del controlador

El controlador incluye una carcasa personalizada. El dibujo mecánico se muestra en la figura 7.

Dibujo mecánico del recinto

Figura 7. Dibujo mecánico del recinto

El controlador ensamblado se monta en el gabinete a través de cuatro tornillos avellanados a través de la placa inferior del gabinete. El gabinete se puede ensamblar a través de los seis tornillos de cabeza redonda y dos de cabeza plana. La información pertinente, como el número de pedido del servo y el suministro externo de 5 V, está grabada en la parte superior de plástico. La figura 8 muestra una fotografía del controlador dentro del gabinete ensamblado.

Sistema ensamblado en envolvente

Figura 8. Sistema ensamblado en gabinete

Control de software desde el host

El microcódigo se puede descargar al 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 gira los servos.

Usando el controlador rev2

Uso de la cámara ITS:

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

Con script de prueba incluido:

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

Otros recursos

Descargas de dibujos mecánicos

Descargas de control de software