Autor Tema: Brazo robot 2  (Leído 23009 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Brazo robot 2
« en: 11 de Enero de 2008, 14:56:36 »
Al igual que ya hizo el amigo Radon, tengo en este trimestre que realizar un proyecto de manejo de brazo robot :-) y menudo cacharro para jugar que he conseguido.

El sujeto es el siguiente






Como se ve en las fotos es bastante robusto y todo realizado con una calidad de materiales bastante correcta.

Se compone de 8 motores para un total de un 3 ejes y una pinza que puede prensar y girar sobre si misma. Los motores son servomotores de 12v con escobillas, engranajes y un retroalimentador compuesto por un potenciometro.

Vinieron hace algunos años provenientes de algun instituto que por falta de alumnos dejo de impartir electronica digital y no disponen de manual alguno y casi ninguna señal de referencia de fabricación.

Como veis en las siguientes fotos es un prototipo de entrenamiento, con conexiones digitales de entrada y salida asi como alguna entrada analogica de la que se desconocen su funcionamiento.



La circuiteria interna se compone de un esquematico realizado exclusivamente con lógica cableada de la familia 74 de TTL y CMOS, comparadores y circuitos ADC monoliticos, ausencia total de microcontroladores. En todo caso parece no ser demasiado versatil.



Tiene alguna conexion interesante, como dos conectores RJ45 que prometian en un principio pero que no se usan para protocolos ethernet sino para conexion entre perifericos.


La tarea visto lo visto será dar una puesta apunto de la unidad, reengrasando los engranajes, desmontar toda la circuiteria de control y sustituirla por una propia para el manejo de los motores y dotarlo de un interfaz multiple, conexion al ordenador, modo de aprendizaje de macros, visualización en lcd del estado del mismo y todo lo que el el tiempo buenamente nos vaya permitiendo.

ENTREGA EL 14 DE MARZO

Me reservo un par de sorpresas que os enseñaré en los proximos dias cuando les vaya haciendo fotos.

1 saludete.
« Última modificación: 11 de Enero de 2008, 15:42:55 por elmasvital »

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5538
    • Picmania by Redraven
Re: Brazo robot 2
« Respuesta #1 en: 11 de Enero de 2008, 20:23:31 »
Ea, ya tienes tarea.  :mrgreen:

La nueva circuitería de control si sera microprocesada ¿no?
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Brazo robot 2
« Respuesta #2 en: 11 de Enero de 2008, 20:49:28 »
siisisisi por supuesto :-) estamos en todopic

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Brazo robot 2
« Respuesta #3 en: 12 de Enero de 2008, 03:45:22 »
Si lo consigues programar para que funcione como posicionador de componentes SMD te lo compro  :mrgreen:

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Brazo robot 2
« Respuesta #4 en: 15 de Enero de 2008, 11:53:29 »
Bueno voy avanzando en la documentación del proyecto...

una corrección es que no eran 8 motores como indicaba sino 6. He estado haciendo unas pruebas y todos los motores parecen ser de 12vdc ya que en la mayoria no lo indicaba. Como realimentacion tenemos 5 potenciometros de 1k y uno de 22k que va en el motor mas grande y que seria el giro del hombro.

La idea de controlar los motores seria:

Determinar su posición y fines de carrera mediante los potenciometros que tiene cada uno de los motores.Tenia pensado usar un multiplexor analogico para ingresar al pic las señales de los 6 potenciometros de los motores pero estoy viendo que algunos pics tienen hasta un mux de 8 señales analogicas de entrada para el conversor a/d.

Para el control de giro estube buscando drivers de motores dc y parece que me decidiré el por el l298 por ser bastante versatil y economico. Medido con amperimetros los motores no llegan a superar los 500mA cuando se paran con la mano. Igual para el de mayor embergadura conecte en paralelo las dos salidas de un l298 para evitar problemas de consumo.

Control de la muñeca/pinza



