desktop

¿Es posible el control de un brazo robot por ADC?

Hola, pues eso.. me hice del proyecto de hacer un brazo robot controlado por ADC pero no estoy seguro si sea posible.

Tengo un brazo robot hecho de motorreductores a los q les he acoplado potenciometros lineales y pues lo que quiero hacer con éste es darle rutinas.. dicho de otra manera.. controlar la posicion de los motores con el ADC, como si fueran servomotores, solo que, esto seria dependiendo de la posicion que me marque el ADC, hacer que el motor gire hacia la izquierada o la derecha y que se detenga cuando se encuentre donde quiero.. Eso es todo.. con solo hacer algunas rutinas simples pero funcionales ya podria ponerle condiciones para las diferentes rutinas por medio de sensores.

Estoy usando un PIC32MX460F512L con un traductor de 3.3v a 5v para las señales ttl hacia el driver de los motores. Son 4 donde el giro a la izquierda o derecha lo hago con l293B.

En mi programa, cmo ya lo dije, mando mover el motor a la izquierda o derecha dependiendo de la posicion que sense el modulo ADC (posicion en voltaje se podria decir). Empece a hacer pruebas con un solo motor, moverlo a una posicion deseada, pero no lo hacia.. verifique que se manden correctamente las señales y asi era.. pero no movia el motor y el l293 se caletaba en algunas ocaciones.. no estoy seguro si podria ser el L293B que me este fallando, aunque lo he probado en otra aplicacion mas sensilla donde un boton hace girar el motor a un lado y viceversa.. por lo que pienso que tal vez no puede ser posible controlar esto con ADC.. me gustaria escuchar opiniones o si pueden darme alguna sugerencia.. me dijo un profesor que podria ser que el driver produce mucho ruido o algo asi y que utilize optoacopladores (aunq no entendi donde queria q los utilizara).. bueno gracias de antemano por leer.
 
efectivamente es posible, usas en lugar de encoders potenciometros que te den uan diferencia de tension para cada posicion, de hecho el control resutal mucho mas sencillo.

digamos que un potenciometro comun y corriente tiene un giro de 270º usas el potenciometro como divisor de tension, cuando el potenciometro te de a la salida 0V digamos que estaras en la posicion de 0º y cuando te de 5V (usando como referencia la alimentacion del pic), estaras en la posicion de 270º, solo necesitas comparar.

si la posicion actual en relacion al voltaje es menor que tu set-point entonces haras girar el motor que contrareste la situacion, moviendo el servomecanismo hasta que el valor de tu tension de salida sea superior al set-point, obviamente si solo lo haces asi no garantizas que este en la posicion posiblemente se ha pasado entonces debes hacer lo contrario si ahora tu posicion es mayor que tu set point tendras que hacer girar el servo de lado contario.

si haces eso es posible que oscile tu sistema por poner un solo set-point entonces te recomiendo que uses un rango, para que cuando tu sistema caiga dentro de ese rango tu motor se apague

saludos espero te sirva
 
si haces eso es posible que oscile tu sistema por poner un solo set-point entonces te recomiendo que uses un rango, para que cuando tu sistema caiga dentro de ese rango tu motor se apague

saludos espero te sirva

Gracias, pues se me paso decirlo, pero si le di un rango. El ADC del pic q utilizo es de 10 bit, por lo que me da un valor de 1023 con 3.3v (que es el valor maximo de referenciare para el pic), y pues yo tle di 10 de esos 1023 como rango, de hecho le cambiaba, a veces 5 y asi.. y pues en realidad el problema aun esta ahi, no me movia los motores.. aunq.. bueno tambien olvide mencionar.. hubo unas veces en q el motor con el q estaba probando si se movio, pero presento oscilaciones cmo has dicho tu y esto aun cuando le di un rango y sucedia a veces algo malo.. sucedia q se movia, oscilaba, se detenia derrepente y se calentaba el driver :/, no se.. mas que nada en realidad preguntaba por eso.. llegue a pensar que no se podia controlar eso.. me pregunto.. alguna vez has hecho algo parecido a esto? porq pues a mi si me parecia posible.. pero despues de todo es teoria y espero que las cosas me respondan muy idealmente.. igual y tal vez no se pueda y es por eso q pregunto.
 
