Unidad de servicio de CC cepillada

Los motores de CC sin escobillas y la electrónica del vehículo asociada tienden a ser costosos y complicados. [Ottoragam] estaba buscando una alternativa más barata y construyó este controlador de servidor Brush DC y los resultados parecen bastante prometedores. Mira el video después de la pausa.

Necesitaba un circuito cerrado barato para su cerveza casera CNC. La fuente de alimentación puede suministrar un motor de CC cepillado con hasta 7 A de corriente continua hasta 36 V, que funciona hasta aproximadamente 250 W o 1/3 HP. Realiza un control de bucle cerrado con reacciones de codificador en cuadratura. El disco acepta señales simples de PASO y DIRECCIÓN, lo que facilita una interfaz con microcontroladores y lo usa como reemplazo de motores paso a paso en aplicaciones de posicionamiento. Todo el control es manejado por ATmega328P. Toma las señales de entrada y los datos del código, controla el PID y acciona el motor con el controlador MOSFET de puente DRV8701. También hay alguna detección de errores por sobrecorriente del motor y subtensión del controlador. Cuatro IRFH7545 MOSFET en configuración de puente H forman la etapa de potencia de salida.

Esto todavía está progresando, y [Ottoragam] tiene una serie de funciones esperando en su lista de deseos. Los importantes incluyen agregar una interfaz en serie para facilitar el ajuste de los parámetros PID y crear una GUI para facilitar el ajuste. El proyecto es de código abierto y todos los archivos fuente están disponibles en su repositorio de Github. La placa es principalmente de montaje en superficie, pero los pasivos son todos 0805, por lo que debería ser fácilmente plegable. La traza QFN para el microcontrolador puede ser la única difícil. [Ottoragam] Me encantaría tener algunos probadores beta para sus tableros, y tal vez algunos comentarios útiles para mejorar su diseño.

  • ESTOLA dice:

    ¡Esto es genial!

    Pensé en eso para los controladores CNC baratos. Los motores de CC con escobillas son mucho más baratos que los motores paso a paso, tienen un par y una velocidad más altos.

    Originalmente pensé en un codificador rotatorio y de reducción adaptado en el eje final (de salida), pero un codificador ubicado aquí necesita mucha resolución y eso significa caro.

    Puede colocar un codificador de resolución mucho más baja (y mucho más barato) en el eje del motor que de alguna manera viola algunas reglas como el “juego” después de que el dispositivo sensor ignore el eje del motor. Cuando lo piensas, es lo mismo para los transeúntes de todos modos: las métricas de control no incluyen factores como “jugar”.

    Un costo aún mejor que puede tener algunas desventajas es que AC conecta los pulsos del motor al micro y los calcula. Muy pocas piezas adicionales y piezas baratas de todos modos: algunas tapas, resistencias y amplificadores operativos o tal vez ni siquiera eso.

    +10 [Ottoragam] – ¡gran proyecto!

    • Puntilla dice:

      play = backlash, tiene compensación.

    • ottoragam dice:

      Gracias por tus amables palabras, RÖB, me siento muy honrado de tener gente a la que le gusta mi proyecto. Esto se está procesando, así que espere agregar más funciones en las próximas semanas.

    • macona dice:

      No desea tener el codificador en el eje del extremo si hay alguna reacción. Establecer una pesadilla. Debe utilizar una configuración PID muy suave para evitar que oscile, lo que limitará significativamente el rendimiento. Puede hacer un segundo bucle de codificador en el eje final y usarlo para garantizar la precisión de posicionamiento final. El kflop puede hacer eso y es una opción para los molinos cnc comerciales.

      • neon22 dice:

        sí +1 para dos codificadores …

      • Herramientas de máquina dice:

        Machdrives también es un servidor económico para codificador dual para motores de CC con escobillas.

  • tipo astuto dice:

    http://elm-chan.org/works/smc/report_e.html

    tiene UART para configurar parámetros incluso

    • ottoragam dice:

      Planeo implementar comunicaciones en serie entre el controlador y la computadora para establecer parámetros e incluso operar un algoritmo para automatizar el bucle PID en la computadora. Mi unidad también acepta señales STEP / DIR, por lo que puede funcionar donde se usó un motor paso a paso;)

  • Galane dice:

    ¿Qué tal uno capaz de manejar 1 o 1,5 caballos de fuerza, 90, 100 voltios o más cintas de correr?

    • DV82XL dice:

      Probablemente sea mejor preferir un producto comercial para esos niveles.

    • Mike Lu dice:

      Los controladores de ángulo de fase funcionan a la perfección para motores universales.

  • k-ww dice:

    Hice un carrete hace unos 20 años usando un servidor de CC y un codificador cuadrático, controlado por Z80. El software estaba bloqueado, no vio el microinterruptor de fin de carrera y rompió un soporte. En la siguiente versión, agregué dos microinterruptores inmediatamente después de las paradas finales del sistema de cambio, ambos en serie con el motor y con diodos de alta corriente a través de ellos, de modo que si el software fallaba, los microinterruptores abiertos desconectarían el motor pero los diodos. permitiría al circuito de conducción invertir el motor de las paradas finales.

  • Lou dice:

    ¡Buen trabajo! ¿Cuántas líneas tiene el codificador que estás usando? ¿Opera las fases A y B para interrumpir los pines o usa contadores de dispositivos deditcatd (como IC1A / B) en el avr? Hice esto hace unos años en fpga (control pid también en hardware) con un codificador de 100.000 líneas y resultó ser todo un desafío. Si tuviera que hacerlo de nuevo, usaría un micro con un decodificador de cuadratura dedicado como el stm32.

    • ottoragam dice:

      ¡Gracias Lou! Utilizo un codificador de 1024 cpr (con decodificación 4x) que me da una resolución de aproximadamente 5 mm en un tornillo de globo de 5 mm para mi máquina CNC. Conecté los canales A / B al par de pines de interrupción externos del AVR, por lo que no uso la función Capture Input del AVR (había una buena razón para eso, pero olvidé cuál era): el codificador, que ahora uso, el AS5040, también puede generar la señal cuadrada descifrada, pero decidí programar una máquina de estado descifrada cuadrada en la uC para permitir el máximo codificador compatible. Estoy pensando en escribir un firmware alternativo para permitir un cuadrado decodificado como entrada para el controlador, para acelerar las cosas.

      Y cuando actualice el microcontrolador en este proyecto, definitivamente elegiré una parte con lógica dedicada para la decodificación. El PSOC4 me lo ofreció otro miembro de La-Tecnologia.io.

      • neon22 dice:

        considere la serie stm32F4xx. con el soporte de cuadratura en los temporizadores de hardware, este aspecto se volvería simple.

      • Miguel dice:

        El Arduino Due también tiene un bloque decodificador cuadrado. Hablando de experiencia, USE un bloque de dispositivo / IC dedicado para este filtrado y decodificación, lo que ahorrará mucho trabajo y los riesgos de bloqueo del procesador debido a las altas frecuencias de interrupción (especialmente con estos codificadores de 1000 líneas)

  • erwincoumans dice:

    El controlador de motor de código abierto VESC para robótica y patinetas también se puede utilizar para CNC. Maneja motores de CC con escobillas y motores sin escobillas en modo FOC, con sensores (codificadores de halo, cuadratura). 50 amperios continuos, picos de 240 amperios, de 8 a 60 voltios, uart, canbus, etc. Ver
    http://vedder.se/2015/01/vesc-open-source-esc

  • dinamodan dice:

    ¡Sí Sí! Hice esto yo mismo y encontré el concepto de tener algunas características superiores a los pastores. Me alegra ver otro artículo con un control de motor de CC de circuito cerrado. Hace aproximadamente un año, HaD hizo un artículo sobre dónde mi chico lo adaptó a una impresora 3D. https://la-tecnologia.com/2015/01/20/closed-loop-control-for-3d-printers/ Y, de hecho, este artículo me inspiró a embarcarme en mi propio viaje de construcción de máquinas CNC, que fue bastante exitoso y emocionante. El mencionado utilizó ServoStrap, que era un controlador PID. Lo adapté a mis propias circunstancias. El resultado de estos controladores utiliza señales de pasos y direccionales, así como un controlador de pasos, por lo que es compatible con GRBL y cualquier controlador que haga STEP / DIR.

  • ottoragam dice:

    ¡Muchas gracias Anool y La-Tecnologia por dedicar algo de tiempo a este proyecto! Fue increíblemente aterrador despertar y descubrir que mucha gente nueva ahora está siguiendo la campaña de servicio.

    Todas las preguntas / sugerencias son bienvenidas.

    • vinito64 dice:

      Ofrezco un manual de “cómo construir uno”, jeje.
      Quería sumergir mi dedo del pie en esto para mi propio uso, pero era extremadamente difícil encontrar algo que alguien con mi habilidad pudiera usar. Si supiera cómo hacer una placa de conductor yo mismo, lo haría. Pero, por desgracia, mis habilidades se limitan a construir una placa a partir del diseño de otra persona y pegar código (y tal vez pequeñas ediciones) para programar un chip. Aún mejor para otros que no pueden crear su propia placa, podrían comprar la PCB y descargar el código.
      He visto varios ejemplos de tableros de controladores caseros que la gente comenzó, junto con un video similar al suyo que lo muestra en acción. Y felicitaciones por eso, porque eso es muy bueno. Y no sé cómo no sonar egoísta y estúpido (tal vez porque lo soy y supongo) cuando digo POR FAVOR, llévelo pronto a un nivel en el que la gente como yo pueda hacer clic en un sitio web o eBay o similares y comprar un tablero y código tuyo para que podamos compartir la diversión !!
      No estoy seguro de que el modelo comercial de “enviar cerveza a Dinamarca” haya resultado ser tan útil o conveniente (es decir, UHU si lo sabe)
      De todos modos, felicitaciones por tu éxito. Parece una ejecución sencilla. Me gusta. Quiero uno !!

      • ottoragam dice:

        Es realmente asombroso que te guste mi proyecto. Sin embargo, si hubiera un agujero o una versión SMD grande de esto, ¿se sentiría cómodo armándolo? Si es así, estad atentos para más 🙂

        • vinito64 dice:

          “¿Podrías armarlo por favor?”
          Claro, ya sea a través de un agujero o un SMD grande. Yo también sonreiría todo el tiempo. Puedes apostar que “estaré atento”.

        • Wes dice:

          ¡Apoyo la idea! Yo mismo me gusta atravesar un agujero 🙂 Utilizo motores de corriente continua con caja de engranajes planetarios para trabajar las extremidades de un brazo. Ahora estoy en las primeras etapas y tu trabajo parece realmente prometedor 🙂

          • ottoragam dice:

            Esa es una de las aplicaciones en las que pensé cuando creé esto. Veré qué puedo hacer para que esto sea más fácil para conocer a la mayoría de las personas y, por supuesto, sus sugerencias son bienvenidas.

  • macona dice:

    ¿Detección y parada desenfrenadas del motor? No hay nada peor que tener un codificador o un cable roto y pedirle al servicio que apriete y golpee contra una parada brusca.

    • ottoragam dice:

      Es bueno tenerte aquí, Macona, tu aporte siempre es grandioso. No lo he pensado y es arriesgado operar sin detectar tal culpa. Intentaré arreglarlo lo antes posible.

  • Stevo dice:

    Yo también pensé en esto. Estoy más feliz con gente más inteligente de la que he trabajado.

  • Saurabh Lanje dice:

    Esto es genial. Estaba trabajando en un proyecto similar. Quería diseñar un controlador que pudiera usarse para convertir en servicio cualquier motor de CC normal de bajo costo, pero con una rotación limitada de 180 grados como hobby. Probé un motor de CC normal de bajo costo con un potenciómetro como sensor de reacción para esta configuración, pero estos motores tienen un problema de retroalimentación muy alto. Finalmente tomé uno de mis servomotores y lo usé en la configuración. Desarrollé una GUI basada en Matlab. Puedo monitorear cosas como ERROR, POSICIÓN, Salida PID y puedo cambiar cosas de Internet como Kp, Ki, Kd, ​​Banda muerta, Rango operativo integrado. Me gustaría desarrollar una GUI para su sistema.

    • ottoragam dice:

      Hola, Saurabh, cualquier ayuda es bienvenida. Envíeme un mensaje personal para que podamos discutir los aspectos de la GUI.

      • Saurabh Lanje dice:

        De hecho, no puedo encontrar aquí cómo enviarte un mensaje. Esta es la primera vez que comento sobre La-Tecnologia. Así que guíame sobre cómo hacer eso

        • ottoragam dice:

          Puede contactarme a través de mi perfil de La-Tecnologia.io https://la-tecnologia.io/ottoragam, o enviarme a ottoragam en gmail.com 🙂

  • Saurabh Lanje dice:

    Estaba trabajando en un proyecto similar. Pero hay algunas diferencias. Utilizo un potenciómetro como sensor de reacción (rotación tan limitada). Usé un arduino para verificar. Creé una GUI en Matlab donde puedo observar la respuesta de un motor. Cantidades como error, posición actual, salida PID pueden ser controladas por GUI. junto con esto, puedo usar una GUI para configurar casi todos los parámetros PID. GUI también tiene una opción para proporcionar un nuevo punto de ajuste al controlador para que pueda observar la retroalimentación del sistema y configurarlo en consecuencia.

  • mifasistemas dice:

    Mejor artículo Trabajé en un proyecto similar. Quería diseñar un controlador que se pueda usar para convertir cualquier motor de CC económico normal. Puedo traer información relacionada con nuestro nuevo contenido de información a través de dcdrives.

  • Alisson dice:

    ¡Maravilloso proyecto! Planeo construir algo similar a esto, para controlar los ejes X e Y en una máquina CNC, porque ya tengo algunos motores de limpiaparabrisas para automóviles realmente potentes (me temo que la prenda tiene mucha huella opuesta, pero la quitaré y utilice un acoplamiento directo entre el eje del motor y el tornillo de transmisión). Intenté construir un “servicio de programa” usando LinuxCNC, contando los pasos usando un puerto paralelo y usando pid para controlar el motor sin hardware adicional, pero aunque suena bien, la velocidad de transferencia del paraport es muy limitada, así que obtuve demasiados pasos perdidos usando velocidades más altas en el motor.
    Me gustaría saber cuántos pasos puede contar de manera confiable por segundo con su controlador. Pregunto esto porque un proyecto que apareció aquí en HD el año pasado (en https://github.com/misan/dcservo), y estoy particularmente interesado en usar ESP8266 en lugar de ATmega328P junto con un H-Bridge dedicado, porque tener un un reloj más alto te permite contar más pasos por segundo, ¿verdad? Pero como estás usando un decodificador dedicado, realmente no sé cuál será mejor, ¿qué piensas?
    (Lo siento mi pobre ingles jaja)

  • nevada dice:

    Estaba trabajando en un nuevo controlador de servicio, y me topé con esta página, ahora el obstáculo es programar el microcontrolador, me las arreglé para armar un esquema para la computadora. Por favor, hágame saber cómo manejamos el microcontrolador. Estoy buscando usar ARM cortex m3 para mi computadora

  • ingeniero dice:

    Estoy en el proceso de crear un disco DC cepillado para CNC.

    Encontré un codificador CU I que usa la misma tecnología de capacidad que los medidores de disco. Realiza el conteo y responde con posición absoluta en forma serial de alta velocidad.
    Todavía no he comprado uno, pero en papel parece ser un verdadero solucionador de problemas.

    https://www.cui.com/amt-faq

    John

    John

Óscar Soto
Óscar Soto

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *