TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: elmasvital en 11 de Enero de 2008, 14:56:36

Título: Brazo robot 2
Publicado por: elmasvital 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

(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=5835)

(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=5837)


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.

(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=5839)

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.

(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=5841)

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.
Título: Re: Brazo robot 2
Publicado por: RedPic en 11 de Enero de 2008, 20:23:31
Ea, ya tienes tarea.  :mrgreen:

La nueva circuitería de control si sera microprocesada ¿no?
Título: Re: Brazo robot 2
Publicado por: elmasvital en 11 de Enero de 2008, 20:49:28
siisisisi por supuesto :-) estamos en todopic
Título: Re: Brazo robot 2
Publicado por: Nocturno 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:
Título: Re: Brazo robot 2
Publicado por: elmasvital 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

(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=5873)

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
Título: Re: Brazo robot 2
Publicado por: elmasvital 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
Título: Re: Brazo robot 2
Publicado por: MGLSOFT en 21 de Enero de 2008, 15:55:43
Hay dos formas que te sugiero utilizar para detener el motor en forma mas precisa.

espero te sirva de ayuda... :mrgreen:
Título: Re: Brazo robot 2
Publicado por: Nocturno 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?
Título: Re: Brazo robot 2
Publicado por: fartet 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

Título: Re: Brazo robot 2
Publicado por: MGLSOFT 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)...
Título: Re: Brazo robot 2
Publicado por: fartet 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.
Título: Re: Brazo robot 2
Publicado por: Cryn 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
Título: Re: Brazo robot 2
Publicado por: Renatox_ 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.
Título: Re: Brazo robot 2
Publicado por: elmasvital 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...
 
(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=6139)
Título: Re: Brazo robot 2
Publicado por: Nocturno 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 )
Título: Re: Brazo robot 2
Publicado por: elmasvital en 12 de Febrero de 2008, 15:43:44
Ahora mismo estaba buscando el tema en el que mencionabas las oscilaciones pero no lo encontraba.

Ahora mismo las oscilaciones son minimas... pero nunca mas allá de 1 arriba abajo y alimentado por una fuente conmutada de pc.

Sin embargo si que he sufrido bastante lo que te pasa con las oscilaciones y lo unico que te puedo aconsejar es que respetes los tiempos de adquisición a raja tabla... sobre todo si cambias de canal... si cambias de canal a/d en el pic debes poner un retardo, a mi me va bien 10-20 micros, antes de comenzar una nueva adquisición. Recuerda que son conversores sigma delta y necesitan cargar un condensador. También les afecta la impedancia y capacidades en paralelo.

Revisa si no lo has hecho la nota de aplicación DS33023 en http://ww1.microchip.com/downloads/en/devicedoc/33023a.pdf

Y por cierto... tengo pintados los colores de vdd y gnd pq tengo especial atracción por invertir las polaridades :-D y ya sabemos lo festivas que suelen ser estas equivocaciones...

Título: Re: Brazo robot 2
Publicado por: elmasvital en 21 de Febrero de 2008, 11:55:22
Sigo enseñando cositas, espero que aunque no escribais al menos si lo lea alguien :-P...

Una de las sorpresitas que tenia reservada... es el hermano pequeño del brazo robot

Es una versión con los mismos sensores que lleva su hermano mayor y sirve para amaestrarlo, usease, para la captura de movimientos del brazo. Segun parece es así industrialmente como se entrenan los movimientos de los brazos. Cuenta con 6 resitencias variables para 6 motores que lleva la versión grande.

(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=6202)
(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=6204)

Os podeis imaginar el encargo que nos dieron... debe poder capturar y memorizar los movimientos que se hagan desde el joystick... a parte de que se pudan tambien realizar desde el programa de ordenador que se está desarrollando.


A ver si llegamos


1 saludo
Título: Re: Brazo robot 2
Publicado por: Nocturno en 21 de Febrero de 2008, 14:26:25
Uyyyy, qué monadaaaa

Muy chulo, José Antonio.
Título: Re: Brazo robot 2
Publicado por: stk500 en 21 de Febrero de 2008, 15:39:55
 :-/ :-/ :-/ que envidia te tengo Jose  :-/ :-/ :-/ y tengo unos motores por ahi PAP que me esta entrando cosquilla  :mrgreen:
