Eliminación de los picos de señal en los periféricos CH

El software CH Manager que emplean los periféricos de CH Products disponen de una gran flexibilidad. Si bien estos periféricos no requieren de ningún tipo de controlador bajo Windows, el uso del CH Manager presenta diversas ventajas. 

Gracias al CH Manager podemos fusionar todos los periféricos de CH para que Windows solo vea 1 (esto es útil dado que ciertos programas tienen limite de periféricos). Además   permite el uso de 3 perfiles en uno (3 mediante CMS) cuya indicación se realiza mediante leds )verde, rojo y naranja). También tenemos el modo lista para cada botón y la posibilidad de generar un esquema gráfico con los controles generados gracias al programa CM Print. Por ultimo pero no menos importante, es posible el uso de código mediante el CMS (Control Manager Scripting). 


El CH Pro Throttle ha resultado ser muy personalizable además de robusto y fiable. CH Products

El CMS permite incluir código como el de este filtro, añadir un gatillo de doble etapa virtual , el uso de 4 perfiles en lugar de los 3 predefinidos y mucho más.

Los picos que se dan en los ejes de estos periféricos, incluso cuando son nuevos, vienen dados habitualmente por una baja calidad en la alimentación eléctrica que proporcionan los puertos USB. Por baja calidad se entiende variaciones en el voltaje de la corriente suministrada al periférico. Una forma de corregirlo es conectar el periférico a otro puerto o a un multiplicador de puertos con alimentación independiente (Hub).

En el caso de que el cambio de puerto no sea posible,gracias al CH Manager hay otra opción.

En la red entre tanta información hay joyas que permanecen ocultas o que no tienen la  divulgación que deberían.  Una de esas joyas es el código de Pure_Awesomeness para la eliminación de las ligeras oscilaciones  generadas por picos de señal que tienen los ejes los periféricos de CH Products gracias al uso de CMS.

Para poder emplear la capacidad CMS es necesario que se active al crear el perfíl. Y posteriormente abrir el editor CM. En la imagen 1 es el séptimo icno desde la izquierda.

 Imagen 1. Apertura del editor CM donde pegaremos el código. 

El código a copiar es:


// CMS Script File
//
// Title: Jitter Reduction Script
// Written By: Pure_Awesomeness
// Date: 03/08/2016
// Description: Stabilises fluctuating data on an axis
// by the use of averages without compromising
// fast changes to the axis and precision of the
// joystick/throttle.
script
//The script is executed continuously, think of it like a loop.
//For this reason, we have to use a "clocktick" command such
//that we only store axis value when your CH product updates.
If (clocktick) then
//collect last 10 values from the 3rd axis of joystick 1.
a10 = a9;
a9 = a8;
a8 = a7;
a7 = a6;
a6 = a5;
a5 = a4;
a4 = a3;
a3 = a2;
a2 = a1;
a1 = js2.a3;
EndIf
//a30 = calculate average from samples
a30 = (a1+a2+a3+a4+a5+a6+a7+a8+a9+a10)/10;
//Using average as output will stabilize the jitter,
//however the more samples, the larger input lag.
//Following if-statement remove input lag by
//switching to the joystick axis during fast movements.
If ([(a30 - a1) > 3] OR [(a1 - a30) > 3]) then
//Output is raw (jittery) data when the change is
//larger than 3. You can play around with it.
cms.a3 = a1;
Else
//Use average as output if throttle is more or less still.
//However there will still be a jitter of +/- 1 because
//CMS doesn’t deal with Reals, only positive integers.
//Following script fixes this.
//Checks if the average is larger/smaller than the previous
//value on the axis. If it is, we add/subtract 1 from it.
//The greater the value you change, the larger "lag" between
//the input and output will be. +/-1 is the sweet spot and
//with averaging we are guaranteed that.
If ([a30 > cms.a3]) then
cms.a3 = a30 - 1;
EndIf
If ([a30 < cms.a3]) then
cms.a3 = a30 + 1;
EndIf
//Above script truncates max and min, this fixes it.
If ([a30 == 255]) then
cms.a3 = js2.a3;
EndIf
If ([a30 == 0]) then
cms.a3 = js2.a3;
EndIf
EndIf
endScript



El código debe aplicar a cada perfil en el cual se quiera aplicar el filtro. Por tanto, hay que abrir, en el CH Manager, el perfil al cual deseemos aplicarle el filtro.

 
 Imagen 2. Vista del editor CM con el código ya pegado.

Tras tenerlo abierto, hay que identificar el periférico al cual queremos aplicarle el filtro. Podemos aplicarse al mando de gases a la palanca de control, a algún eje del panel de gases o incluso a los pedales. 

Para indicar a que eje hay que aplicarle el filtro solo hay que sustituir js2.a3  del código incluido anteriormente por el nombre del eje que queramos:

Así:
js2.a3 
Donde:
  • js2= nombre del periférico. Si disponemos de Joystick y mando de gases de CH, uno será el js1 y el otro el js2. 
  • a3= Es el identificador del eje concreto del periférico.  Cuando son botones, se denominan "b". 
Imagen 3: Se puede ver como el Fighterstick es el js1 mientras que el Pro Throttle es el js2. El identificador completo del acelerador del mando de gases en este caso es js2.a3

Imagen 4: Se puede ver como este cuadrante de gases es el dispositivo js2 y la palanca de la izquierda es el eje a1. Luego el identificador de ese eje sería js2.a1 .Via Simforums.

En definitiva, el numero de dispositivo se puede extraer de la posición que ocupe el dispositivo en cuestión entre las pestañas teniendo en cuenta que la pestaña 'program Settings' no cuenta y que se empieza por la izquierda.  

En la imagen 3:
  • Flightherstick: js1
  • Pro Throttle: js2
En la imagen 4: 
  • FS Yoke: js1.
  • Throttle quad: js2
  • Pro Pedals: js3 
El identificador del eje se puede ver en la imagen 4, remarcado en un recuadro rojo.

Se puede descargar la guía y el código original (en inglés) aquí.

El CH Manager se puede descargar de la página de CH Products, aquí.

Fuente:  Pure_Awesomeness vía Reddit

Comentarios