Usando arduinos conectados a IP para disparar cámaras

5

Estoy buscando construir un sistema de activación de cámara con 5 cámaras DSLR usando arduinos en nuestra red.

Actualmente tenemos cables de activación física para que podamos activar cada cámara DLSR sin demora. A pesar de que todas las cámaras están en la red y ejecutando Nikon capture pro, hay un pequeño retraso al presionar el "botón disparar" en el software, y la cámara realmente captura la imagen. El disparador físico es instantáneo.

Básicamente, me gustaría eliminar la necesidad de ejecutar un cable de activación dedicado a las cámaras, ya que todo lo que quiero es energía y un par de Ethernet a cada cámara. Quiero tener la capacidad de disparar y cambiar de manera inteligente los tiempos de la cámara a través de un arduino o un dispositivo de conexión IP similar, a veces es posible que tengamos un solo disparador, pero leves retrasos en cada disparo, como, tomar uno de inmediato y luego dos más tarde .. ..

El disparo debe hacerse físicamente, pero puede hacerse a través del sensor, por lo que tener un arduino con cada cámara nos dará muchas opciones.

En la sala de control, queremos poder disparar cualquiera de las cámaras con botones físicos, tal como se vería en aplicaciones industriales, algo que realmente puede ser golpeado. Así que de estos botones esperaría ejecutarlos todos en un arduino, y luego ese arduino se comunica con los otros para activarlos.

El flujo de la señal es así

Botón en la sala de control > arduino > internet > arduino > Cable de disparo externo Nikon > Cámara Nikon.

Algunas cámaras se activarán al mismo tiempo, otras con retrasos.

Entonces, mi pregunta clave es: ¿Cuál es la latencia de un ip conectado a un arduino, activando otro?

    
pregunta Simon

2 respuestas

3

TCP / IP en Arduinos no es exactamente la mejor opción para cualquier cosa en tiempo real. La temporización de Ethernet no es determinista, por lo que, independientemente de cualquier método que intente eliminar la vibración o compensar la latencia, nunca se detectará.

Mencionas "Arduino - > network - > Arduino" como tu topología deseada, en cuyo caso descartaría la idea de usar las placas Ethernet (muy caras) y utilizaría algo diseñado para sistemas integrados, como RS- 485. Como tiene el control total de la red, su módulo maestro podría enviar un mensaje de "obturador" para que cada esclavo lo recoja y actúe después de que se complete el mensaje. Todos lo recibirían exactamente al mismo tiempo (+/- 1 ns / pie), por lo que la inestabilidad y el retraso serían despreciables para cualquier aplicación de cámara.

Aquí hay un escudo que tiene RS-485 en él , pero es solo un chip (p. ej., MAX485 & friends ) lo que podría hacer en el tablero.

Editar:

¿Qué tan separadas están estas cámaras? Si están a solo 10 metros de distancia y quieres un sensor (¿ligero?) Que vaya a cada uno, solo conecta un cable de sensor + obturador + alimentación y colócalos en el mismo Arduino. Sólo debe ser de 4-6 cables; Compre algunos buenos conectores y debe ser indoloro para desarmarlos y configurarlos. Es posible que pueda salir con significativamente cables incluso más largos, según el sensor, etc.

    
respondido por el Nick T
2

Para responder a su pregunta clave, la latencia de un arduino IP conectado a otro depende casi completamente de la red de su computadora. El hardware y el disparador de arduino agregarán algo de latencia, pero se puede tratar como 0 en comparación con la cantidad de latencia que agregará una red de computadoras y el hardware de disparo físico.

Normalmente, en redes corporativas de tamaño mediano a grande, he visto una latencia de entre 3 ms y 50 ms.

Si desea que todas sus cámaras se activen al mismo tiempo, es posible que desee considerar un enfoque más sofisticado para hacer frente a los retrasos imprevistos en la red. De vez en cuando puedes enviar información de tiempo a tu disparador arduino. Con el tiempo, puede comenzar a promediar el jitter en la red. Jitter es la diferencia entre la latencia de un paquete y la latencia de otros paquetes en diferentes momentos. Debería poder obtener el tiempo "correcto" con este método, luego, cuando desea que sus cámaras se activen, envía un paquete que indica en qué sello de tiempo desea que se activen.

También puede agregar un paquete de devolución que el usuario de control ardunio recibiría. Con un poco de trabajo, puede utilizar el tiempo de ida y vuelta para perfeccionar su tiempo aún más.

Si no te importa que todos vayan al mismo tiempo, solo necesitarás mantener el paquete de activación, y cualquier sobrecarga asociada, lo más pequeña posible.

    
respondido por el Kellenjb

Lea otras preguntas en las etiquetas