muy bueno no projecto
Título: Re: Brazo robot 2
Publicado por: mandoanaiz en 23 de Febrero de 2008, 07:29:42
excelente
Título: Re: Brazo robot 2
Publicado por: elmasvital en 27 de Febrero de 2008, 17:17:31
Las primeras pruebas del cacharro en movimiento :-D

NO se si se aprecia bien en el video pq es de un movil y de los malos :-P, pero el brazo robot está imitando las acciones que estoy realizando con este brazo que comentaba en un post anterior.


Es la primera toma de contacto con el movimiento del brazo robot y aun quedan bastantes cosas que mejorar como los offset de cada uno de los motores o como el arranque tan brusco que pega en los desplazamientos pequeños.

El programa para manejarlo por usb y el grabado de movimientos serán los siguientes.

:-) de aqui al dia 14 que entregamos a ver que se puede hacer.
Título: Re: Brazo robot 2
Publicado por: Nocturno en 27 de Febrero de 2008, 17:21:46
¿And'está el vídeoooo?
Título: Re: Brazo robot 2
Publicado por: elmasvital en 27 de Febrero de 2008, 17:28:34
Es el primer video que cuelgo y no sabia como se hacia :-P si no se ve ahora avisad pq yo si lo veo
Título: Re: Brazo robot 2
Publicado por: Nocturno en 27 de Febrero de 2008, 17:52:58
Menuda cara de felicidad se te ve, macho. Muy chulo el proyecto, sí señor.
Título: Re: Brazo robot 2
Publicado por: fartet en 27 de Febrero de 2008, 18:57:12
 muy bueno :) :) :) :) :) :)
Título: Re: Brazo robot 2
Publicado por: elmasvital en 27 de Febrero de 2008, 19:18:05
Menuda cara de felicidad se te ve, macho. Muy chulo el proyecto, sí señor.

La verdad que despues de tantas horas se te ilumina la cara... pero tambien me estaba riendo de las conversaciones del video de los $%·$% de mi clase :-P razon por la que he optao por borra el audio :-P
Título: Re: Brazo robot 2
Publicado por: todopic en 27 de Febrero de 2008, 19:26:34
 :-/ :-/ Muy bueno Jose!!!!, que alegria!  :-/

queremos mas fotos!!!  :D

Norberto
Título: Re: Brazo robot 2
Publicado por: ESTECA55 en 27 de Febrero de 2008, 20:09:36
Muy bueno el video!! Excelente proyecto!!

Saludos
Título: Re: Brazo robot 2
Publicado por: Cryn en 27 de Febrero de 2008, 21:52:51
guau ha quedado muy bien felicidades :-/ :-/
Título: Re: Brazo robot 2
Publicado por: elmasvital en 04 de Marzo de 2008, 15:25:57
Vuelvo a la carga de nuevo despues de un examen de sistemas.

Si observais en el video los movimientos del robot en las distancias cortas es bastante brusco. Esto es así porque el control de la velocidad de los motores se hace por un metodo de todo o nada, aderezado con una inyección a los motores de una señal rectificada (solo con puente de diodo pero sin condensadores) que para entendernos tendrá de voltaje eficaz 12 voltios.

Bien mi objetivo es que en cuando el desplazamiento del robot sea de pequeño recorrido la velocidad de excitación de los motores no sea tan grande y puesto que los drivers de los motores (ln298) solo admiten el control de todo o nada... pues la unica solución es PWM. Ok estupendo, pero es que los motores del brazo robot se mueven todos al unísono, si asi es necesario, por lo que en el peor de los casos necesitaremos 6 PWM funcionando al unisono y el 16f877a no nos brinda esta posibilidad.

En fin estoy enfrascado en realizar un PWM por softare usando para ello el TIMER1.

Tengo algunas preguntas que a ver si alguien sabria responderme antes de que lo pruebe yo en el banco de trabajo...

De que depende la frecuencia de trabajo de un PWM? Podria valerme con 100 HZ? o 500HZ? ya que he visto frecuencias de PWM bastante superiores me gustaria saber si alguien sabe la razón a ciencia cierta de este hecho.

