Montaje CNC, calibrar ejes configuración y software

OK, con la uno estas limitado por la velocidad del puerto serie y lo bien o mal que estén filtradas las líneas. Yo uso la vinci y el movimiento es muy fluido en todos los casos. Entiendo que con Leonardo será igual.

Para configurar las aceleraciones tendrás que modificar el fichero configMe.h.

La verdad no entiendo mucho de la plataforma arduino, pero las comunicaciones no son a la misma velocidad?, la diferencia entre uno y otro es que uno tiene el puerto serie en el chip y el otro fuera (mas componentes), pero la velocidad debería ser la misma ya que la define el standart serie. Lo mismo estoy equivocado.

Realmente no, una placa tiene soporté nativo USB y el otro usa un chip de interfaz UART USB. Con soporte nativo USB lo que se consigue es una interfaz virtual serie sin pasar por una UART.

Ok, aun así en los videos que hace tiempo vi y por los que me di cuenta de esto usaban arduino uno, puede que subiendo a 115200 vaya mucho mejor, la verdad lo puse así y hice una prueba y se me colgó, y por miedo a romper algo no volví a probar mas, aunque aun tengo cuelgues y no se a que es debido, de todas formas me parece que tanto 57600 como 115200 son velocidades considerablemente altas para la poca información que se envía (yo recuerdo haber navegado por internet a esas velocidades no hace muchos años).

La otra parte es como has conectado los drivers a la uno. Si van con el shield mío OK, si van a pelo, lo suyo es poner un condensador gordo de by-pass en la alimentación de 12V (100uF min).

La vinci + escudo lleva un buen filtrado de la alimentación y no es tan susceptible al ruido.

Pues la verdad que no uso tu shield me hice una placa para conectarlos de la misma forma a como se conectan con tu shield pero sin componentes solo con las pistas soldadas, lo del ruido que comentas en que puede afectar?, ya que de pasos voy bien todas las piezas que he hecho han salido muy bien, incluso para las holguras que tenia la maquina.

El ruido puede afectar de muchas formas entre otras, introduciendo errores en la linea serie. Por ejemplo, no es normal que no puedas establecer un enlace a 115200 sin perder información.

Te aconsejo, que en la alimentación de 12V, pongas un condensador. Si llevas cables en vez de usar un PCB hacia los drivers, deberías ponerle un condensador de digamos entre 33uF y 100uF a la entrada de +12V del driver. Si pones alguna foto de como lo tienes todo cableado puedo opinar con un poco más de fundamento. Que se te cuelgue la placa es muy sintomático y muy raro.

El problema de la velocidad es que el movimiento no es muy fluido y menos sin un buffer (yo uso el buffer del end-point USB) para los arcos. Cuando hay sectores pequeños, el SW lo que hace es acelerar, frenar, parar y leer un nuevo comando. Cuando hay muchos sectores pequeños esto se nota.

Con respecto a la velocidad, la transmisión directa con varillas roscadas tienen una limitación física de velocidad. Esta viene derivada del tiempo que se tarda en cargar las bobinas de los motores que es una función de la corriente y la tensión. La limitación está en cada tipo de motor (la corriente que es necesaria para mover el motor tanto en vacío como con carga), los drivers (cuanta corriente es capaz de conmutar por unidad de tiempo y a la tensión a la que pueden trabajar). Esta limitación la tienen las impresoras 3D y por eso solo mueven el eje z con transmisión directa.

mi conocimientos de electrónica son muy escasos, cuando estudie informática, la electrónica que dimos fue muy escasa y casi toda digital, y mas basada en la programación y diseño de los chips que en el propio diseño de circuitos, en principio se que hace cada componente mas o menos, pero no para que se usan, es una lastima y una piedrecita que llevo desde hace mucho, ya que me gusta el mundo de la electrónica.

la solución chapucera que hice para poder probar tus drivers y no tener que estar con la protoboard y los cablecitos que al final era un lío tanto cable, fue coger una Strip Board de las que tenia para hacer los driver l298 que usaba al principio y soldar le pistas desde cada entrada del driver a sus respectivos pins, si puedo colgare una foto, aunque es una chapuza con mayúsculas visto el alto nivel de las cosas que hacéis vosotros.

la intención era cuando tuviese montada la maquina fresar una pcb bien con las pistas y montar un paperduino para tenerlo de forma permanente en la cnc y liberar el arduino para otros proyectos.

en cuanto a los cuelgues no se exactamente quien los provoca, a veces se congela el ordenador y otras el programa se queda esperando una respuesta de la maquina, pero esta no se mueve (no se si ha llegado al destino o no), el ordenador que tengo no se comporta muy bien con linux y a alguna vez el usb ha dado algún problema, ahora estoy empezando a desarrollar un software que corra sobre windows y que ademas tenga alguna función mas que la del software de txapuzas, para poder descartar que sea el ordenador.

siento haber tardado tanto en colocar las fotos pero me he picado con el programita para la maquina y no he sacado un ratito hasta ahora. Aquí tienes la chapuza que hice en su día para probar los drivers, su proposito era provisional hasta poder montar una mejor con un paperduido y la pcb fresada con la maquina.

Vamos a empezar poniendo un condensador de 100uF a 470uF en la entrada de 12V. Un electrolitico como mínimo de 16V para 12V de entrada y probar otra vez. El inconveniente es que no tienes un plano de tierra que haga de blindaje a las otras pistas. El ruido que se induce en el Arduino debe ser alto.

