A mi me interesa, yo me apunto. No obstante, lo primero que propongo es centrarnos en un solo objetivo porque si no se va a dispersar el esfuerzo. Es decir, lo primero que habría que hacer es una especificacion de objetivos, o dicho de otro modo, aclarar es lo que se pretende hacer. Me explico:
Si en un conjunto 'completo' CNC descartamos la parte CAD y nos centramos en la parte CAM yo distingo cuatro partes:
1.- generador de codigos G
2.- interprete de codigos G
3.- generador de pulsos de salida (step/dir, on/off de pínola, on/off de refrigerante, on/off de aspiracion) y receptor de señales de entrada (limites, home, e-stop..)
4.- drivers de motores
5.- mecanica
Mi propuesta se basa en que lo me parece mas lógico es dejar 1) en el PC donde vive la parte CAD, y partir de un fichero en formato *.nc -o txt de lineas con GCodes- almacenado en una SD/MMC. O dicho de otro modo, no creo que debiéramos preocupamos de como se generan los códigos G en el alcance de este proyecto.
Por otro lado, 4) tampoco me parece que debiera estar en el alcance, primero porque 4) se dedica basicamente a controlar potencia, luego porque el mundo PaP y el mundo servo se parecen muy poco, y por ello tambien sus drivers son muy distintos, con lo cual es otra posibilidad de diluir el esfuerzo.
Del mismo modo, para 5) hay tantisimas soluciones, tan dependientes de lo que este al alcance de cada uno, que intentar definir un estándar me parece un poco demasiado complicado.
En resumen (ojo, se que mucho ya se ha comentado, solo intento organizar las cosas en mi cabeza
y ademas eso es lo que yo habia entendido desde un principio y si no es asi corregidme) entiendo que habria que centrar el esfuerzo en un sistema que:
a) lea de una tarjeta SD/MMC un fichero conteniendo códigos G en texto plano. Adicionalmente, de origen o en una version posterior, podria ofrecer soporte de USB y volcar a la tarjeta de la que luego leeria.
b) interprete los códigos G y genere las secuencias de pulsos que se deriven de ellos en un formato step/dir, para motores paso a paso (es decir, sin soporte de encoders de cuadratura para servos, al menos en una version inicial), y para un numero de ejes por definir. En cuanto a ejes, lo mínimo funcional para una fresadora es tres, lo ideal es 4, y el máximo razonable 6. Quien tenga un torno o un sistema de corte de foam puede utilizar solo dos ejes y tan campante. La frecuencia del tren de pulsos no suele ser necesario que supere los 40KHz, pero si que es bueno que si sea mayor de 20KHz por temas de velocidad, de resonancia en los PaPs y por comodidad, para que no sea audible.
c) pueda asociar N señales de salida, a definir, para control de equipamiento accesorio
d) pueda recoger e interpretar M señales de entrada, a definir, provenientes de la mecánica o el usuario
e) tenga algun tipo de dispositivo de visualizacion (i.e LCD texto HD44780 compatible o grafico T6963C compatible o lo que se decida)
f) tenga algun tipo de dispositivo de entrada de ordenes (teclado 4x4, o botonera, o lo que se decida)
Una vez definido todo esto, el resultado ya nos indicaria bastantes cosas, entre ellas el modelo de PIC a utilizar. Luego quedaria acordar lenguage (voto por CCS), etc.
Opiniones?
Salu2