Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola
Es la primera vez que me comunico con el foro pero soy inexperto y necesito ayuda.
Desde hacia añños me interesesaba el tema de robotica, asi que me ocupe de encontrar informacion para montar un brazo robot.
Diseñe una placa (con ayuda de internet, claro) para el control de 8 servomotores desde el puerto paralelo
Dicha placa pretende controlar un brazo robot con cuatro servos (montado por mi con ayuda de una antigua enciclopedia de informatica) y un programa en VisualBasic 6.0 (tambien desarrollado por mi)
Mi problema es que funcionar... funciona. Se mueve a la posicion que yo le marco... pero tiene "Parkinson". Tanto si lo deje en posicion "parado" como "en marcha" tiene "espasmos.
Yo creo que son algun tipo de parasitos derivados del puerto LPT, de la placa o de los propios motores pero. ... no se exactamente de donde vienen ni como corregirlo
¿alguen me puede ayudar?
Adjunto documento Word con el circuito (tambien dispongo de fotos de la placa, del brazo y planos en CAD de todo, por si es de interes para alguien), pero no se como poner mas de un archivo aqui
JoseLuis, echale cuenta a ionitron que ha hecho alguna que otra placa de servos (por aqui tengo una por cierto :P) una cosa es la teoria de lo que da el puerto lpt y otra muy distinta, y cruda, la realidad, si cogieses un osciloscopio y analizaras la salida del lpt verias que la señal es..... cuando menos poco regular (cosas del windows), y esque no es lo mismo mantener una cronologia regular y exacta que mandar datos (que es lo que hace con la impresora), ya que estos no necesitan de una cronologia tan regular (y menos el puerto paralelo que con activar una patilla para decir "ahora tienes un byte" "ahora no" pues....)
Probablemente obtengas mejor resultado poniendo un microcontrolador en medio, que sea exacto a la hora de mantener los tiempos
Ok... pues entonces... ¿me podriais pasar algun esquema de un circuito de ese tipo?
Ahora que ya estamos a dia siguiente y se me ha pasado el mal trago....
¿me estais diciendo que (en principio) mi circuito esta bien... mi programa esta bien... mi montaje es correcto y es el @#$#$#$#@ Windows quien no lo permite?
No soy electronico, ni mecanico ni programador... ha sido un gran esfuerzo para mi preparar todo esto... tanto tiempo dedicado... tanto esfuerzo... ¿para nada? no lo acepto... no lo admito...
Ese brazo funcionara (bien) como que me llamo jose luis
A vosotros que teneis mas experiencia os pido una ayudita...
Por lo que veo, me quedan tres opciones...
a) Utilizar una dll de Win para VB6 que circula por ahi para "tiempo real" (no me inspira mucha confianza)
b) diseñar un programa en CM residente que pase de Win y envie los datos a la velocidad adecuada (tendre que aprender CM)
c) conseguir el esquema de un circuito que haga el trabajo de gestion, al cual yo solo le pase las ordenes y sea el quien gestione el tema de pulsos y demas (con lo que me costo conseguir que VB6 enviara los pulsos a la velocidad necesaria)
A esto ultimo es a lo que se referia Garrocha ¿no?
¿alguien ha experimentado esa dll? ¿alguien tiene un programa en CM parecido? ¿alguien tiene un esquema asi?
¿me podeis ayudar?
Saludos
Jose Luis
Hola Jose Luis, sin ver tu codigo me atrevo a aventurar que estas generando el PWM por software. Cualquier evento prioritario como desplazar una ventana o realizar un scroll desestimara la terea y desatendera la generacion de PWM, eso producira errores de pulso y en consecuencia vibraciones en los servos.
Vb6 es un lenguaje de alto nivel y no hay unas prioridades que trabajen directamente sobre el hardware del puerto paralelo si no que has de utilizar una libreria dll para ello.
Seria conveniente, si quieres que se te eche una mano...que al menos nos dejes "ver" la rutina o el pedazo de codigo que utilizas para generar el PWM... esa que dices que tanto te ha costado, quiza se pueda solucionar...o quiza no.
Saludos
Sin problemas por compartir codigo... igual que me he "aprovechado" yo de los conocimentos depositados en la red, los mios estan a disposicion de todos