Ok, buscaré un condensador de esas características, lo del plano de tierra (lo he tenido que buscar por internet), ahora no lo tiene pero como comente antes esta placa es temporal, cuando frese la buena le pongo el plano de tierra.

Muchas gracias por la ayuda.

No lo vas a poder hacer fácilmente con una Proto board. Ojo con la polaridad del condensador.

Pensaba que los circuitos fresados con la cnc quedaban bien, también pensaba que los condensadores no tenían polaridad

Los circuitos fresados suelen quedar bien, pero hay que saber lo que hace falta y lo que se necesita para para que funcione bien.

Llevo unos días desarrollando un programa para controlar la maquina, el de txapuzas no esta mal, pero funciona en linux, cosa que me obliga a tener un ordenador solo para eso, y hay funciones que no las termino de entender. Por eso he desarrollado uno nuevo, en principio con las opciones que a mi me interesan por las particularidades de mi maquina. Aquí os pongo el enlace para si alguno esta interesado en probarlo.

https://code.google.com/p/cnc-control/

El programa esta hecho en java y funciona de forma autónoma, no hay que instalar nada, ya que lleva la versión de java necesaria, y por ahora solo esta probado en windows (es lo que yo voy a usar) aunque si alguno esta interesado miro la compatibilidad con linux.

En principio no hace mucho mas que el de txapuzas, mueve los ejes y procesa un fichero Gcode, he añadido opción de configurar limites a la maquina, así como poder configurar coordenadas de origen de una pieza independientes de la maquina, también memoriza la ultima posición donde se quedo la maquina cuando se apaga el programa.

Funciona con la versión de firmware de txapuzas, así como con la de fm, aunque esta ultima opción de memorizar al ultima posición necesita un cambio en el firmware. Como el firmware no es mio no lo incluyo, pero puedo pasar los cambios si estáis interesados. La única pega de no tener este firmware es que hay que setear a 0 manualmente(botón de la casa) la maquina cuando se inicia el programa.

en principio es bastante intuitivo, se aceptan toda clase de sugerencias para poderlo mejorar.

Claro que interesan los cambio, muchas gracias. Lo que puedes hacer es abrir una rama en mi repo o un pull request y luego los íntegro en la línea principal.

ok, lo intento hacer así, es una muy pequeña modificación, quiero dejar estable el programa este, y terminar la parte de la representación gráfica en 3D de la pieza, y luego meterme con el firmware un poco mas a fondo, ya que por encima he visto que hay cosas sin desarrollar, y yo ahora algunas cosas las controlo desde el programa y se podrían hacer perfectamente desde el firmware, pero eso implicaría un cambio mas radical.

He intentado hacer las modificaciones del firmware, pero no me deja, no controlo muy bien este sistema de versiones y no me deja hacer los cambios, supongo que es por que no tengo permisos, si edito el fichero online hago el cambio y le doy a commit me dice que creara un fork y hará un pullrequest, pero cuando le doy que si, me dice que se produce un error y no sale de hay, he hecho un fork y me ha colocado un repositorio donde si puedo hacer los cambios y hacer el pullrequest, pero en mi repositorio, en el tuyo no se ve nada, al final no se si lo que he hecho esta bien o mal.

Mirando por encima este sistema de versiones ve gusta mas que el google code con lo que he cambiado el programa a este sistema, el nuevo acceso es:

https://bitbucket.org/jadiazg/cnccontrol/downloads

alguno ha podido probarlo?

Hola, soy novato en tdos esto de la CNC, me he leido practicamente todo el hilo y con vuestras magnificas esplicaciones he construido mi maquina CNC. Pero tengo un serio problema que por mas vueltas que le e dado al hilo y mis pobres conocimientos de SW arduino no consigo descifrar.
Mi maquina funciona aceptablemente y utilzo un arduino uno con el programa y firmware de Txapuzas, pero los grabados no los consigo realizar completamente y en algunas figuras salen mal. Pondre unas fotos cuando me sea posible. Uno de los fallos es que puedo mover los eles x,y,z manualmente sin problema, incluso si les envio un codigo G directo lo realiza pero cuando le envio a fresar funcioan todo menos el eje Z. No obstante en modo manual si funciona. Utilizo el L298 chino con el inversor y fuente de alimantacion de PC. Los motores son los que utiliza Iñigo en su maquina CNC de 4,5 V 1,4 A y 1000 pap po minuto más o menos. ¿ que puede ocurrirle al software para que no actue bien? Muchas gracias por vuestra enorme comprension y deciros que sois un libro abierto para tos los que nos iniciamos en esto. Un cordial saludo y mi enhorabuena por vuestras explicaciones. Gracias, de verdad muy intersante.

yo no soy el mas indicado para resolver tu problema ya que soy tan novato como tu, pero tuve mas o menos los mismos problemas y al final si en vació te funciona bien y fresando no, hay dos causas una son los drivers y otra la fuente de alimentación, si te fijas en el hilo casi todos hemos tenido el mismo problema con los drivers, ya que el consumo en vació es mucho menor que cuando fresas, y al final los drivers no llegan, yo hasta que no cambie por los drivers de fm no vi la luz, La fuente de alimentación asegúrate de que sea de mas de 300W mínimo, que yo la tenia de menos y también me funcionaba mal incluso con los drivers de fm.

pero espera que te contesten los expertos, que como te he dicho soy casi tan novato como tu.