Go Down

Topic: Desarrollo de Soft para control de Fresadora CNC (Read 44005 times) previous topic - next topic

jucarar

Hola ngc1300,
Yo también tengo un arduino mega. He probado la nueva versión y a mi si se me conecta, eso si, sólo a 57600. he hecho un pequeño cambio en el firmware, en la clase gcodeproces.cpp, donde ponía
 
  if (Serial.available() > 1) {
Por
  if (Serial.available()) {
   
Después del cambio, el tiempo de espera entre la conexion y que acepte ordenes ha desaparecido.  :smiley-eek:
Quizás podrías probar a ver si notas algo

Saludos

carferu

Hola, he estado probando a conectarme a 57600 y al final me han aparecido los tres ok y he conseguido mover mi maquina sin problema.
Tambien he realizado la modificacion que ha comentado jucarar y en principio el led no está los 10 segundos encendido al conectarse, aunque tal como comente en un anterior post, sin modificar el firmware, conectandome con ubuntu el led simplemente parpadea 2 segundos y estoy conectado.
Lo unico que he visto raro es que al conectarme desde la IDE de arduino,  el led si está los 10 segundos encendido y en cuanto le envío las ordenes me responde con caracteres raros.
Tambien he probado a usar el Universal G code Sender a 57600 y va correctamente.
No entiendo muy bien porque el software no es capaz de conectarse a 19200, ni porque el IDE de Arduino no devuelve caracteres correctos a 57600 a pesar que todos los softwares que he probado si se conectan y reciben caracteres correctos del Arduino.
De momento voy a seguir probando el  software, el cual me ha parecido muy bueno en comparación con el de Txapuzas, sobre todo las opciones de configuracion de ejes.

Un saludo.

ngc1300

Hola carferu y jucarar gracias de muevo los dos, yo con mi arduino UNO no tengo problemas de conexión ni a 19200 ni a 57600, he probado a casi todas las velocidades y funciona en todas ahora mismo lo tengo en 19200, el programa esta hecho en java, al igual que el IDE de arduino y uso las misma librería de comunicaciones que ellos, mañana me mirare a fondo a ver si encuentro algo en el firmware e intentare contactar con el autor a ver si  me da alguna pista.

ngc1300

Se me olvido comentar que la ultima versión colgada no bloquea el programa, y solo informa del hecho de no recibir los datos del firmware, con lo que si no hay un problema real, se tendrían que poder mover los ejes aunque no se reciba la versión del firmware

ngc1300

He estado haciendo algunas pruebas con el firmware, y creo que hay un problema cuando se inicia la conexión, hay cosas que hace que ningún otro sketch que tengo en los que uso comunicaciones serie me ocurren, como yo no he programado el firmware me costara un poco mas mirarme todo el código a ver si detecto el error.

Me gustaría si podéis probar una cosa los que tenéis la arduino MEGA y es meter el firmware de txapuzas e intentar conectar con el programa, en principio os dirá que no ha podido cargar el firmware, pero después os tiene que dejar mover los ejes perfectamente, si podéis decirme que os pone en la ventanita de log

carferu

Hola, he realizado la prueba de cargarle al MEGA el firmware de Txapuzas. En principiole he puesto la velocidad a 19200. Cuando he arrancado tu software se ha encendido el led como unos 10 segundos, luego a continuacion me ha dado el error de que no podia cargar el firmware, y el error de conexión. Lo bueno es que he podido mover los ejes de la maquina sin ningun tipo de problema. Lo que me ha puesto en las primeras lineas de la ventana de log ha sido:
start
Huh?105
ok
Adjunto captura de pantalla.
Un tema  que he visto es que aparece en la pestaña de informacion el estado como desconectado, cuando sabemos que no es así. Que no haya leido el firmware no debería implicar estado desconectado, aunque esto es un mal menor.
De todo esto, por lo que veo el tema de el led L encendido 10 segundos,me parece que va a ser debido en principio al tipo de sistema operativo, ya que tal como comente en un post anterior, si cogemos la IDE de Arduino, con el firmware de Txapuzas, en windows esta los 10 segundo encendido, y en ubuntu,hace un parpadeo y se conecta.
En cuanto a que no se conecte a 19200 si que puede ser un tema de firmware ya que  el de Txapuzas se conecta a tu software a 19200 sin  problema.
Otro problemilla que tengo ahora, es que me he comprado un gamepad para mover la maquina, en concreto un Thrustmaster Dual Analog 4. En windows aparece correctamente instalado, y cuando me meto en el test de dispositivo puedo chequear todos los botones del gamepad de manera correcta. El caso es que el icono de control me aparece desactivado y no tengo forma de activarlo, es como si no detectase el gamepad, (tambien te adjunto pantallazo).
Un saludo.
Un saludo


carferu

Hola ngc1300, he estado haciendo mas pruebas viendo el firmware de Txapuzas y el de fm. He mantenido la conexión a 19200 y le he añadido igual que tiene el firmware  de Txapuzas la  linea Serial.println("start"); en el sketch CNC, despues de ajustar la velocidad de conexion.
Serial.begin(19200);
Serial.println("start");
El resultado es que ahora si conecta la maquina a 19200, pero me da el error de lectura de firmware. En la ventana de log veo:
start
ok
Pero puedo mover la maquina, eso si con limitacion de ejes, ya que no puedo acceder a la configuracion de dichos limites.
Lo curioso es que si entro en la pestaña de informacion, no tengo la informacion del firmware ya que no la he podido obtener al conectarme, pero si envío el comando M115 si me responde el Arduino correctamente y me rellena los datos de la version de firmware en la pestaña de informacion.
Viendo estos resultados en principio el Arduino MEGA si se conectaria a 19200 si le hacemos que nos envie una orden en cuanto conectemos. Podría ser interesante cambiar la forma en la que compruebas la conexion al Arduino, primero habilitar la conexión desde el programa, una vez que recibimos un start por ejemplo, de esta manera tendriamos garantizada dicha conexion y a continuacion enviarle la peticion del M115 y en funcion de lo que nos devuelva habilitar las opciones de limites de ejes. No se que te parecerá la propuesta, ahora tal como lo tengo segun me devuelve el arduino el start y me aparece un ok, me sale la ventana de que no se puede leer el firmware,y a continuacion que hay un error de conexion.

Un saludo.

ngc1300

hola carferu, al final parece que el firmware es el que tiene un problema al hacer la conexión, en mi arduino UNO cuando conecto con el IDE de arduino el led L esta encendido menos de 1 segundo (esto es en windows), y en el monitor me aparece un carácter ilegible, he hecho lo mismo que tu de poner al  establecer la conexión en el firmware a que mande un mensaje y desde el IDE me aparecen caracteres ilegibles. en cambio en el firmware de txapuzas esto no ocurre.

Una cosa que me parece muy extraña es que si tienes la ultima versión que puse te  tiene que dar el aviso del firmware pero no te tiene que dar ningún error de conexión.

En cuanto a la propuesta que dices, en las primeras versiones del programa se hacia así, esperaba a recibir un dato, ya que como te he comentado antes cuando conecto mi arduino me manda siempre un dato (ilegible), pero un usuario tenia problemas y no le conectaba(ahora supongo que a el no le pasaba) y lo cambie a esta otra forma que parece que iba bien. Por lo que parece los arduinos no se comportan todos igual con lo que pensare a ver una solución para que nos funcione a todos y no sea muy dependiente de un firmware en concreto.

En cuanto al gamepad, en principio el programa lo detecta de forma automática, si el botón esta desactivado es por que lo ha detectado, si no lo detecta es cuando el botón se activa y lo tienes pulsar para conectar con el, esto ocurre en el caso de que conectes el gamepad una vez se ha abierto el programa.

Prueba a mover los ejes con el, no se si tiene modo analógico o no, en el mio tengo que activar el modo analógico, ademas para no saturar al arduino tienes que mover para donde quieres que vaya la maquina y mantener la posición como  1 segundo aproximadamente. Esta parte hay que refinar la un poco mas mas adelante.

Un saludo

carferu

Hola ngc1300, he estado probando el gamepad de nuevo y por fin me ha funcionado. El problema es que no esperaba el tiempo suficiente con el mando analogico en la posicion para que enviase la orden. En principio he estado moviendo la maquina sin problema. Como sugerencia para mas adelante, sería interesante que cuando el mando analogico se encontrase en una posicion fija, el motor se moviera sin parar hasta que se soltase el mando, es decir de forma continua. Ahora si lo dejo fijo en una posicion se va moviendo a intervalos, dependiendo del avance que tenga puesto en el software. He probado a poner avance 1, y dejar el mando fijo para que se mueva el motor y este se va moviendo a tirones, se mueve 1, para y acelera para avanzar 1 y se vuelve a parar.
Se podría crear algunas ordenes de tipo M especificas (parecida a la que envia la version de firmware), de manera que al llamarlas me hagan un movimiento seguido del motor, para evitar que constantemente se este parando y acelerando en avances pequeños.
Tambien sería interesante poder asignar los botones que hay en la pantalla a los del gamepad, de esta manera podriamos posicionar la maquina, arrancar los motores, hacer los cero de maquina o cero de pieza desde los botones que asignasemos al gamepad.
De momento estas sugerencias las propondría como mejora a largo plazo, ya que entiendo que ahora lo mas importante sería resolver el tema de la conexión a 19200 con el Arduino.
Por ahora todo lo que he estado probando me ha parecido genial, sobre todo la parte de configuracion de limites de maquina, y la posibilidad de tener un cero pieza y un cero maquina. Mi enhorabuena de nuevo por tu trabajo.

Un saludo.


ngc1300

Muchas gracias carferu.

Tienes toda la razón, la funcionalidad actual del gamepad es un poco escasa, pero como solo lo usaba para movimientos cortos pues ya me iba bien, ademas hay que tener en cuenta que el arduino tiene limitaciones de hardware, me gustan mucho las sugerencias que haces. la verdad que hasta ahora no tenia constancia de si alguien usaba el software, con lo que soy el único testeador, eso implica un desarrollo lento de la aplicación, y que este diseñada para mis necesidades, te animo a que pongas incidencias tanto de errores que puedas encontrar como de mejoras que se te ocurran, así los que estén interesados pueden opinar y yo puedo gestionar mejor el desarrollo.

Un saludo.

ngc1300

He puesto una nueva versión con cambios en la conexión, en esta nueva versión, el programa intenta conectar con el arduino durante 25 segundos, si consigue comunicarse antes de ese tiempo el programa continua normalmente, si durante los 25 segundos no ha conseguido comunicarse con el da un error.

Enlace de descarga: https://bitbucket.org/jadiazg/cnccontrol/downloads
Enlace de incidencias: https://bitbucket.org/jadiazg/cnccontrol/issues?status=new&status=open

Un saludo.

Miguel75

Buenas.

Hacía tiempo que no ponía nada aquí, pero no dejo de mirar a ver que novedades pones ngc1300, ahora ando en un par de cosas y tengo el láser otra vez averiado, así que la tengo un poco aparcada... tengo que ponerme con ella de nuevo, pero empezaré como tu, a utilizar como base un paper-duino y montar una solo placa, que por cierto ¿como llevas la que estabas proyectando?.

Bueno, a lo que iba. he estado probando las nuevas versiones de tu programa y me pasa algo raro al abrir los archivos. Yo los genero con el inkscape y la extensión laserengraber,  todas la versiones anteriores a la 2 me los abren perfectamente, pero de la 2 en adelante me sale "El archivo no es válido" (sin tener el arduino conectado, solo para abrir el archivo). Lo veo extraño ya que siendo simple archivo de texto, no debería dar problemas, ¿no?.
Y ahora que me estoy fijando, si tengo un archivo seleccionado para abrirlo y en vez de abrir cierro la ventana, me sale el mismo mensaje de error.
Adjunto uno de los archivos por si le puedes echar un vistazo.

saludos.

ngc1300

Hola miguel75

En la versión 2 implemente un sistema para evitar abrir archivos que no tuviesen gcodes, mañana miro a ver que ocurre con el archivo que me adjuntas.

Un saludo.


fm

Haced la siguiente prueba con el firmware:

En el setup, antes de llamar a nada pon un delay de 1s.

Tengo una ligera sospecha de por donde van los tiros.

Sin la librería fastIO no vais a conseguir mucha velocidad con microstepping.
   

fm

La siguiente prueba:
delay de 10 segundos y ver si aparece algo en el terminal.
Yo no puedo hacer las pruebas porque sólo uso la vinciduino con interfaz nativa USB y eso no pasa.
   

Go Up