Un detalle curioso sobre la muñeca/pinza es que está compuesta de 3 motores como podeis observar. Uno externo a lo que es la muñeca y el antebrazo, que no sale en al foto que se dedica a cerrar la pinza y que transfiere su fuerza a través de un cable flexible hasta un tornillo que cierra o abre la pinza. Luego dos motores conectados de tal forma que segun su funcionamiento realizaran la siguiente función:

1. Los dos motores funcionando en el mismo sentido de giro --> la pinza sube o baja a modo de muñeca
2. Los dos motores funcionando en el sentido contrario de giro --> la pinza gira sobre si misma 360º

Probados estos dos motores parecen que a mismo voltaje giran a distinta velocidad lo que nos crea un pequeño conflicto de fuerzas ya que si queremos que la pinza gire sobre si mismo y aplicamos el mismo voltaje, como uno de los motores gira algo mas rapido que el otro la pinza gira pero poco a poco va subiendo o bajando la muñeca.

Para solventar ese problema tenia pensado realizar un ajuste de offset que haria la propia máquina comprobando la velocidad de giro por la velocidad de cambio de cada uno de los potenciometros asociados a estos motores y luego aumentar o disminuir por pwm aplicado directo a un driver l298 la fuerza de uno de ellos. No obstante el profesor de analogica me desaconseja el uso de pwm en motores de continua con iman fijo y de pequeño tamaño puesto que está teniendo bastante mala prensa entre la industria por dañar los motores de forma prematura.  Me aconseja usar un sistema de modificación de la velocidad mediante transistor trabajando en zona lineal aunque a este le entreguemos la señal pwm suavizado con un condensador... como si un fuera potenciometro digital.

Ya os ire contando mas cosas.

1 saludo
« Última modificación: 15 de Enero de 2008, 11:59:52 por elmasvital »

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Brazo robot 2
« Respuesta #5 en: 21 de Enero de 2008, 15:44:39 »
A ver tengo una duda a ver si me ayudais a solventarla.

Si habeis leidos los anteriores post vereis que los motores son de continua conectados a reductores y retroalimentados al pic por un potenciometro para saber su posición.

A la hora de controlarlos con el pic debo de hacerlo a través de un L298 y no puedo usar PWM por mandato del profesor de analogica (se explica en el post anterior).

Por tanto tenemos un control de todo o nada. A la hora de programarlo los potenciometros pasan por un adc que nos da como resultado un registro de 8 bits, que es comparado con la variable en el pic de posición (tambien de 8 bits) a la que quiero que vaya el motor.

Ok pues sin problemas una comparación y si es mayor a izquierda, si es menor a derechas y si son iguales pues parada. No obstante los motores cuando están en funcionamiento pues tienen una inercia importante debido a los reductores que tiene... se pasan de la posición y el programa corrige invirtiendo la polaridad... pero se vuelve a pasar de la posición... y asi hasta que consigue dejarlo en la posición exacta que desea.


He probado a meter un parametro de offset del motor, esto es, si el motor cuando se deja de alimentar avanza 5 posiciones mas pues paro de alimentarlo 5 posiciones antes de la posicion final. Pero no estoy seguro que pasara en la realidad cuando le meta carga si este parametro cambiará o si cambiará si el desplazamiento es corto y no se ha desarrollado la inercia nominal de cuando el desplazamiento es largo. En definitiva se pierde precision.


Ok espero que hasta aqui se haya entendido. Todo esto aun esta en simulación con proteus y no en la realidad. El prototipo cuesta un dinero pa hacer pruebas :-D

Necesito desarrollar un freno de motor. Se puede hacer invirtiendo la polaridad aunque tengamos inercia en sentido contrario? Frena esto el motor?

Que sistema se suele usar en estos casos?

Preguntas...

Con la inercia que llevan los motores invirtiendo la polaridad no conseguire pararlos pero igual si frenarlos?

El motor actuará de dinamo y creara un corto al L298?¿

El debanado del motor reventará?

No ocurrirá nada?


