Pregunta:
¿Puedo controlar este motor ESC / Brushless con una Raspberry Pi y / o Arduino?
Shane C. Yost
2014-06-04 01:07:01 UTC
view on stackexchange narkive permalink

Mi amigo y yo hemos estado leyendo artículos sobre el control de ESC / motores sin escobillas desde un Arduino o Raspberry Pi. Los artículos que he leído dan cautela sobre la idea de que el control de tales sistemas depende de las especificaciones del ESC. Por ejemplo, un artículo que he leído habla sobre el control de ESC de 20A o 30A, pero el ESC que estamos tratando de controlar supera eso.

Aquí hay un enlace al ESC y el motor Brushless que estoy tratando de controlar a través de un Arduino y / o Raspberry Pi. http://www.hobbyking.com/hobbyking/store/__25137__turnigy_trackstar_waterproof_1_10_brushless_power_system_3000kv_80a.html

¿Hay alguien que pueda darme algún comentario sobre si este ESC / Motor se puede controlar usando un Arduino y / o Raspberry Pi. Me gustaría recibir comentarios antes de que mi amigo y yo sigamos con el pedido.

Dos respuestas:
Craig
2014-06-04 21:00:38 UTC
view on stackexchange narkive permalink

Los ESC (controladores electrónicos de velocidad) se controlan normalmente de la misma forma que controlarías un servo de pasatiempo, con una señal PWM. Hay muchas guías para controlar un servo que deberían ser aplicables al ESC.

Dado que la Raspberry Pi es un dispositivo de 3.3V, es posible que necesite un cambiador de nivel si su ESC necesita una señal de 5V.

Aquí hay un tutorial para Raspberry Pi: https://learn.adafruit.com/adafruits-raspberry-pi-lesson-8-using-a-servo-motor/overview

Y Arduino: http://playground.arduino.cc/Learning/SingleServoExample

user2833494
2015-09-12 12:46:00 UTC
view on stackexchange narkive permalink

Veo que llego muy tarde a la fiesta, lo siento. Sin embargo, solo recientemente comencé a jugar con el Pi, así que tendrás que perdonarme.

Creo que he encontrado una posible respuesta para ti, si aún necesitas una, si no es nada grande. Lo proporcionaré de todos modos en caso de que alguien más se tope con este hilo como lo hice yo, y esté buscando una forma de controlar un ESC con una Raspberry Pi.

Actualmente tengo un código muy simple para controlar un ESC 320A (Zjchao 7.2-16v Versión de alto voltaje 320a ESC cepillado Camino de remolque con freno para Rc Car Truck <, que se encuentra en Amazon) usando la Raspberry Pi Y una placa PWM PCA9685 (ADAFRUIT 16 CANALES 12 BIT PWM / SERVO DRIVER - INTERFAZ I2C <- que se encuentra en adafruit). Tendrá que perdonar mi código antes de tiempo, ya que no soy un maestro. Hice algunas búsquedas con anticipación para ver si alguien había hecho esto, pero seguí dibujando pajitas cortas. No pude controlar un ESC directamente desde el Pi y encontré algún código aquí y allá, pero nunca nada que funcionó.

Casi me rindo, pero luego encontré este hilo que sugirió usar un PCA9685. Así que agarré el usado que estaba en mi cajón de un proyecto antiguo, conecté todo y ejecuté el código del hilo mencionado anteriormente. Tenía algunos problemas, principalmente yo estaba teniendo un problema "simulando activar completamente el acelerador y luego invertirlo por completo" para que el ESC arrancara correctamente. Lo descubrí leyendo el hilo real y viendo que primero debes presionar y mantener presionada la flecha ARRIBA, luego presionar y mantener presionada la flecha ABAJO. Muy bien, claro, no hay problema.

Una vez que me di cuenta de eso, desconecté todo, volví a conectar todo, reinicié el script de Python (del hilo mencionado anteriormente), y procedí a "seguir instrucciones" y ¡¡¡BOOOOOM !!! ¡Escuché el tono mágico de Beep-BEEP-Boop-Beep-Boop y me di cuenta de que ahora estaba funcionando! Luego procedí a modificar el código ya que no quería tener que hacer esta secuencia manualmente cada vez que quiero controlar mis motores desde una desconexión. Lo siguiente es mi sabor de código alterado del hilo mencionado anteriormente una vez más ... simplemente dando crédito donde es debido.

  from Adafruit_PWM_Servo_Driver import PWMimport time, cursespwm = PWM (0x40, debug = True ) pwm.setPWMFreq (60) screen = curses.initscr () curses.noecho () curses.cbreak () screen.keypad (True) running = Truefwdmax = 600stop = 400revmax = 200go = 400inc = 20spinup = 1def bootup (): boot = 200 mientras arranca < fwdmax: boot + = inc pwm.setPWM (0,0, boot) time.sleep (0.1) if boot > fwdmax: while boot > revmax: boot - = inc pwm.setPWM (0,0, boot ) time.sleep (0.1) if boot < revmax: boot = 400 pwm.setPWM (0,0, boot) spinup = 0 break while running: char = screen.getch () if char == ord ('q'): running = Falso más: if char == ('b') y spinup == 1: bootup () if char == curses.KEY_UP: if go < fwdmax: go + = inc elif char == curses.KEY_DOWN: if go > revmax: go - = inc elif char == ord (''): go = stop pwm.setPWM (0, 0, go) # cerrar cleanlycurses.nocbreak (); screen.keypad (0); curses.echo () curses.endwin ()  

Entonces, lo que hago es esto:

  1. conecte pi a la placa de prueba y conecte PWM9685 para probar
  2. conecte la fuente de alimentación externa a la placa PWM
  3. conecte el motor y la batería para el motor al ESC como lo haría con su coche RC

Aquí es donde debe tener cuidado en caso de que a su ESC no le guste la frecuencia de 60 hz o los valores que se envían a través de mi código

  1. ejecuta el código provisto, pero NO presiones nada.
  2. conecta ESC al primer lugar en PWM (0)
  3. presiona 'b' para iniciar el ESC

Flecha ARRIBA = ir más rápido x20

Flecha ABAJO = ir más lento x20

que he modificado del código encontrado en hilo mencionado anteriormente

'q' = salir del programa

'Barra espaciadora' detendrá el motor

¡Espero que esto ayude!

Aquí está la razón por la que necesito realizar esta tarea, un proyecto paralelo divertido: tanque impreso en 3D



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...