Control Components Avanzados

Q-SYS Control 101 Training (Spanish) : Componentes de Control
At 9:32, Nate “steals” a keypad from a Softphone to make his password page. In the latest versions of Q-SYS Designer Software, a Softphone keypad will only function properly if a Softphone is actually configured, which would invalidate this part of the example (even though it would still work in Emulation Mode). In the “Downloads and Links” section, you can download some Custom Components that have found alternative solutions to this keypad puzzle.

3 ) Comunicación Básica

12m 57s

4 ) Block Controller

0m 0s

6 ) Control de Flujo

33m 58s

7 ) Término del Entrenamiento Control 101

1m 24s

Descripción de la lección

Control Components Avanzados 13m 42s

Sumérgete en algunas aplicaciones avanzadas de los Control Components como, Comportamiento Personalizado de un Fader, Botones no Binarios, Status Combiner/E-mailer y Páginas Protegidas por Contraseña.

Transcripción de video

Control Components Avanzados 13m 42s
0:08
Una vez que te sean familiar los Control Components, puedes iniciar a combinarlos para crear
0:13
resultados más interesantes. Como el juego de Trampa para Ratones o una máquina Rube Goldberd,
0:20
puede conectar estos componentes para disparar un evento solo bajo alguna condición en específico.
0:26
Puedes ponerte muy creativo con el uso de los Control Components y llevar a cabo una amplia
0:31
variedad de tareas. Eventualmente toparás con pared – puedes llevar a cabo muchas cosas con estas
0:36
herramientas sencillas, pero llegará un punto en el que necesitarás emplear un lenguaje de
0:41
codificación más complejo como nuestro Script o el Block Controller. Sin embargo, en este video,
0:48
iremos a través de algunos ejemplos de cosas que puedes llevar a cabo con los Control Components,
0:53
así como revisar algunos componentes que tenemos pendientes y no hemos visto. Si quieres conocer
0:59
alguno en particular, siéntete con la libertad de ir directamente donde cada sección comienza.
1:07
Aquí hay una situación bien común – necesitas colocar un fader para un micrófono en una UCI, pero
1:14
esa interfaz será operada por un humano y – no sé si has conocido a los humanos antes – muchos de
1:20
ellos son terribles. Si les das un fader, es una garantía de que llevarán ese fader hasta arriba, lo cual
1:27
nunca es una buena idea.
1:30
En lugar de eso, puede añadir un Custom Control con un Level Fader y personalizar el rango de este
1:36
fader. Yo voy a restringir este entre -20dB y +5dB, ya que creo que es toda la flexibilidad que
1:44
realmente necesitan. Conectaré este control a mi perilla de ganancia original y la añadiré a la UCI. El
1:51
usuario nunca sabrá la diferencia. Él pensará que está llevando a tope el sistema, sin embargo, aún
1:57
hay mucho margen.
1:59
Tomemos tambiél el botón de mute del canal para que el usuario pueda apagar el micrófono. Como
2:04
he limitado el valor mínimo del fader a -20dB y este es un rango todavía audible, sería bueno que
2:10
este botón de mute se encendiera automáticamente cuando el usuario lleve el fader hasta abajo.
2:16
Para ello podemos añadir una sencilla Control Function.
2:20
No importa el rango que hayas determinado para este fader, sé que cuando llega hasta abajo, su
2:25
parámetro de .Position es 0. Voy a añadir una sentencia comparativa con otro control que ya tenga
2:32
una posición de 0. Añadiré un botón toggle el cual, por defecto está apagado y a seleccionar un
2:39
Control Function en “Position Equal”.
2:42
Cuando el fader esté en la hasta abajo su posición es 0, lo que equivale al botón toggle que también
2:47
está en posición 0, así que eso satisface la condición de la función de Control “Position Equal”, la que
2:54
entregará un 1 a la salida y activará mi botón de Mute. Ahora, cuando bajo totalmente el fader, se
3:01
activa automáticamente el Mute.
3:03
Si muevo de nuevo el fader, su posición ya no corresponde a la del botón toggle, enviando un 0 que
3:08
desactivará el Mute. Aún puedo activar manualmente el Mute, pero cuando elijo mover el fader,
3:14
abrirá automáticamente el micrófono de nueva cuenta. Hemos hecho una solución sencilla a un
3:20
problema sencillo.
3:25
Los botones son geniales para comportamientos binarios – cuando necesitas un 1 o un 0, son
3:30
perfectos. Pero ¿qué pasa si quieres un botón con dos valores? Por ejemplo, digamos que queremos
3:35
un botón de toggle para darle ganancia a un Audio Player entre una configuración alta y una
3:40
configuración baja de nivel. No queremos mutearlo o desmutearlo, sino que la ganancia alterne entre
3:46
5dB y -10dB. ¿Cómo podemos hacer esto? Hay muchas maneras de llevar a cabo esto, todo depende
3:53
de cómo trabaje tu cerebro. Veamos algunos métodos.
3:57
La forma más sencilla en la que pienso es usar Snapshots – puedes usar un 1 o un 0 para activar un
4:03
botón de Load (cargar) en un Snapshot, el cual llame un valor guardado para tu control de ganancia.
4:10
Creemos un nuevo banco de Snapshot y asociemos la perilla de ganancia con ese banco. Después,
4:16
coloquemos la ganancia en +5dB y guardemos el Snapshot 1, coloquémosla a -10dB y guardemos el
4:24
snapshot 2.
4:26
Tomaré un flip-flop – debes recordar que sus LEDs “out” y “no out” alternan basados en el estado del
4:33
flip-flop. Expondré los pines de control para llamar los Snapshots 1 y 2 y los conectaré con el flip-flop.
4:41
Ahora, puedo colocar este botón de State (estado) en una UCI, dando al usuario un solo botón que
4:48
tiene el efecto de cargar diferentes valores a una perilla de ganancia.
4:52
Veamos otro método – Podemos usar un Control Router que directamente envíe un nuevo valor al
4:58
control de ganancia. Aquí tenemos dos custom knobs (perillas personalizadas), una la colocamos en 5
5:06
y la otra la colocamos en -10. El Control Router determina cuál de ellas pasará. Podemos exponer los
5:13
pines de control para la selección de entrada 1 o entrada 2, y usar nuestro flip-flop para alternar
5:19
entre estas opciones.
5:21
Ahora, si no deseas usar el flip-flop, puedes usar otro botón para activar la primera opción del router
5:27
o del snapshot, y usar una Control Function para Invertir la posición de ese botón, de tal manera que,
5:33
cuando el botón está apagado, enviará una señal de encendido a la segunda opción del router o del
5:38
snapshot. Esto tiene el mismo efecto, es solo un ejemplo de la flexibilidad de estos componentes de
5:45
control.
5:50
Veamos este componente de control – El Status Combiner. Este es un componente extraño que solo
5:56
acepta controles de Status (estado). Puedes encontrar controles de estado en casi todos los
6:02
elementos del inventario o componentes dependientes de la red. Probablemente reconozcas estos
6:08
controles de status de la UCI predeterminada “Inventory Status” que enlista la salud de cada
6:14
dispositivo en tu diseño.
6:16
Aun cuando esta UCI es útil, te puede llevar algo de tiempo el ver cada uno de los estados en un
6:22
diseño con muchos elementos. Puedes combinar todos los estados en una sola ubicación conectando
6:28
su Status Control al Status Combiner.
6:32
En la parte alta, el Status Combiner enlista el peor estado de todas las entradas. Si todo está
6:37
corriendo adecuadamente en tu diseño, dirá OK. Pero si se desconectara uno de mis periféricos, por
6:43
ejemplo, ese dispositivo desaparecería de la red y se registrará como Fault (falla).
6:50
Puedes personalizar una etiqueta por cada entrada para que te diga exactamente qué dispositivo
6:55
está experimentando algún detalle, y si quieres ignorar algún dispositivo en particular, puedes
7:01
suprimir su estado, lo cual quita temporalmente el elemento problemático de la lista del Status
7:07
Combiner.
7:09
Tenemos otro video disponible donde en una versión más joven de Nate que muestra cómo usar el
7:15
Status Combiner para enviar un email a ti o a un técnico. Se ve como esto – cuando el LED de falla se
7:21
enciende, podemos activar el botón de Send (enviar) en el componente E-mailer. El mensaje de este
7:29
email puede llenarse con la cadena de texto que obtenemos del control “Combined Status (estado
7:35
combinado)”, el cual describe el error.
7:38
Sin embargo, hay un problema con esta configuración. Si el recinto reinicia el sistema o tiene un corte
7:45
eléctrico, habrá un breve periodo donde el Core esté activo pero sus periféricos estén inicializándose.
7:52
No quieres que te llegue un email diciéndote que tu sistema está roto solo porque tuvieron un corte
7:58
de energía así que, ¿cómo podemos evitarlo?
8:02
Utilicemos algunos Control Components para resolver esto. Sabemos que, si el sistema se está
8:07
reiniciando, estará todo OK en alrededor de 30 segundos. Usemos esto para validar si es que
8:14
presionamos o no el botón de Send. Colocaré un Control Delay entre el LED de Falla y el control de
8:20
Send, y lo ajustaré a 30 segundos.
8:24
Al término de estos 30 segundos, queremos comparar el estado actual del LED para saber si la falla
8:29
sigue pasando. Tomaré una Control Function y lo configuraré como “Logic And”. Esto requiere que
8:36
ambas entradas sean verdaderas. Así que, si la falla ha esperado 30 segundos entonces el primer pin
8:44
será verdadero, y si la falla aún está ocurriendo, entonces el segundo pin será verdadero y la función
8:51
activará el botón de send del E-mailer.
8:54
Si ya pasaron 30 segundos y el sistema se ha restablecido, entonces el LED original de Fault será falso,
9:01
lo cual no satisface las condiciones de la función y no se enviará el email. De nuevo, una solución
9:08
sencilla para un problema sencillo.
9:13
Una de las preguntas finales que siempre recibo es, si se puede agregar una contraseña a una página
9:19
en particular de una UCI. Si bien puedes restringir una UCI completa a un usuario, requiriendo que él
9:25
acceda con un número PIN, no es una manera nativa de solicitar un código de acceso para una página
9:31
en específico. Sin embargo, con todas las herramientas que hemos visto en los Control Components,
9:36
puedes utilizar tu propio método. Existen algunas maneras de hacerlo, y esto es algo que podría ser
9:41
mucho más sencillo con algo de scripting, pero aún no lo conocemos, así que veamos cómo hacerlo
9:47
con los pines de control.
9:48
Una de las formas en las que trabajo es, me gusta escribir la función deseada y entonces reemplazar
9:54
cada segmento con una herramienta a mi disposición. Aquí está lo que deseo hacer: “Si el usuario
10:00
coloca la contraseña adecuada y presiona enter, entonces la página de la UCI debe cambiar”. Bueno,
10:07
puedo ver que voy a necesitar una “Logic AND” para validar “si coloca contraseña adecuada” y
10:12
“presiona enter”.
10:14
Así que tengo una Logic AND y un botón momentáneo para “Enter”. Pero ¿cómo puedo obtener una
10:19
contraseña del usuario y probar si es correcta? Bueno, me llegan a la mente varias opciones, pero
10:26
déjame mostrarte mi favorita. Para obtener una contraseña del usuario, necesito un teclado. Y no le
10:32
digas a nadie, pero me robaré uno del componente del Softphone.
10:36
Si este diseño no está utilizando el número máximo de Softphones, no hay daño alguno en crear uno
10:42
solo para usar su teclado. Añadiré todos los botones a mi página de UCI. Aquí está el truco que me
10:49
gusta para validar la contraseña – Crearé un nuevo Snapshot Bank y lo asociaré con el Dial String o
10:56
“cadena de marcado” - ese el número telefónico- con ese snapshot.
11:00
Entonces colocaré la contraseña correcta y lo guardaré como Snapshot 1. Hay un pin de control
11:07
disponible en cada snapshot que puede que no conzcas – Expondré este llamado “Match 1”. El
11:14
control “Match” es un LED que se enciende cuando el diseño está en un estado que coincide con la
11:20
configuración guardada en el snapshot.
11:22
Así que, si alguien escribe el mismo número que he guardado en el Snapshot 1, el snapshot Match se
11:29
encenderá, indicando que coincide. Así que usaré esto para la primera mitad de mi Logic AND. Ahora,
11:37
cuando alguien coloca el número correcto Y presiona el botón enter, ¡tenemos un 1!
11:43
De nuevo, hay un número de formas en las que podemos usar este 1 para cambiar la página de la
11:48
UCI, pero voy a activar otro Snapshot, ya que pienso que es la más sencilla. Crearé otro Snapshot
11:54
Bank y lo asociaré con el control de página actual del touchscreen que quiero afectar. Seleccionaré la
12:01
página secreta y grabaré el snapshot y conectaré mi Logic AND para activar este snapshot.
12:07
¡Tada! Tengo un teclado, meto el código y la página cambia. Puedo darle al usuario un botón de
12:14
navegación para regresar a la página principal. Probablemente hay algunos retoques que puedo
12:20
hacerle a este diseño. Por ejemplo, si el usuario coloca un código incorrecto – o si el LED de Match
12:26
NO está activo después de presionar el botón Enter, entonces quiero que se active el botón “Clear”
12:32
(limpiar) del PinPad para borrar lo que se escribió.
12:35
Te apuesto que puedo diseñar un contador que se incremente cada vez que coloquen una contraseña
12:40
errónea. Si lo intentan tres veces, podría disparar una alarma###, enviar una señal desde el GPIO a la
12:51
iluminación del cuarto###, apuntar las cámaras de Q-SYS a esa posición e indicar a las matrices de
12:58
video que envíen esa señal de la cámara a cualquier TV del recito###, mientras llama a la policía ##y
13:05
me envía un email… etc.
13:08
El punto es que, te puedes divertir mucho con las Control Functions. Realmente recomiendo que
13:13
pases algo de tiempo jugando con ellos, y espero que estos videos te hayan inspirado algunas ideas.
13:19
Tenemos un ejercicio en la Hoja de Trabajo del entrenamiento de Control para que pueda
13:23
completarla, pero siéntete libre de desafiarte a ti mismo pensando en un problema e ideando la
13:28
solución. Si encuentras algo que no puedes hacer, tal vez sea hora de echar un vistazo al scripting o al
13:34
Block Controller. Diviértete jugando y nos vemos la próxima.