¿Cómo convertir un TowerPro 18A MAG8 (HH30A_V1.1) Control electrónico de velocidad (ESC) de PWM a I2C?

4

Hace un tiempo, compré cuatro de estos ESC para usarlos para el control de motores sin escobillas.

Ahora necesito saber cómo convertirlos de PWM a I2C.

No soy ingeniero eléctrico, así que no sé cómo hacerlo. Ya busqué en la web, pero no encontré nada útil. Por lo general, me muestran foros confusos o las versiones de los controladores son diferentes.

¿Alguna idea de cómo modificarlas?

    
pregunta Marc

3 respuestas

8

La forma en que abordaría esto es no modificar los ESC en absoluto. Ese camino conduce a la frustración.

Tendrás mucha más suerte al hacer un I2C - > Módulo PWM. Esto es más fácil que los sonidos. En primer lugar, un poco sobre RC servo PWM

UnservoRCesperaverunpulsocada20milisegundos(50vecesporsegundo).Lalongituddeestepulsoleindicaaquéángulogirar.Unpulsode0.9mssignifica+90º,mientrasqueunpulsode2.4mssignifica-90º.

LaentradaESCesperaráelmismotipodeentrada,perointerpretaráquelosimpulsossignificanalgosobrelapotenciadelmotor,enlugardelángulo.MuchosESClepermitencalibrarlosI.E.Explíquelesquélongituddelospulsoscorrespondenaquépotenciadelmotor.Amenudo,mantienespresionadounbotónparacambiarlosalmododecalibración,luegomueveseljoystickatravésdeunasecuenciade,presionandoelbotónnuevamentedespuésdecadamovimiento.

TodoloquenecesitaencontraresunchipquepuedaproducirtalseñalPWM,apeticióndeloscomandosI2C.

Bienhecho,existetalchip: PCA9685 . Es más, en realidad tiene 16 canales de salida, ¡así que puedes manejar 16 de esos ESCs! Puede producir frecuencias de 40Hz a 1000Hz, con una resolución de 12 bits. Eso significa que obtendrá una resolución de más de 8 bits en el rango de 0,9 ms - 2,4 ms. Con este chip, podrás conectar servos, ESC, lo que sea en tus 16 puertos.

Si necesita ayuda para que esto funcione, solo haga preguntas específicas en este foro y estaremos encantados de ayudarle.

Añadido:

Kevin mencionó que también puedes hacer esto con un microcontrolador. Probablemente la forma más sencilla de hacerlo es con un PSoC3 de Cypress Semicondctor . La razón para elegir estos sobre la mayoría de los otros microcontroladores son:

  • Puedes tener fácilmente 4 salidas PWM. No hay muchos MCU con tantos. De hecho, creo que puede tener más de 50 salidas PWM si lo desea.
  • Configurarlo es increíblemente fácil. Considerablemente más fácil que un PIC, por ejemplo.
  • El código real también sería bastante simple.

A diferencia de la mayoría de los MCU, básicamente puedes elegir cualquier cosa y los muchos periféricos que quieras de una gran lista. Los arrastra a una página de esquema y los conecta como desee. En este caso, el cableado es bastante simple:

Aquíhecreado8salidasPWM.Configurarlosesmuyfácil:

Aquí estoy configurando uno de ellos de la siguiente manera:

  • Resolución de 16 bits (esto le dará más de 12 bits de resolución para su aplicación)
  • Período de tiempo de 20ms
  • Un ancho de pulso inicial de 1.65ms

Esta configuración significa que tan pronto como se encienda el PSoC y se inicien los módulos PWM, producirán inmediatamente la señal 0º.

    
respondido por el Rocketmagnet
2

A menos que alguien más haya hecho esto por primera vez este ESC específico , o la hoja de especificaciones para este ESC específicamente menciona la compatibilidad I2C, no tiene suerte.

Básicamente, un ESC como este está compuesto por un microprocesador, junto con un montón de MOSFET de potencia y algunos otros dispositivos.

En los casos en los que se ha hecho esto, se trata de reprogramar el microprocesador con una imagen de firmware que admita la comunicación I2C. En la mayoría de los casos, esto implica escribir una versión de firmware que admita I2C. (A menos que el fabricante haya publicado el código fuente para su firmware). También puede ser posible hacer esto portando una copia del firmware de otro ESC similar. Ambas opciones requieren una gran familiaridad con la programación MCU incorporada y el control del motor.

Si hay versiones de I2C para un producto similar, deberá realizar una ingeniería inversa del ESC lo suficiente como para poder determinar qué se modificó y realizar las modificaciones correspondientes en las fuentes de firmware. Luego, necesita un programador para cualquier microprocesador que este utilice para llevar el firmware al IC.

Siendo realistas, por su pregunta, creo que esto puede estar un poco más allá de sus capacidades actuales.

I2C y el esquema de modulación PWM utilizado en dispositivos RC comunes son bestias muy diferentes.

Esta es una de esas situaciones en las que puede decir "Si no sabe lo suficiente sobre cómo trabajar con MCU y tiene que hacer la pregunta, realmente no sabe lo suficiente como para lograr lo que quiere hacer. "

Si quieres aprender, recomendaría comenzar con una MCU simple, como un Arduino o similar. Una vez que esté en el punto en el que no esté utilizando el IDE de Arduino para escribir código para el Arduino, podría echar otro vistazo a este proyecto.

Creo que su mejor opción sería intentar hacer algo que genere un tren de pulsos Servo PWM y se controle a través de I2C. Puede haber cosas como esta en el mercado, pero no conozco bien el mercado de RC.

    
respondido por el Connor Wolf
0

Arduinos ha incorporado modos PWM para muchos de los puertos de conectores, y los conceptos básicos son bastante fáciles de aprender. Comienza aquí: arduino.cc

Lo que sea que tenga que esté enviando este I2C, se puede recibir en su controlador PWM basado en Arduino.

También puede enviar un tren PWM a estos ESC utilizando el escudo Ardupilot con el código de Github o ardupilot.com y un par de Arduinos 328, 2560 diferentes (es decir, si su objetivo es construir un avión no tripulado, un coche o un avión de RC) . Si esta es tu idea para 4 ESC, entonces ir con las golosinas disponibles es mucho más fácil que aprender a codificar las funciones de control de Man-In-The-Loop en código C.

¡La mejor de las suertes!

    
respondido por el user3523897

Lea otras preguntas en las etiquetas