Título: Re: Brazo robot 2
Publicado por: Renatox_ en 05 de Marzo de 2008, 03:33:44
También se usan frecuencias superiores de 20Khz a 100Khz para suavizar la corriente de la armadura, a menor periodo del PWM la corriente en la inductancia "La" tiene menos tiempo para cargar y descargar y se hace más suave o filtrada,
Título: Re: Brazo robot 2
Publicado por: Azicuetano en 05 de Marzo de 2008, 05:12:15
Se ha quedado muy bien esa extremidad superior de robocop  :D


Un saludo desde Alicante.
Título: Re: Brazo robot 2
Publicado por: elmasvital en 17 de Marzo de 2008, 10:05:14
Bueno ya estoy fuera de plazo :-P y aun no está terminado... pero eso en España es bastante frecuente :-)...

Ya están realizadas todas las placas del brazo robot...

-Se ha conseguido regular la velocidad de los 6 motores al unisono mediante 6 pwm por soft. Se ha ganado en precisión y en vistosidad del movimiento.

Placa de potencia
(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=6416)

Placa de control

(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=6414)

Donde pone 16A877a logicamente es un 16f877a

Ahora a conectarlo con el pc
Título: Re: Brazo robot 2
Publicado por: Nocturno en 17 de Marzo de 2008, 15:28:25
Felicidades, José Antonio. Se ven bonitas las placas, a ver el video del robot.
¿Para qué usas esas resistencias de precisión, de color celeste?

P.D.: espero que hayas dejado existencias de diodos en las tiendas de Sevilla  :mrgreen:
Título: Re: Brazo robot 2
Publicado por: elmasvital en 17 de Marzo de 2008, 15:59:27
Las resistencias son las que habia a mano :-P

El brazo robot lo tengo en casa hasta final de semana... asi que si quieres verlo :-) solo tienes que pasarte
Título: Re: Brazo robot 2
Publicado por: AKENAFAB en 17 de Marzo de 2008, 17:00:14
HOla!!

Felicitaciones elmasvital !!

Esta quedando muy padre!!   :-/

Y las placas ufff!! me gustaron mucho ,su trabajo muy profesional!!

SAludos!

Atentamente
 Akenafab
Título: Re: Brazo robot 2
Publicado por: elmasvital en 20 de Marzo de 2008, 13:32:32
Bueno otro video ya casi casi esta listo... aqui realizando una supuesta tarea repetitiva. Como se ve ha ganado muchisimo en precisión...

Por si no se ve bien el brazo robot es el mismo que se ha mostrado hasta ahora con una cinta transportadora que era otro de las sorpresitas que tenia aun guardada :-). Está cogiendo un bote de flux, identico a los botes de pintura para uñas de las mujeres.

La tarea la ha realizado sin ningun tipo de problemas por mas de media hora :-)

Siguiente tarea... terminar el sistema de menus :-)



1 saludo
Título: Re: Brazo robot 2
Publicado por: Nocturno en 20 de Marzo de 2008, 15:04:05
Jeje, qué chulo. Sí que han mejorado los movimientos; felicidades.
Título: Re: Brazo robot 2
Publicado por: stk500 en 20 de Marzo de 2008, 18:43:59
muy bien elmasvital muy chulo  :-/ :-/ :-/ :-/
en hora buena,  :-/ :-/ :-/ :-/
Título: Re: Brazo robot 2
Publicado por: Cryn en 22 de Marzo de 2008, 00:15:41
buenisimo :shock:

felicidades elmasvital ha qeudado muy bueno

 :-/ :-/
Título: Re: Brazo robot 2
Publicado por: elmasvital en 22 de Marzo de 2008, 07:19:29
Un screenshot del software de control via usb

(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=19960.0;attach=6459)
Título: Re: Brazo robot 2
Publicado por: D3L05 en 22 de Marzo de 2008, 17:58:01
Hola! felicitaciones por el proyecto la verdad que esta buenisimo, tanto q me dieron ganas de hacerme uno  :mrgreen:

y por eso queria consultar unas cositas, voy a utilizar 3 motorcitos de estos:

