Hola a todos!!
Justo lo que vi en este foro es lo que también quiero hacer , así que voy a colaborar lo más posible.
Por lo que leí hasta ahora es muy parecido a lo que tenía en mente, solo que yo empecé por la estructura general, veo que otros por el detalle, más que nada estoy de acuerdo en que dividir es reinar en este tema. Por lo que he visto en varios CNC reales, están planteados en forma modular, una placa para controlar los ejes, otra de procesamiento, control y comunicación , otra de HMI (teclado, display, etc).
Mi idea empezó porque tengo que hacer un control de un eje, entonces pensé si a este control le agrego dos más y una placa "madre" que las controle y se comunique con el mundo exterior... Bingo, tenemos un mini CNC. Entré a pensar y armé esta idea que es muy parecida al PDF de FuYiVape se las adjunto en un diagrama en bloques.
La idea me parece no es hacer un driver de Stepper porque ya hay muchos disponibles, pero no está descartado pero como algo externo. Me gusta el integrado de U$S 5
A3986 de Allegro que usa Mosfet externos y hay varias tentativas de diseño PCB en
CNCzone.
Yo propongo:
1 - una placa de control microprocesada por cada Eje, recibiría el dato de la coordenada a donde dirigir el motor, manejaría las señales de los driver comerciales Step, Dir, En, Ready (entrada), conexión con Encoder para hacer lazo realimentado, no es difícil con el AM26LS32, Salida 0-10 V aprovechando que se puede filtrar una salida PWM del micro para generar la. Entradas de Switches de limite, fin de carrera, home, parada de emergencia, etc. Opcional: para que el módulo sea además independiente, le pondría 6 display de 7 segmentos y 5 teclas de control.
Aprovechando que los micros traen muchas I/O y no se encarecen tanto por eso, puede ser 16F877A porque lo conozco y es económico, pero estoy abierto a otras opciones.
2 - Placa "Madre": interprete del código G que carga por USB a una memoria SD de 256 MB o 512 MB como dijeron antes, comando los ejes y la configuración mediante el HMI. Puede ser 18F4550 por la velocidad de datos que antes calcularon, recordemos que al ser todo microprocesado, los otros micros de los ejes pueden ir acumulando coordenadas, mientras este sigue procesando el código G, o sea es relativo el tema de la velocidad, el tema sería diseñar un buen bus de datos para asegurar la comunicación o usar los existentes I2C, CAN, UART, etc.
3 - Placa HMI: Display LCD de buen tamaño para poder usar menúes de configuración, visualización, etc. Y las teclas o teclados alfanuméricos para acceder a las distintas configuraciones. Yo lo haría también microprocesado, con el mismo criterio de la placa de los ejes.
Bueno, espero se entienda y que el foro siga vivo ya que estuve con problemas estos para entrar. Saludos y espero sus propuestas.