1 saludo
« Última modificación: 21 de Enero de 2008, 15:51:02 por elmasvital »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Brazo robot 2
« Respuesta #6 en: 21 de Enero de 2008, 15:55:43 »
Hay dos formas que te sugiero utilizar para detener el motor en forma mas precisa.
  • Utiliza pulsos de ancho muy corto y distancialos mas entre si cuando estes mas cerca de la posicion, recuerda que debes leer y realimentar la posicion, filtra un poco la entrada analogica asi lo que lees no varia por si solo.
  • Si aun no te da resultado agrega una rutina al stop que aplique tension inversa durante un milisegundo eso lo detendra si o si

espero te sirva de ayuda... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Brazo robot 2
« Respuesta #7 en: 21 de Enero de 2008, 18:50:54 »
Quizás diga una barbaridad pero, ¿no podrías hacer una función que aplique potencia al motor en función de su distancia al destino?.
Lo que digo es que si sabes que faltan 5 pasos en el encoder no cortes de golpe, sino que disminuyas la potencia un tanto, cuando falten 4 otro tanto, y así progresivamente jugando con las lecturas del encoder para saber si vas bien o te pasarás.
P.D.: ¿y un lazo PID?

Desconectado fartet

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 145
Re: Brazo robot 2
« Respuesta #8 en: 21 de Enero de 2008, 20:07:20 »
Tocara emplear "frenado eléctrico" con diodos volante, los motores de continua frenan en seco. Incluyo esquema con reles que puede dar alguna idea.

Con KA2 se preselecciona el sentido de giro y además se conecta el diodo volante correspondiente, KA1 conecta y desconecta el motor. Importante, especialmente si se sustituyen los reles por elementos semiconductores (transistores de potencia o powermos podrían emplearse para ello) para conmutar KA2 tiene que estar KA1 desconectado


Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Brazo robot 2
« Respuesta #9 en: 21 de Enero de 2008, 21:29:04 »
Tocara emplear "frenado eléctrico" con diodos volante, los motores de continua frenan en seco. Incluyo esquema con reles que puede dar alguna idea.

Con KA2 se preselecciona el sentido de giro y además se conecta el diodo volante correspondiente, KA1 conecta y desconecta el motor. Importante, especialmente si se sustituyen los reles por elementos semiconductores (transistores de potencia o powermos podrían emplearse para ello) para conmutar KA2 tiene que estar KA1 desconectado



La opcion propuesta por fartet es la mejor, pero dificil de implementar cuando se busca accionar a traves de transistores , ya que la opcion de reles tiene tiempos de reaccion electromecanicos que dificilmente sean identicos en un rele que en el otro, por lo tanto enloquecerian el calculador de posicionamiento (si es que desarrollas un algoritmo que haga eso)...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado fartet

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 145
Re: Brazo robot 2
« Respuesta #10 en: 21 de Enero de 2008, 22:09:15 »
Puede bastar introducir pausas programadas entre dos acciones, por lo demás es conveniente hacerlo así para mayor garantía de extinción de corriente.

Con semiconductores siempre podría dejarse conectado uno de los dos diodos volantes, y unificar en el mismo puente los "contactos" de sentido de giro y los de conexión.

El programa de gestión de los transistores de potencia tiene que garantizar pausas entre una conmutación en los diodos volantes y la conexión de la alimentación, ademas tiene que garantizar una segunda pausa cuando se abra el puente y antes de que se permita conmutar los diodos. Dada que el sistema mecánico es "lento" comparado con la velocidad de conmutación en transistores y con el tiempo necesario para que se extinga la intensidad en el motor, el introducir estas pausas no debería suponer problema excesivo si el control lo efectúa un micro controlador, incluso podría ser factible calcular la pausa mínima necesaria.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Brazo robot 2
« Respuesta #11 en: 22 de Enero de 2008, 00:55:29 »
muy simpatico esta ese brazo :mrgreen:

