protocolo PTZ de enfoque de velocidad variable

Estoy construyendo sistemas de cámaras para montar en la parte superior de una torre de televisión. Cuando las nubes de tormenta ruedan, en el video se muestra el informe meteorológico de la televisión. Nadie quiere subir a la torre para girar, inclinar, hacer zoom y enfocar manualmente la cámara durante una tormenta eléctrica, por lo que los controlamos de forma remota. Actualmente controlo los sistemas con protocolo Pelco D sobre RS485.

Estoy construyendo algunos sistemas de cámara que son capaces de girar, inclinar, acercar y enfocar a velocidad variable. (PTZ). (El prototipo tiene un Arduino que controla los motores de zoom y enfoque).

Por desgracia, mi copia antigua del protocolo Pelco D estándar (y el protocolo Pelco P anterior) no tiene una forma de decirle a la cámara a qué velocidad hacer zoom o enfocar. (El único material de velocidad variable que admite es el movimiento horizontal y vertical de velocidad variable). Así que actualmente configuro la velocidad, que todos están de acuerdo en que es la velocidad incorrecta. Aproximadamente la mitad de la gente dice que es demasiado rápido y la otra dice que es demasiado lento :-). Sería mucho más fácil encuadrar una toma y enfocar si pudiéramos aprovechar el hardware que ya tengo para controlar la velocidad variable.

Controlo ambos extremos del cable RS485, por lo que podría crear otro protocolo aleatorio.

  • ¿Existe una extensión estándar o semiestándar del protocolo Pelco que admita el enfoque o el zoom de velocidad variable, o ambos?
  • ¿Existe una buena manera de extender el protocolo Pelco de tal manera que, cuando agregue nuevas cámaras y un nuevo controlador de cámara a un bus RS485 común, no entren en conflicto con las cámaras antiguas y los controladores de cámara antiguos que ya están en el bus? y es menos probable que entren en conflicto con las nuevas extensiones que otros puedan agregar más adelante?
  • ¿Existe tal vez algún otro protocolo estándar para controlar cámaras de TV, preferiblemente que admitan zoom de velocidad variable? Wikipedia dice que Pelco D se usa en la "infancia" . ¿Hay mejores protocolos disponibles? Si es así, ¿cómo obtengo la información que necesito para implementar esos protocolos en mis sistemas de cámaras?

Respuestas (5)

El comando Pelco 0x25 es "Establecer velocidad de zoom", 0x27 es "Establecer velocidad de enfoque", ambos usan el valor en el sexto byte para establecer velocidades de 0-3:

Del manual Pelco D Rev 4:


Estos dos comandos aceptan valores de 0 a 3, en el byte 6, para cambiar la velocidad de la función indicada. Algunas cámaras (como la cámara X12 del Spectra I) no admiten estas funciones. Si la cámara no es compatible con ninguna de estas funciones, o con ambas, se ignora el comando. 0 es la velocidad más lenta, 3 es la más rápida.


De lo contrario, puede usar el comando 0x4F (ir a la posición de zoom) repetidamente para mover el zoom lentamente, o puede asignar algún otro comando o preajuste para indicar un zoom lento.

Mirando este tutorial (no oficial) de Pelco D/P, hay tipos de mensajes para establecer la velocidad de zoom/enfoque en el conjunto de comandos extendidos.

He usado las funciones preestablecidas de limpiaparabrisas/lavaparabrisas/lámparas y levas en un controlador Micro DS2 dedicado antes. Siempre puede secuestrarlos para enviar señales de incremento/decremento a un parámetro de velocidad de giro rastreado en el extremo de la carcasa. Esto puede resultar útil si desea utilizar una unidad de joystick de control existente que no admite el conjunto ampliado.

Puede intentar firmar el NDA para obtener los documentos oficiales para confirmar.

La versión actual del Protocolo D es 5.2.10 de agosto de 2013. Trabajo en Pelco y si desea una versión actual del protocolo, envíeme un correo electrónico a ehamilton@pelco.com y le enviaré una copia.

