TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: Marttyn en 04 de Diciembre de 2010, 16:44:03

Título: Convertir un motor DC en un servomotor
Publicado por: Marttyn en 04 de Diciembre de 2010, 16:44:03
Buenas! Me embarque en un proyecto bastante interesante. Es una especie de simulador que combinara video y movimiento. El movimiento se realizara con varios actuadores lineales de este tipo: http://servocity.com/html/1010_lbs__thrust_linear_actuat.html

Esos aparatitos tienen tanta fuerza (500kg aprox) que hay que controlarlos cuidadosamente porque hacer que se extiendan o retraigan de mas haria que rompiese algo.

El desafio que se me presenta ahora es hacer un controlador para cada uno de estos actuadores. Cada uno tiene 2 cables para la alimentacion y 3 para un potenciometro interno que indica la posicion.
La idea no es demasiado compleja, segun un valor que me llegue por I2C tendre que posicionar el actuador. El motor DC lo controlaria con un MOSFET ya que el actuador consume 12v 18A  :shock:
Para que la posicion sea precisa supongo que necesitare algun tipo de control PID para controlar la velocidad del motor.

Si alguien sabe algo de todo esto agradeceria mucho la ayuda, sino empezare de cero tanto el diseño electronico como el de software.

Un saludo!

PS: Si en enero alguien pasa por el FITUR (IFEMA, Madrid) podra ver esto en funcionamiento en uno de los stands mas inovadores de toda la feria :)
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Nocturno en 04 de Diciembre de 2010, 19:17:10
Lamentablemente no te puedo ayudar, pero me suscribo al hilo para estar pendiente de tus avances.

¿En enero tienes que tenerlo terminado?  :shock: :shock: :shock: ¡qué estrés!
Título: Re: Convertir un motor DC en un servomotor
Publicado por: MGLSOFT en 04 de Diciembre de 2010, 20:17:31
Me suscribo a ver como va!!
es interesante el tema-

Como vas a controlar velocidad, con PWM ??
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Marttyn en 05 de Diciembre de 2010, 15:02:19
¿En enero tienes que tenerlo terminado?  :shock: :shock: :shock: ¡qué estrés!

Si, estres asegurado!

Como vas a controlar velocidad, con PWM ??

Esa es mi idea inicial, aunque con el tiempo ajustado y las nociones escasas que tengo sobre PID y PWM creo que terminare haciendo algo mas sencillo, con posibilidad de perfeccionarlo en el futuro...

La idea de un control PID es lo mas logico, pero veo mas rapido simplemente variar la velocidad al 50% o al 100% segun la distancia a mover el actuador. Por ejemplo, que funcione al 100% hasta que este a 10 valores ADC del objetivo, y a partir de ahi lo muevo al 50%. Si es una chapuza, pero que le voy a hacer? :D

Lo genial seria usar un pic 12F683 o algun otro de 8 pines, la pena es que no tienen I2C por hardware.
Creo que me decantare por el 16F1823 -> 14 pines, PWM por hard, I2C por hard, oscilador interno de 32Mhz :shock: y solo 0.91€
Supongo que deberia ser suficiente :)
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Nocturno en 05 de Diciembre de 2010, 15:07:37
Muy interesante el oscilador, sí señor.

Lo del PID no es tan complicado de implementar, aunque tiene su guasa el calibrarlo adecuadamente. En cualquier caso, quizás deberías intentarlo porque te ahorrará muchos dolores de cabeza con el procedimiento que has planteado.
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Marttyn en 05 de Diciembre de 2010, 15:18:41
Si, increible estos nuevos pics que estan sacando! Tienen mas instrucciones, consumen menos, muslchisimas mas prestaciones, menor precio, guardan automaticamente el contexto al entrar a la intrrupcion... Me hace replantearme mis "sospechosos habituales"

Que problem ves con mi precario sistema de control PID?
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Nocturno en 05 de Diciembre de 2010, 15:22:26
El problema es encontrar ese 100% y ese 50% que se muevan como te gusta. Si la máquina no tiene carga un 50% a lo mejor es muy rápido, pero si está cargada, probablemente sea muy lento.
Con el PID bien calibrado, te olvidas de eso, marcas destino y listo.
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Marttyn en 05 de Diciembre de 2010, 15:38:33
A ver si encuentro algun control PID sencillo, porque ahora no tengo tiempo para investigar demasiado :S
Título: Re: Convertir un motor DC en un servomotor
Publicado por: stk500 en 05 de Diciembre de 2010, 15:48:25
pues aqui tiene un Kit completo si quiere empezar
http://www.robotshop.com/cytron-pid-motor-controller-training-kit.html
y el codigo
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Marttyn en 05 de Diciembre de 2010, 15:56:07
Muy bueno! Mirare el codigo a ver si puedo aprovechar algo!