espero no estar de inoportuno, he manejado un pequeño brazo, mas sencillo que el que muestra elmasvital, este solo tenía dos motores (dos grados de libertad y sin actuador final), un motor PAP en la base (rotacion 360º) y arriba un motor dc, con un encoder:

y bueno a este lo moví muy facilmente, ya que el PAP era un regalito :mrgreen:, el dc costo mas ya que habia que ver mas detalle en el encoder, pero tuve exito

Ahora, las preguntas del millon, espero me aclaren algunas dudas, y pues me siento avergonzado por no saberlas :oops:

1. en cuanto a la realimentacion, el encoder cuenta como realimentación??
2. mencionaron ahi que un potenciometro sirve como realimentacion, esto es porque hago que el potenciómetro (la perilla) gire con el motor y pues habrá variaciones de tensión, y con ello me podria ubicar en la posicion, cierto? pero entonces como es un potenciometro no girará 360º, ya que su confeccion no se lo permite, o son potenciometros que giran 360º?
3. la realimentacion puede ser de posición y velocidad? o ambas? o solo una a la vez?
4. si quiero hacer un PID o un PD, o algun otro tipo de compensador, como se hace? solo por software, o que hardware se necesita?
5. si se hace un compensador, la realimentación esta involucrada cierto?

de momento son las mas cruciales que pasan por mi mente, ya que tb pretendo construir un pequeño robotico, les mostrare todos los logros al final, o cuando vaya avanzando mas sobre el, pues no tengo mucho tiempo para hacer que funcione :(, y tb tengo qeu armarlo

pero a pesar de que será pequeño quiero hacerle todo, para que sea robusto, y sea un robot casi de verdad y digno de un verdadero ingeniero :mrgreen: o bueno por lo menos de uno que quiere serlo.

espero no haber molestado, y suerte con todo, un saludo
.

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: Brazo robot 2
« Respuesta #12 en: 30 de Enero de 2008, 15:58:24 »
hola,, el principio de freno que propone fartet es el correcto para motores pequeños, es el equivalente a un frenado dinámico con una resistencia de freno de 0ohm. Un puente H lo puedes utilizar para realizar este tipo de freno usando sus mismo diodos y transistores y haciendo circular la corriente del motor como generador dentro del mismo puente por la inercia seguramente te pasarás algunos grados.

Yo uso puente H para controlar motores dc 1HP y no tengo problemas con el desgaste del motor, al principio cuando disparaba mal los mosfet se escuhaba un chillido en el motor.

También puedes probar con un simple control proporcional (Kp*ess) y comparas cual de los dos te da el menor error.

Si solo te interesa la posición usa solo el lazo de posición, si te interesa posición y torque usa dos lazos de posición y corriente, si te interesa los tres lazos debes controlar posición, velocidad y corriente. Lo más práctico ahora es realizar el PID o el compensador por software, el microcontrolador debe tener el hardware necesario para manejar al motor, especialmente el PWM y el encoder.

saludos.
control de movimiento

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Brazo robot 2
« Respuesta #13 en: 12 de Febrero de 2008, 15:32:22 »
Bueno siguiendo con el proyecto y dejando de momento de lado el tema freno de motor... la cosa va avanzando. Mi compañero está terminando la placa de alimentación y control de motores con los 298 y yo estoy implementando 2 multiplexores analogicos para un total de 12 conversiones A/D que serán necesarias.

como multiplexor analogico usamos el 74hct4051 con excelentes resultados.... aunque no sin problemas... me he llevado toda la mañana y toda la tarde para detectar un fallo que me hacía que las conversiones se afectaran unas a otras y que finalmente era la falta de retardo entre cambio de canales a/d del propio pic.

una fotillo para el recuerdo...
 

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Brazo robot 2
« Respuesta #14 en: 12 de Febrero de 2008, 15:34:55 »
¿No tienes oscilaciones en las capturas analógicas?

(Anda que también te vas a equivocar con Vdd y GND  :D )