Hay varias formas de cambiar el zoom/enfoque/velocidad del iris. Nuestras cámaras no admiten el tipo de cambio de velocidad que podría parecer más útil, es decir, tener el cambio de velocidad de forma variable. Todo lo que nuestras cámaras pueden hacer es hacer cambios de pasos, lo que no es tan útil como podría ser.

Si desea agregar nuevos comandos al Protocolo D, la forma más fácil de no interferir con el resto del Protocolo D es cambiar el primer byte de 0xFF a otra cosa. Entonces todos los usuarios deben ignorar el comando y usted tiene su extensión de "Protocolo D propio". Puede realizar cambios directamente en el protocolo y, mientras no se conecte a un sistema de protocolo D "real", nadie lo sabrá nunca.

Traté de agregar otra publicación pero el sistema dijo que tenía que esperar 10 minutos. Aquí está de todos modos. Para cualquier persona que quiera controlar las unidades del Protocolo D, envíeme un correo electrónico. Tenemos un paquete gratuito de Windows, el GlassKeyboard, que genera comandos de protocolo D y le permitirá jugar con un dispositivo de protocolo D.
Creo que está bien incluir su correo electrónico para que cualquier persona solicite las especificaciones del protocolo, aunque en los sitios de SE las preguntas/respuestas adicionales deben mantenerse en el sitio en lugar de enviarse por correo electrónico.
Me despidieron de Pelco en 2014, desde entonces parece que han dejado de enviar documentos de protocolo. Lo mejor que pude encontrar fue de 2008. (El último que hice fue de 2014). Hay una empresa que tiene un tutorial razonable sobre el protocolo D y P. Es "www.commfront.com". En el pasado, también regalaron un decodificador de protocolo y comando simple. Lo siento, cuando me despidieron tuve que dejar toda mi información. Eric Hamilton.

El comando del protocolo PelcoD consta de 7 bytes de la siguiente manera:

Byte 1 (Sync) - the synchronization byte, fixed to FF
Byte 2 (Camera Address) - logical address of the camera being controlled (Address 1 is 01)
Byte 3 & 4 (Command 1 and 2) are shown below
Byte 5 (Data 1) - pan speed, range from 00 (stop) to 3F (high speed) and FF for "turbo" speed (the maximum pan speed that the device can go)
Byte 6 (Data 2) - tilt speed, range from 00 (stop) to 3F (maximum speed)
Byte 7 (Checksum) - sum of bytes (excluding the synchronization byte), then modulo 100 (Decimal code: 256)

Aquí hay una lista de algunos de los comandos importantes en el protocolo PelcoD que puede escribir directamente en el puerto serie, o si la cámara está conectada a usted por ethernet, puede enviarlos como un paquete de red:

Function    Byte1   Byte2   Byte3   Byte4   Byte5   Byte6   Byte7
Up  0xFF    Address 0x00    0x08    Pan Speed   Tilt Speed  SUM
Down    0xFF    Address 0x00    0x10    Pan Speed   Tilt Speed  SUM
Left    0xFF    Address 0x00    0x04    Pan Speed   Tilt Speed  SUM
Right   0xFF    Address 0x00    0x02    Pan Speed   Tilt Speed  SUM
Upleft  0xFF    Address 0x00    0x0C    Pan Speed   Tilt Speed  SUM
Upright 0xFF    Address 0x00    0x0A    Pan Speed   Tilt Speed  SUM
DownLeft    0xFF    Address 0x00    0x14    Pan Speed   Tilt Speed  SUM
DownRight   0xFF    Address 0x00    0x12    Pan Speed   Tilt Speed  SUM
Zoom In 0xFF    Address 0x00    0x20    0x00    0x00    SUM
Zoom Out    0xFF    Address 0x00    0x40    0x00    0x00    SUM
Focus Far   0xFF    Address 0x00    0x80    0x00    0x00    SUM
Focus Near  0xFF    Address 0x01    0x00    0x00    0x00    SUM
Set Preset  0xFF    Address 0x00    0x03    0x00    Preset ID   SUM
Clear Preset    0xFF    Address 0x00    0x05    0x00    Preset ID   SUM
Call Preset 0xFF    Address 0x00    0x07    0x00    Preset ID   SUM
Query Pan Position  0xFF    Address 0x00    0x51    0x00    0x00    SUM
Query Pan Position Response 0xFF    Address 0x00    0x59    Value High Byte Value Low Byte  SUM
Query Tilt Position 0xFF    Address 0x00    0x53    0x00    0x00    SUM
Query Tilt Position Response    0xFF    Address 0x00    0x5B    Value High Byte Value Low Byte  SUM
Query Zoom Position 0xFF    Address 0x00    0x55    0x00    0x00    SUM
Query Zoom Position Response    0xFF    Address 0x00    0x5D    Value High Byte Value Low Byte  SUM