(http://img292.imageshack.us/img292/4053/p1000494fw7.th.jpg) (http://img292.imageshack.us/my.php?image=p1000494fw7.jpg)

(http://img292.imageshack.us/img292/764/p1000500um0.th.jpg) (http://img292.imageshack.us/my.php?image=p1000500um0.jpg)

creo q el encoder q trae se me va a hacer imposible utilizarlo tiene como 11 cables...asiq creo q optare por la opcion q utilizaste de los potenciometros...

queria consultar por como conectar estos motores quiero usar un driver con un l298, pero estos motores tiene 3 cables, masa y 1 para cada sentido y no se como conectarlos al l298, ni si puedo conectar 2 motores en el mismo, y mi otra consulta es si podrias explicar un poco como solucionaste el tema de la inercia en el frenado del motor, gracias de ante mano.

saludos.

German
Título: Re: Brazo robot 2
Publicado por: dogflu66 en 22 de Marzo de 2008, 18:59:09
Felicidades elmasvital, recién que estuve viendo los videos y a quedado genial. :D
Título: Re: Brazo robot 2
Publicado por: elmasvital en 22 de Marzo de 2008, 20:54:41
Ui con las prisas le di al boton de borrar sin querer y borré mi mensaje anterior :-P


Hola! felicitaciones por el proyecto la verdad que esta buenisimo, tanto q me dieron ganas de hacerme uno  :mrgreen:

y por eso queria consultar unas cositas, voy a utilizar 3 motorcitos de estos:

(http://img292.imageshack.us/img292/4053/p1000494fw7.th.jpg) (http://img292.imageshack.us/my.php?image=p1000494fw7.jpg)

(http://img292.imageshack.us/img292/764/p1000500um0.th.jpg) (http://img292.imageshack.us/my.php?image=p1000500um0.jpg)

creo q el encoder q trae se me va a hacer imposible utilizarlo tiene como 11 cables...asiq creo q optare por la opcion q utilizaste de los potenciometros...

queria consultar por como conectar estos motores quiero usar un driver con un l298, pero estos motores tiene 3 cables, masa y 1 para cada sentido y no se como conectarlos al l298, ni si puedo conectar 2 motores en el mismo, y mi otra consulta es si podrias explicar un poco como solucionaste el tema de la inercia en el frenado del motor, gracias de ante mano.

saludos.

German

German cuando pase esta semana si quieres te ayudo un poco si no lo consigues antes... los l298 aguantan 45v y 4 amperios en principio valdrian, pero podrias intentar buscar como funcionan esos motores pq parece que tienen la electronica de control ya integrada.

Sobre lo que me preguntas de la inercia... la controlo reduciendo la velocidad segun se llega a destino por pwm, con lo que reducimos velocidad y el par de motor...
Título: Re: Brazo robot 2
Publicado por: D3L05 en 22 de Marzo de 2008, 23:03:22
muchas gracias por responder, me vendria genial ayuda ya q no tengo muchos conocimientos del tema. sobre la electronica q trae eh buscado bastante y no hay casi nada sobre el SLA6050 no encontre mucho mas q las caracteristicas pero no encontre ni la disposicion de los pines.
creo q va a ser mas sencillo hacer un driver al menos eso creo si esq se puede conectar al l298 este motor de 3 cables.
en cuanto al encoder lo terminare sacando ya q tiene 11 cables y vaya a saber como tomar los datos (adjunto unas foto).
de nuevo muchas gracias seguramente te vuelva a molestar con mas preguntas..esto recien empieza  :mrgreen:


(http://img201.imageshack.us/img201/4730/p1000745sr5.th.jpg) (http://img201.imageshack.us/my.php?image=p1000745sr5.jpg)
(http://img524.imageshack.us/img524/825/p1000749lg6.th.jpg) (http://img524.imageshack.us/my.php?image=p1000749lg6.jpg)

saludos!
Título: Re: Brazo robot 2
Publicado por: jfh900 en 22 de Marzo de 2008, 23:34:12
Me temo que ese motor no le vas a poder conectar a un L298 ya que es un motor brushless. Estos motores, son motores sin escobillas de tipo síncrono y por lo tanto se controlan como los motores de corriente alterna, necesitando drivers de control específicos para este tipo de motores.

Un saludo
Título: Re: Brazo robot 2
Publicado por: D3L05 en 23 de Marzo de 2008, 00:50:08
Me temo que ese motor no le vas a poder conectar a un L298 ya que es un motor brushless. Estos motores, son motores sin escobillas de tipo síncrono y por lo tanto se controlan como los motores de corriente alterna, necesitando drivers de control específicos para este tipo de motores.

Un saludo

vaya me temo q tienes razon, pos ahora estoy mas perdido q antes...tendre q investigar un poco del tema, de todas formas son 2 los motores de este tipo q tengo q son los mas grandes y cargaran con la mayor carga el resto si usare motores DC con encoders q tengo q ver como tomar los datos ya q unos tienen encoders de 4 cables y otros de 2, muchas gracias..

P.D:  elmasvital perdona q desvirtue tu post solo pensaba hacer una consulta sencilla y termine desviando tu post mil disculpas..
Título: Como frenar con PWM?
Publicado por: gu1llermo en 06 de Abril de 2008, 18:03:05
Hola elmasvital, también estoy trabajando con el control de dos brazos robot industriales, uno es el SCARA y el otro es un Cilíndrico, y en ambos tengo el problema de la inercia, te quería preguntar como haz hecho especificamente para resolver ese problema, he realizado una imagen de como me imagino que lo puedo resolver y en base a esta te haré la pregunta:

(http://img87.imageshack.us/img87/4959/pwmnv7.jpg)

Que valores de PWM mín, PWM máx y P, haz considerado? en el supuesto caso que lo haz resuelto de esa forma, claro.

En uno de ellos la distancia total a recorrer es de 256 pulsos y en el otro es de 750 pulsos, pero para simplificar e colocado que va de 0% hasta 100%.

Saludos.
Título: Re: Brazo robot 2
Publicado por: jfh900 en 06 de Abril de 2008, 20:00:02
Otra forma de solucionar la inercia es utilizar un PID. Aunque es un método un poco más complicado que lo que planteas.

Un saludo
Título: Re: Brazo robot 2
Publicado por: gu1llermo en 06 de Abril de 2008, 20:00:21
Bueno, leyendo de nuevo mi post anterior me doy cuenta que me faltó ser un poco más claro, pido disculpas por eso, a continuación explicaré con más detalle lo que tengo en mente hacer:

1ero qué significa cada variable?

PWM máx: es la máxima señal de PWM aplicada al motor, por ejemplo 100%
PWM mín: es la mínima señal de PWM aplicada al motor, por ejemplo 40%
P: indica que porcentaje del recorrido total en que se empieza a frenar, 30%

Ahora vamos a definir una variable a la que llamaremos 'recorrido':

recorrido=(distancia total que puede recorrer la articulación)*P

Ahora definimos otra variable que llamaremos 'valor':

valor= (abs(Posición deseada-Posición actual))/recorrido*100;

Dicho 'valor' representa el porcentaje de ciclo útil de la señal PWM aplicada al motor. Si valor es mayor que PWM máx. lo limitamos y le asignamos PWM máx., si por el contrario es menor que PWM mín. le asignamos PWM mín.

Espero haberme explicado mejor esta vez, de todas formas cualquier duda me avisan.

saludos.
Título: Re: Brazo robot 2
Publicado por: gu1llermo en 06 de Abril de 2008, 20:02:39
Hola jfh900, escribimos casi al mismo tiempo.

Bueno pensé en aplicar un control PI pero en verdad no quiero complicarme más la vida y lo que quiero es aplicarle una tensión al motor proporcional al desplazamiento que tenga que realizar y si con eso me basta lo dejo así.  8)

Título: Re: Brazo robot 2
Publicado por: gu1llermo en 06 de Abril de 2008, 20:19:01
La otra razón es que necesito que el motor llegue a su posición deseada y no se regrese, es muy importante que no se regrese, solo que llegue y se detenga sin vibración producto de la inercia.

Saludos.
Título: Re: Brazo robot 2
Publicado por: jfh900 en 06 de Abril de 2008, 20:20:11
¿Que tipo de motores utilizan los brazos?

Un saludo
Título: Re: Brazo robot 2
Publicado por: gu1llermo en 06 de Abril de 2008, 20:21:44
El motor que estoy utilizando es el que se usa para accionar las ventanas electricas de los automóviles, 12V es su tensión, tengo 2 motores paso a paso y otro motorcito dc pero pequeño que no viene al caso el estudio porque es on/off según un final de carrera.
Título: Re: Brazo robot 2
Publicado por: jfh900 en 06 de Abril de 2008, 20:24:03
Con un PWM con un puente en H que aplique ciclos positivos y negativos, cuando el ciclo sea del 50% detendrá el motor y lo dejará frenado.

Un saludo
Título: Re: Brazo robot 2
Publicado por: gu1llermo en 06 de Abril de 2008, 20:28:39
Estoy utilizando un LMD18200, disculpa mi pregunta: pero si la señal del ciclo útil del pwm es 50%, el motor se detiene?, esto todavía no lo e probado, yo pensaba que si el ciclo útil del pwm es igual a 50% la tensión aplicada sería 6V, para una tensión total de 12V.

Gracias y saludos.
Título: Re: Brazo robot 2
Publicado por: jfh900 en 06 de Abril de 2008, 20:54:12
El puente en H aplica durante un semiciclo la tensión positiva y durante el siguiente semiciclo se invierte pasando a ser negativa (no es cero), por lo tanto el valor medio es de 0 V y se crea un par de frenado con ciclo del 50%.

Un saludo
Título: Re: Brazo robot 2
Publicado por: gu1llermo en 06 de Abril de 2008, 21:01:52
Ah! ok, entendido  8) gracias.
Título: Re: Brazo robot 2
Publicado por: Renatox_ en 07 de Abril de 2008, 00:08:18
Hola que tal, una manera sencilla de hacerlo seria aplicar un simple control proporcional a una distancia determinada del punto de destino. cuando llegues al punto de destino no desactives el control proporcional si lo haces el sistema es suceptible a perturbaciones como por ejm cuando una persona mueve el brazo con la mano.

Si el motor vibra mucho puede deberse a una baja resolucion del encoder, o a una ganancia muy alta.

Arma bien tu puente H, la velocidad debe ser proporcional al voltaje ordenado por el pic, a partir de donde empieza a moverse el motor, por ejm con 1.5v el motor se mueve a partir de ahi la proporcion debe cumplirse.

Un buen puente H ayuda al controlador a llegar más rápido al setpoint segun lo diseñado.

Armar un correcto puente H parece sencillo pero no lo es, si la onda que llega al motor no es cuadrada como la que sale del pic entonces el puente está siendo mal disparado, recuerden eso.

saludos.
Título: Re: Brazo robot 2
Publicado por: gu1llermo en 07 de Abril de 2008, 00:56:57
Gracias por las respuestas, a la final creo que voy a implementar el control PID como bien me recomendó jesús, le estaba sacando el cuerpo porque no entendía exactamente como implementarlo, especificamente con el cálculo de las constantes, pero prefiero montar algo que ya está recontra-probado en vez de ponerme a inventar la rueda  :? estoy leyendo acerca del mismo.

Saludos.
Título: Re: Brazo robot 2
Publicado por: jfh900 en 07 de Abril de 2008, 10:14:19
La implementación del PID es:

Término proporcional:

1) e_func = v_des - v_act; /* error function */
2) r_mot = Kp*e_func; /* motor output */

Término integrativo:

1 static int r_old=0, e_old=0;
2 ...
3 e_func = v_des - v_act;
4 r_mot = r_old + Kp*(e_func-e_old) + Ki*(e_func+e_old)/2;
5 r_mot = min(r_mot, +100); /* limit output */
6 r_mot = max(r_mot, -100); /* limit output */
7 r_old = r_mot;
8 e_old = e_func;

Término derivativo:

1 static int e_old=0;
2 ...
3 e_func = v_des - v_act; /* error function */
4 deriv = e_old - e_func; /* diff. of error fct. */
5 e_old = e_func; /* store error function */
6 r_mot = Kp*e_func + Kd*deriv; /* motor output */
7 r_mot = min(r_mot, +100); /* limit output */
8 r_mot = max(r_mot, -100); /* limit output */

Todo junto el PID al completo implementado en "C":

static int r_old=0, e_old=0, e_old2=0;
2 ...
3 e_func = v_des - v_act;
4 r_mot = r_old + Kp*(e_func-e_old) + Ki*(e_func+e_old)/2
5 + Kd*(e_func - 2* e_old + e_old2);
6 r_mot = min(r_mot, +100); /* limit output */
7 r_mot = max(r_mot, -100); /* limit output */
8 r_old = r_mot;
9 e_old2 = e_old;
10 e_old = e_func;

Ajuste de los parámetros o sintonización del PID:

1. Select a typical operating setting for the desired speed, turn off integral
and derivative parts, then increase KP to maximum or until oscillation
occurs.
2. If system oscillates, divide KP by 2.
3. Increase KD and observe behavior when increasing/decreasing the
desired speed by about 5%. Choose a value of KD which gives a damped
response.
4. Slowly increase KI until oscillation starts. Then divide KI by 2 or 3.
5. Check whether overall controller performance is satisfactorily under
typical system conditions.


Con esto más la información que has puesto, te tiene que permitir implementar el PID.

Un saludo
Título: Re: Brazo robot 2
Publicado por: gu1llermo en 07 de Abril de 2008, 11:33:57
Muchas gracias Jesús, ahora si es verdad que estoy armado hasta los dientes como dicen  :mrgreen:, con respecto a cuando dices la información que he publicado, me imagino que te refieres a esta: Control PID con PIC (http://www.todopic.com.ar/foros/index.php?topic=5384.0)

Jesús con tu permiso voy a citar lo que has escrito, en el enlace indicado anteriormente para tener todo junto, en verdad me gustó mucho.

Publicaré lo que realice en el otro hilo para no desvirtuar éste.

Gracias nuevamente y saludos.
Título: Re: Brazo robot 2
Publicado por: jfh900 en 07 de Abril de 2008, 18:49:07
Por mi parte todo correcto.

Un saludo
Título: Re: Brazo robot 2
Publicado por: Renatox_ en 08 de Abril de 2008, 00:13:43
Hola guillermo, ten cuidado implementar un PID de posición es diferente a uno de velocidad ya que tus puntos de inicio y fin pueden estar muy cerca como también muy lejos, si la calibración de tu PID te da 1seg, entonces en teoría demoraría 1seg en ir de 0mm a 1mm y de 0mm a 100mm, en el segundo caso puede que se sature mucho la componente integral por el area del error, y tu motorcito salte mucho incluso que no llegue a su posición final por error matemático en los cálculos, por eso es mejor que actives el PID a cierta distancia del punto final.

saludos.
Título: Re: Brazo robot 2
Publicado por: gu1llermo en 08 de Abril de 2008, 10:03:21
Hola! Renatox_, te respondí en éste hilo: Control PID con PIC (http://www.todopic.com.ar/foros/index.php?topic=5384.msg163935#msg163935)

Saludos.
Título: Se q es algo tarde pro... en el tecnico donde estudio tenenmos uno de esos !!!
Publicado por: mdark en 28 de Enero de 2010, 21:32:02
 :-/ :-/ :-/ :-/Es da la firma Lorenzo (italiana) muy buena calidad los todos los conectores son para el est del rj45 por el cual se programa dame algo de tiempo y te puedo conseguir toda la info.  esta es la pagina !!! http://www.delorenzogroup.com / :-/ :-/ :-/ :-/ :-/ :-/
Título: Re: Como frenar con PWM?
Publicado por: Oceano en 06 de Diciembre de 2010, 00:53:02

Sólo es una idea alternativa:

Un truco para controlar la inercia, no es controlando la velocidad, si no obligar a pasar el brazo punto por punto toda la trayectoria y en cada punto tener una pequeña demora. Al motor no le da tiempo a tomar inercia porque los trayectos punto por punto son muy cortos.

Me explico: Si quieres ir del punto 1 al punto 14, no se le da la orden directamente, si no que se le hace pasar por todos los puntos, es decir, primer el punto 1, luego el 2, luego el 3, en cada punto con la demora que creas, hasta terminar la trayectoria.

Puedes aplicar esto tanto para la zona del arranque como para la zona de la meta (me refiero a la curva de velocidad).

Por otra parte los motores se suelen frenar con ayuda del puente en H, poniendo los transistores de arriba o bien los de abajo en saturación.