Control de un servomotor con Visual Basic

ok, ya vi el video les quedo muy bien el robot,
:)
a este robot le das un punto en el espacio y el modelo matematico calcula los angulos y se los envia por el puerto paralelo a los driver de los motores paso a paso y el robot se posiciona en ese punto... y no es nada complicado hacerlo... ahora lo quiero hacer con servomotores y estoy invitando al grupo de utomatizacion y robotica
 
Los servomotores que yo he manejado son los HITEC, y los FUTABA, que yo creo ke son los mas comerciales, el modo de control de estos es simplemente enviar un tiempo en alto y un tiempo en bajo sin alterar la frecuencia, es decir como son servos de 50Hz el periodo es de 20000us (T=1/f) por tanto el tiempo en alto + el tiempo en bajo deben de ser igual a 20000us, y para el tiempo en alto ay una restriccion deve de estar en un rango de 900us-2100us para manejar un rangon de 0-180 grados, lo unico que ay ke sacar es la resolucion de movimiento es decir (2100-900)/180, de esta manera optenemos los us/grado que queremos para establecer las ecuaciones para su movimiento quedarian mas o menos asi:

talto=((2100-900)/180)*(Grado en el que queremos pocisionar) + 900
tbajo= 20000-talto

Bueno esta es una manera sencilla para controlar la posicion del servomotor, estos calculos noo me han fallado para posicionar este tipo de motores (HITEC y FUTABA).
El chiste es realizar un PWM con estos valores y listo.
Bueno aqui anexo un pequeño manual de servomotores dond esta programado en C, espero y les sirva
 

Adjuntos

  • SERVO.pdf
    1.4 MB · Visitas: 34
en la hoja 3 es el t402-011 estan las especificaciones del motor, salida del encoder es colector abierto de 500 pulsos por canal
ya vi el datasheet del 16f877a y podemos utilizar el modulo del timmer1 para contar los pulsos del encoder y el modulo del pwm timmer2 para controlar el motor

pag. 57 de datasheet 16f877a http://ww1.microchip.com/downloads/en/devicedoc/39582b.pdf
T1CON
bit 1 TMR1CS: Timer1 Clock Source Select bit
1 = External clock from pin RC0/T1OSO/T1CKI (on the rising edge) esto es lo que necesitamos
0 = Internal clock (FOSC/4)
configurando este registro podemos hacer que el microcontrolador lea los pulsos del encoder a una frecuencia diferente a la del oscilador...y de manera independiente a la programacion del micro
esta hoja esta mejor
http://ww1.microchip.com/downloads/en/DeviceDoc/33023a.pdf
aqui hay ejemplos en ensamblador

P.D. Unikfriend los subi aqui por el archivo adjunto de los datos del motor
 

Adjuntos

  • DCServoMotorsT_e.pdf
    1.7 MB · Visitas: 27
Hola Unikfriend
en las copiadoras podras encontrar motores de CD con un encoder acoplado a un eje, ese te puede servir.
Nosotros los conseguimos en las chatarreras muy muy economicos.
has programado los modulos ccp de un microcontrolador?
necesitamos que el micro este capturando los pulsos del encoder y al mismo tiempo enviando pwm y al mismo tiempo este realizando otras tareas...
 
Gracias arturouc,
Corrigeme si me equivoco,
Con el PWM lo van a utilizar para generar un pulso de control y
con el CCP van a recibir la retroalimentacion de la posicion del servo.
:)
 
Hi Arturouc,
no he utilizado esos módulos del Pic,
de hecho prefiero usar otro microcontrolador,
la funcion pwm es común en los microcontroladore
la ccp no tanto pero hay varias que similares,

lo que me preocupa es que esos motores no
son fáciles de conseguir y no quiero quedarme en la teoría,
ya sabes que en teoría todo funciona jijii.

:)
 
Unikfriend
aqui te dejo la simulacion en proteus de un servomotor con encoder....es un principio de lo que estamos buscando....solo tengo 2 dias utilizando el proteus hay cosas que se pueden mejorar
Ver el archivo adjunto 50472
por que prefieres utilizar otro micro?
 
Última edición:
Hola soy nuevo en el foro y les traigo un aporte que talvez les pueda servir. Hice un programa en visual basic 6.0 para controlar un servomotor pero logre ver que no se pueden manejar intervlos con decimales por lo que no serviria para manejar el servomotor les dejo por si les interesa la señal se saca por el pin 2 del puerto paralelo si tienes alguna duda no dudes en comentamerla.



Este es otro que encontre en la web en el cual me base, esta mega recomendado.

http://wiki.webdearde.com/index.php?title=Testeador_de_servo_a_trav%C3%A9s_del_pc
 
Atrás
Arriba