[[AYUDA]] Proyecto "Coordinate Measuring Machine (CMM)" o brazo digitalizador tridimensional

113 views
Skip to first unread message

Dani_B18

unread,
Dec 8, 2017, 7:40:01 PM12/8/17
to FPGAwars: explorando el lado libre

Saludos FPGAgeros!

Hace pocas semanas recibi mi icezum alhambra y asi adentrarme en algo nuevo para mi, no tengo ni idea de como hacer muchas cosas, pero esto es como todo en la vida, querer aprender. Tengo pequeños avances en el Cmm y entiendo algo mas como funciona la electronica digital, pero necesito de buestros conocimientos para seguir avanzando en este proyecto y por supuesto se ralizara con hardware y software libre, y asi poder estar al alcance te todo el mundo.

Primero explicaros con unos ejemplos en que consiste el CMM por si alguien no conoce esta potente herramienta.

Estos son dos videos de ejemplos de fabricantes profesionales con precios de otro mundo:

 - FARO

 - Microscribe

Los siguientes ejemplos son de personas que al parecer an desarrollado un "CMM homemade" de varias maneras y en distintas plataformas:

 - CMM homemade 3 ejes

 - CMM homemade 6 ejes

 - CMM homemade 3 ejes (arduino+FreeCad)

Este ultimo es el que mas me interesa reproducir porque utiliza hardware y software libre pero usando 6 encoders, osea 6 articulaciones para tener mas livertad de movimientos. Utilizaria la icezum alhambra como no.

Hay dos cuestiones principales por las que estoy atascado. Una es el circuito que diseño en icestudio basado en circuitos o bloques extraido de muchos de vosotros de este gran grupo. Solo e conseguido visualizar el parpadeo de dos leds de canal "A" y canal"B". Por ahora solo tengo un encoder para hacer pruebas, es tipo optico incremental NPN de colector abierto y e tenido que poner resistencia de 2k2 entre positivo y señal. El otro obstaculo es el programa que lea todo eso y lo combierta en cordenadas XYZ, por ejemplo freecad, el problema que por ahora solo e visto que hay que programar como un pluging en python y no consigo encontrar nada. Segun freecad, los programadores estan trabajando en esa opcion.

Gracias por todo lo que comparis.

Juanma Rico

unread,
Dec 9, 2017, 5:14:41 AM12/9/17
to FPGAwars: explorando el lado libre

Buenas Daniel,

Realmente es un proyecto muy interesante.
A mi personalmente me cuesta ayudarte sin más datos de como estás haciendo el proyecto (Esquemas, dibujos, código y demás).

Si ya partes con la idea de compartirlo (que me parece genial) sería bueno que enlazaras con algún tipo de repositorio público que estés usando para el proyecto e indicaras exactamente donde te atascas con las FPGA, si no estás usando ninguno te animo a que utilices github que es el que más miembros del grupo conocen y utilizan.

Me has abierto un mundo de posibilidades... igual me animo y me hago uno sencillo para eliminar de mis diseños mecánicos el calibre... :)))

Saludos y ánimo.
Juan Manuel Rico

Juan Gonzalez Gomez

unread,
Dec 9, 2017, 5:26:08 AM12/9/17
to FPGA-WARS: explorando el lado libre
Hola Dani!

El vídeo con FreeCAD lo ha hecho Javier Martínez, que es un crack de la vida. Es de Alicante. Su github es este;

https://github.com/JMG1

Ponte en contacto con él y pregúntale directamente sobre los scripts en python del CMM. Es un tío de puta madre

Este es su blog:



Saludos, Obijuan


--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el-lado-libre+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-li...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/66014a98-5fcd-4c87-910e-58a0d292944e%40googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

Dani_B18

unread,
Dec 11, 2017, 9:41:35 PM12/11/17
to FPGAwars: explorando el lado libre

Hola chicos!

Gracias por contestar :)
Estoy intentando ablar con Javier Martinez por Hangouts aver si me dice algo sobre el script que hizo para el freeCAD o si me lo puede pasar. Asi sabre que lee el script realmente para ver si voy por buen camino con el circuito del ICEstudio.
He utilizado el circuito que Democrito hizo en su dia (circuito encoder incremental) y lo e modificado implantandole el bloque TX que hizo Obijuan. Cuando intento leerlo por el ScriptCommunicator el led TX de laplaca se enciende el led RX y no entiendo porque ocurre. El led del TX no da señales de vida, pero en el ScriptCommunicator no paran de cambiar los bits cuando el led RX de la placa parpadea y sin hacer girar el encoder, y cuando lo ago girar y en algun momento asi aleatorimente deja de parpadear en ese mismo momento veo en el ScriptCommunicator los bits quedan en un numero fijo.
Os explico un poco el concepto que tengo de todo esto y aver si estoy en lo cierto. Si el encoder es de 2000 pulsos por vuelta y el circuito es X4 al dar una vuelta completa al eje del encoder (360º) dalia como resultado 8000 pulos, entonces necetito un contador de 13 bits, no? entonces si estoy en la posicion "0" y giro hacia la derecha seran numelos positivos y si giro a la izquierda pasaria por el "0" otra vez u serian numeros negativos, y con esto sabria la direccion y posicion.
De todas maneras el contador y el modulo TX son de 8 bits y si no me equiboco el numero maximo en decimal es 0 a 255 asi que no se si habra que modificarlos.

Gracias por buestra paciencia

Dani

P.D. Adjunto el circuito ;)


encoder TX prueba 1.ice

Democrito

unread,
Dec 12, 2017, 4:21:44 AM12/12/17
to FPGAwars: explorando el lado libre
Hola Dani,

El encoder ha de ser de 16 bits aunque sobren bits, porque después la info sería enviada de 8 en 8 bits. Esto es de manera convencional seguramente habrá otro modo de hacerlo, pero no más sencillo (que ahora mismo se me ocurra).

Convendría saber si tus encoders tienen "Index", que es una patilla del encoder que avisa de que se ha dado la vuelta completa. No todos los encoders tienen esa patilla, entonces, de no ser así, como es un encoder incremental habría que poner (con algo que haga de pulsador o foto-interruptor) una referencia al punto cero físico. Si no te tomaría el punto cero en cualquier punto que esté el encoder. Sea como fuere, en el momento de poner en marcha ese brazo, lo primero que hay que hacer es llevarlo a la posición cero de todos los grados de libertad y pulsar algún botón que haga reset a todos los contadores una vez esté en esa posición de referencia.

Esto es la fase inicial, hacer funcionar un encoder incremental y enviarlo por el puerto serie. Una vez resuelto esta parte, se puede clonar todos los contadores de encoders para que sean tantos como grados de libertad necesites. Y por último, multiplexalo al puerto serie.

Los encoders que me he diseñado hasta ahora los he leído a través de un Arduino, pero para hacerlo electrónico puro y que lo pueda leer directamente el PC es un poco más complejo.

Si consigo encontrar tiempo (los fines de semana) intentaré echarte una mano.

Saludos.
Reply all
Reply to author
Forward
0 new messages