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.
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.
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
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.
eric hamilton
PedroJ
usuario2207980