Ahora estaba mirando esta app note de microchip que es bastante curiosa:
http://ww1.microchip.com/downloads/en/AppNotes/00964A.pdf
Explica como controlar un robot de pendulo invertido.
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Nocturno en 05 de Diciembre de 2010, 16:04:30
Aquí en el foro hay muchos hilos de PID. No sabría cuál recomendarte, pero date una vuelta que seguro encuentras mucha sustancia.
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Nocturno en 05 de Diciembre de 2010, 16:16:57
El código de la interrupción del cacharro que ha linkado Rafael está muy sencillito de entender; creo que eso lo pones en marcha rápido.
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Marttyn en 05 de Diciembre de 2010, 16:30:21
Sisi, estoy mirando el codigo y parece que podre con el :D
Ademas, la pagina tiene cosas muy interesntes, baratas y algunas open source!
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Marttyn en 05 de Diciembre de 2010, 16:35:18
--- OFFTOPIC ---
El codigo y esquema de esto me servira para hacer un joystick y otras funciones para la CNC :)
http://www.robotshop.com/eu/cytron-usb-game-controller-kit-2.html
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Nocturno en 05 de Diciembre de 2010, 16:36:38
Venga, venga, no te entretengas con juguetitos que Enero ya está aquí  :D
Título: Re: Convertir un motor DC en un servomotor
Publicado por: willynovi en 05 de Diciembre de 2010, 17:00:15
yo creo que deberias visitar esta pagina
Motion Simulator Builders and Gamers Community (http://www.x-simulator.de/forum/)
alli encontraras mucha info sobre lo que quieres construir.

Tienen un soft de libre distribución que te permitirá conectar los actuadores y realizar el control del movimiento de tu plataforma.
Yo soy miembro, no participo mucho pero cada tanto me doy una vuelta.

Puse en marcha un simulador de auto con este soft, así que por ahi en eso te puedo dar una mano  ;-)
Seguiré el hilo a ver si puedo ayudar en algo.
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Marttyn en 05 de Diciembre de 2010, 17:20:19
Gracias Willy! Veo que hay gente que se las ingenia muy bien para hacer cosas muy interesantes! Hay un simulador de coche que me gusto mucho, pero ahora no puedo cambiar todos los planteamientos, tendre que seguir por donde ya voy.

Ahora el gran problema es el puente H... para 20A veo que lo tendre que armar yo ya que no puedo tirar de integrados que se hagan cargo de eso :(
Quizas para controlar la direccion de giro puedo usar 2 reles. El problema seria como controlar la velocidad con PWM.
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Marttyn en 05 de Diciembre de 2010, 17:47:37
Esta podria ser una solucion a falta de tiempo para armarme un puente H propio:
http://www.pololu.com/catalog/product/1456
Título: Re: Convertir un motor DC en un servomotor
Publicado por: AKENAFAB en 05 de Diciembre de 2010, 17:51:54
Te recomiendo el siguiente driver para tus motores.

vnh2sp30 (http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00043711.pdf)
Código: [Seleccionar]
http://www.pololu.com/catalog/product/708
Citar
Real-world power dissipation considerations
The motor drivers have maximum current ratings of 30 A continuous. However, the chips by themselves will overheat at lower currents (see table above for typical values). The actual current you can deliver will depend on how well you can keep the motor drivers cool. The carrier printed circuit board is designed to draw heat out of the motor driver chips, but performance can be improved by adding a heat sink. In our tests, we were able to deliver short durations (on the order of milliseconds) of 30 A and several seconds of 20 A without overheating. At 6 A, the chip gets just barely noticeably warm to the touch. For high-current installations, the motor and power supply wires should also be soldered directly instead of going through the supplied terminal blocks, which are rated for up to 15 A.

(http://www.pololu.com/picture/0J107.200.jpg?1276042965)

Título: Re: Convertir un motor DC en un servomotor
Publicado por: AKENAFAB en 05 de Diciembre de 2010, 17:54:09
Me has ganado. :P

Te comento que el driver lo llegue a utilizar,por ahi tengo unas cuantas pcbs armadas y me dio buenos resultados.
Tambien lo puedes comprar en digikey y en otras tiendas.

--------------------------------------------------------------------------

Se ve muy bien ese driver, lo mejor es que te entrega 23A sin disipador y el rango de voltaje es mucho mayor hasta 34v contra 16v del driver que comente.

Saludos!
Título: Re: Convertir un motor DC en un servomotor
Publicado por: Marttyn en 06 de Diciembre de 2010, 14:16:03
Me has ganado. :P

Te comento que el driver lo llegue a utilizar,por ahi tengo unas cuantas pcbs armadas y me dio buenos resultados.

Fue cuestion de minutos :P
Gracias a tu recomendacion ya me decidi.
Ya tengo pedidos los drivers: http://www.pololu.com/catalog/product/758
Tambien los micros: 16F1823 (http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en544838)
Ahora estoy con el codigo. A ver si consigo un CCS que soporte este PIC.