Se puede... solo que al ser analogico tienes ruido inherente al sistema.. que es normal y muchas veces no se puede quitar... solo minimizar...

En cuanto al calentamiento del driver suena mas a error de programa que de los sensores....
 
Yo creo es más falla del hardware que del firmware.................... Puedes postear el diagrama que estás usando? y pss de paso tu código o algoritmo de programación?

Saludos!
 
Se puede... solo que al ser analogico tienes ruido inherente al sistema.. que es normal y muchas veces no se puede quitar... solo minimizar...

En cuanto al calentamiento del driver suena mas a error de programa que de los sensores....

El ruido.. pensaba ponerle unos capacitores a la fuente solamente.. la verdad no tengo mucha idea de cmo arreglarselo..

Perdona mi ignorancia.. igual y no tengo mucha experiencia con estos drivers pero como es q un error de programa puede calentar los driver? solo envio 2 señales del PIC y ninguna de esas combinaciones tengo entendido q puedan hacer eso o_O
 
busca el tema de "modificación de brazo owi-steren". ahi utilizamos potenciómetros como sensores de posición.
saludos!

Rayus! :LOL: es coincidencia, el brazo q comento es uno de esos con pots acoplados :LOL:x.. pero.. el control es por adc?¿.. bueno aun no busco bien cmo lo hicieron aunq.. nu c.. queria hacerlo a mi manera.. la manera q comento aqui.. vere bien esto

Nu c.. queria creer q estaba siendo original queriendo controlar esto por adc.. espero nu sea asi el q me dices.. :S :LOL:x
 
Última edición:
Rayus! :LOL: es coincidencia, el brazo q comento es uno de esos con pots acoplados :LOL:x.. pero.. el control es por adc?¿.. bueno aun no busco bien cmo lo hicieron aunq.. nu c.. queria hacerlo a mi manera.. la manera q comento aqui.. vere bien esto

Nu c.. queria creer q estaba siendo original queriendo controlar esto por adc.. espero nu sea asi el q me dices.. :S :LOL:x

Hola yo realice uno e incluso coloque un pequeño video del mismo, es controlado con dos joystick de ps2 que son con potenciomentros de 10k, y el adc 10 bit y conectado es directo, no coloque nada para el ruido y la señal para controlar loc motores era directa ya que era con servomotores, no hubo ningún problema con la lectura del adc, el problema en mi caso era la fuente que era de 1,5Amp y por eso vibraba demasiado, al colocarle una de 3Amp. mejoro notablemente.

Bueno te dejo el video saludos

 
Igual es poco tarde para responder a tu mensaje, si he hecho varios tengo un video del brazo que arme, usando potencimetros y un motor a pasos, con la ventaja de que llegaba al set-point y detenia el motor usando su propiedad intrinseca de dejar alimentada solo una bobina del motor.

En relacion a lo que menciona Chico3000 es verdad hay ruido por ser un sistema analogo pero los servos comunes usan un potenciometro y estos carecen precticamente de oscilacion.

Es bueno colocar filtros pasabajo, con frecuencia de corte menor a 1Hz, un ejemplo para este filtro seria poner una resistencia de 10kohms y un capacitor de 10uf nos daria una frecuencia de corte de 1.59hz es mayor a lo que menciono pero no recomiendo que bajes mucho la frecuecia de corte ya que provocara caidas de tension de la señal que estas leyendo y eso es igual de problematico que el ruido.

Habia hecho en ese entonces un rpograma en VB6.0 para leer la señal del potenciometro y asi ver que tan ruidosa es la señal, deja lo vuelvo hacer y lo posteo, sino con un osciloscopio que tengas a la mano puedes revizar que tanto ruido te baja el filtro y asi mejorar tu diseño.

exito.
 
Atrás
Arriba