Comandos anteriores de esta página.

Ejemplos de comandos de PelcoD : Dirección de cámara: 1
Giro a la izquierda a alta velocidad: FF 01 00 04 3F 00 44
Giro a la derecha a velocidad media: FF 01 00 02 20 00 23
Inclinación hacia arriba a alta velocidad: A0 00 00 08 00 20 AF 27
Inclinación hacia abajo a velocidad media: FF 01 00 10 20 00 31
Detener todas las acciones (Pan / Tilt / Zoom / Iris, etc.): FF 01 00 00 00 00 01

Nota : no habrá respuesta de las cámaras en el protocolo Pelco-D

Hola David. Bienvenido a EE.SE. Gracias por compartir la respuesta con nosotros. Pero las respuestas de "solo enlaces" no se recomiendan en este sitio. Las respuestas deben ser independientes, ya que los enlaces pueden morir en el futuro. Por favor presione "editar" e incluya la información importante y relevante de estos enlaces. Todavía puede conservar estos enlaces como referencias.
Edité la respuesta y eliminé todos los enlaces.
Votado desde ayer :) . Puede conservar los enlaces como referencias en caso de que haya tomado algunos de estos códigos de ellos.

Esto puede parecer un poco de campo izquierdo, pero me sentiría tentado a usar el formato DMX.

Si no está familiarizado con él, es un protocolo RS485 que normalmente se usa para la iluminación (incluidas las luces que giran, se inclinan y hacen zoom) que consiste simplemente en 512 números de 8 bits repetidos una y otra vez con una pausa al principio (para indicar que el siguiente número es el primero), si necesita un número de 16 bits, simplemente use dos números consecutivos de 8 bits juntos, varios dispositivos comparten la línea definiendo cuál es el primer número que escuchan.

La idea es que no esté atado a los detalles del dispositivo, solo proporcione los números que necesita, puede usar el kit existente, como puentes de ethernet y escritorios de control, y hay bibliotecas y escudos de ardunio existentes para trabajar con él.

Las desventajas que vienen a la mente es que no tiene detección/corrección de errores y su velocidad relativamente rápida significa que no tiene una gran longitud de cable.

Oye, no uses el protocolo de control CCTV PTZ estándar de la industria compatible con millones de dispositivos, usa un protocolo de control de iluminación comercial en su lugar... lo siento, no puedo ver la lógica.
Siempre diría que use un protocolo existente si hay uno, pero el cartel encontró que faltaba, de ahí mi sugerencia de otro protocolo que ha demostrado ser lo suficientemente simple como para reutilizar sin romper el protocolo. También es un protocolo que está abierto para que pueda desarrollar el trabajo de otros, ¡no se requiere nda!
El protocolo pelco se puede encontrar buscando en Google sin NDA, según mi respuesta, los comandos adecuados ya están allí, el OP simplemente no los conocía.