Activar el control de velocidad electrónico con Arduino

3

Para cualquiera que esté viendo esto, la mayoría de nuestros problemas parecían ser el resultado de no tener el rango de pulso correcto. Eventualmente conectamos nuestros ESCs a un controlador RC estándar y usamos un osciloscopio para determinar el rango de pulso exacto al que responderían.

Estoy trabajando en un quadcopter controlado por Arduino usando Tower Pro W18A (que en realidad están etiquetados Hacia Pro). Estoy usando la biblioteca Arduino Servo para controlar los ESCs (Control de velocidad electrónico).

El problema es que los ESC no comienzan a responder de manera inmediata. Hay una secuencia de comandos de aceleración que deben enviarse antes de que se enciendan y comiencen a responder a los comandos.

Al principio, creé un programa que nos permite establecer el valor que se envía a los controladores de velocidad manualmente desde un control deslizante. Usando esto, descubrí que comenzando en 0, deslizando hasta alrededor de 70-90, y luego volviendo a cero, se activan los ESC. Después de eso, responden normalmente.

Sin embargo, por alguna razón, no he podido replicar esto en el código. Así es como se ve mi código en este momento.

  Serial.println("Setting all to 0...");
  setAllESCs(0);
  delay(2000);
  for(int i=0;i<70;i++){
    setAllESCs(i);
    delay(20);
  }
  for(int i=70;i>0;i--){
    setAllESCs(i);
    delay(20);
  }
  delay(2000);
  Serial.println("Ok, trying at 50...");
  setAllESCs(50);
  delay(500);
  Serial.println("Going in 1 sec...");
  setAllESCs(0);
  delay(1000);

He intentado varias variantes. 0 a 90 a 0. 0 a 180 (máx.) A 0. 0 deslizándose hasta 90 y volviendo a 0. Sin suerte todavía.

¿Alguien tiene experiencia en hacer funcionar esta activación del controlador de velocidad?

Hay numerosas menciones en línea de la documentación (limitada) que viene con el ESC que está equivocado, pero nada proporciona más detalles sobre esto.

    
pregunta Computerish

2 respuestas

3

He trabajado en la construcción de un quarocopter hecho en casa para mi proyecto del último año, recuerdo que también tuve problemas con esto :)

He usado Turnigy Plush 30amp Speed Controllers.

Primero de todos, FYI:

La secuencia normal al iniciar un ESC (de nuevo, con la que trabajé) es:

  1. tan pronto como su ESC esté encendido: aceleración mínima (cerca de 1 ms de pulso) durante unos 3 segundos (hasta que hayan transcurrido los códigos de pitido del tipo de batería y el inicio para comenzar)

Esta es una característica de seguridad; normalmente, esto significa que el acelerador está al mínimo. Sin embargo, la gran mayoría de los Controladores Electrónicos de Velocidad son programables en términos de que usted tiene que programar este acelerador mínimo (y máximo) que dije antes. En otras palabras, tal vez el acelerador mínimo programado sea de aproximadamente 0,7 ms (si lo programó desde el transmisor RC con ajuste ajustado al mínimo) y cuando enciende su entrada ESC tiene un pulso de aproximadamente 10 ms, es una función de seguridad que no se inicia, ya que en este caso el acelerador no es mínimo.

Para programar los nuevos valores de entrada máximo y mínimo (calibración):

  1. Encender
  2. tan pronto como la ESC esté activada: aceleración máxima (cerca de 2 ms de pulso) nuevamente, espere a que suenen (solo tipo de batería)
  3. salte rápidamente a la aceleración mínima (cerca del pulso de 1 ms) y espere de nuevo los nuevos pitidos de inicialización (esta vez habrá menos, sin tipo de batería)
  4. ahora se almacenan los nuevos valores para la aceleración mínima y máxima

Le recomiendo encarecidamente que use este tipo de inicialización cada vez para que todas las ESC se sincronicen con respecto al valor mínimo y máximo del acelerador. También recomiendo encarecidamente que no tenga montadas hélices cuando experimente con este enfoque :)

Ahora, con respecto a tu código,

  • No creo que tenga que deslizar todo el camino hasta el máximo o hasta el mínimo durante la fase de inicialización (en mi caso, ESC espera un valor lo antes posible, sin diapositivas), debe escribir el valor de salida directamente (no deslice hacia arriba / abajo).
  • Tan pronto como alcanza el valor máximo, comienza a deslizarse hacia el mínimo. Debe permanecer el tiempo suficiente al valor máximo (alrededor de 1 segundo)
  • Si la inicialización no es correcta en el primer intento, el ESC se bloquea hasta que se corta el suministro y se vuelve a encender. No tiene sentido realizar intentos de inicialización si falla el primer intento.

Al calibrar o iniciar el ESC, asegúrese de mantener el valor mínimo y / o el valor máximo siempre que sea necesario. Algo como:

Inicio normal (como describiste tu ESC):

  • Activar ESC
  • aceleración mínima
  • espera 2 segundos
  • aceleración máxima
  • espera 2 segundos
  • aceleración mínima
  • espera 1 segundo
  • está bien para ir

Starup normal (el ESC que usé):

  • Activar ESC
  • mínimo
  • espera 3 segundos
  • está bien para ir

Calibración:

  • Activar ESC
  • máximo
  • espera 2 segundos
  • mínimo
  • espera 1 segundo
  • está bien para ir

Otra cosa, es bueno saberlo, al ingresar al modo de programación para los ESC le permite configurar muchos parámetros, como el umbral de corte, el freno. Antes de intentar el vuelo, debe asegurarse de que todos estos parámetros estén configurados de la misma forma para todos los ESC que utilice. Una vez más, para el ESC que utilicé, consulte el manual, página 2 .

Estoy bastante seguro de que ya lo has resuelto, pero quería publicarlo, quizás ayude a otros :)

    
respondido por el Dan
0

Esta es una característica de seguridad, si conecta su avión (por ejemplo, un avión rc) con la velocidad establecida alta, podría lastimarse. Esta secuencia evita eso, ya que debes devolver la velocidad a cero y luego aumentar la velocidad. (Puede que esté un poco alejado de los detalles exactos)

    
respondido por el russ_hensel

Lea otras preguntas en las etiquetas