Autor Tema: Que opinan de este esquema para controladora de servos  (Leído 4217 veces)

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

Desconectado villamany

  • PIC12
  • **
  • Mensajes: 63
Que opinan de este esquema para controladora de servos
« en: 06 de Mayo de 2010, 09:54:57 »
Hola a todos, soy villamany de España. Estoy trabajando en una controladoras de servos mediante PIC16F628A.
La parte del firmware la tengo casi terminada y ahora estoy con el tema del hadware. Me gustaria que me dieran vuestra opinion sobre el esquema que he realizado.
Este dispositivo permitiria controlar via linea de comandos desde un PC hasta 8 servos, 3 reles, 1 zumbador y una entrada digital.

Adjunto el archivo en formato PNG del esquema.

Saludos y gracias a todos por este fantastico foro.

Editado: Gracias por la ayuda. Finalmente he realizado algunas modificaciones en el esquema y ya lo tengo funcionando en la protoboard. Dejo por aqui una idea del funcionamiento de la controladora y el esquema final. Si alguien esta interesado que me envie un privado y le paso el codigo. Saludos....

Código: [Seleccionar]

// Servo control v1.0 (Abril 2010) por villamany. Contacto: villamany@msn.com

Control de 8 servomotores para PIC 16F628A.
CARACTERISTICAS:

Este dispositivo, mediante linea de comandos permite el control independiente de
   8 servo-motores (los utilizados en RC), 3 reles de salida, un zumbador
   (frecuencia seleccionable) y una entrada todo-nada.
  
La comunicacion se lleva a cabo mediante Puerto Serie (UART niveles TTL 5v) a
   9600bps con 8 bits de datos 1 bit de stop y sin control de flujo ni paridad.

LISTADO DE COMANDOS:
Los comandos tienen la sintaxis CMD ARG1 ARG2, es decir, un comando y 2
   argumentos opcionales separados entre si por un espacio.
  
   CMD siempre es un byte, mientras ARG1 y ARG2 pueden variar entre 1 y 5 bytes,
dependiendo del comando utilizado.

   Los comandos deben enviarse de uno en uno seguidos de la tecla enter, tras
ejecutarse el comando, el dispositivo enviara una respuesta para indicar info
adicional sobre la ejecucion que tuvo lugar seguido de una nueva linea de texto
con "rdy>" indicando que el PIC esta preparado para recibir un nuevo comando.

Listado de comandos:
------------------
R              Resetea el hadware y devuelve la version del firmware y la
                  posicion por defecto de los 8 servos.

p              Lee el estado de la entrada todo-nada (interno y/o externo) y
                  devuelve "1" si esta cerrada "0" en caso contrario.

x              Devuelve "1" si Rele1 esta activado y "0" en caso contrario.
x 1            Activa Rele1 y devuelve "1" (rele activado).
x 0            Desactiva Rele1 y devuelve "0" (rele desactivado).
x t            Invierte el estado de Rele1 y devuelve "1" si ha sido activado o
                  "0" si ha sido desactivado.

y              Devuelve "1" si Rele2 esta activado y "0" en caso contrario.
y 1            Activa Rele2 y devuelve "1" (rele activado).
y 0            Desactiva Rele2 y devuelve "0" (rele desactivado).
y t            Invierte el estado de Rele2 y devuelve "1" si ha sido activado o
                  "0" si ha sido desactivado.

z              Devuelve "1" si Rele3 esta activado y "0" en caso contrario.
z 1            Activa Rele3 y devuelve "1" (rele activado).
z 0            Desactiva Rele3 y devuelve "0" (rele desactivado).
z t            Invierte el estado de Rele3 y devuelve "1" si ha sido activado o
                  "0" si ha sido desactivado.

b              Devuelve la frecuencia en Hz a la que esta sonando el Zumbador.
b [fffff]      Activa el Buzzer a la frecuencia indicada y devuelve la
                  frecuencia real (frecuencia mas proxima que puede generar el
                  oscilador).

[s]            Obtener posicion de servo. Devuelve el valor del dutty cicle
                  aplicado a un servo.
[s] [tttt]     Posicionar servo. Posiciona un servo aplicando el dutty cicle
                  indicado y devuelve el valor aplicado.
[s] + [tttt]   Incrementar posicion relativa de servo. Incrementa en el numero
                  indicado el dutty cicle aplicado a un servo y devuelve el
                  valor aplicado al mismo.
[s] - [tttt]   Decrementar posicion de servo. Decrementa en el numero
                  indicado el dutty cicle aplicado a un servo y devuelve el
                  valor aplicado al mismo.
[s] h          Posicionar servo en su posicion por defecto (valor home definible
                  por otro comando), devuelve el valor del dutty cicle aplicado.
[s] U [tttt]   Definir posion maxima admisible para un servo (dutty cicle
                  maximo). Devuelve el valor introducido.
[s] L [tttt]   Definir posicion minima admisible para un servo (dutty cicle
                  minimo). Devuelve el valor introducido.
[s] H [tttt]   Definir posicion por defecto para un servo (tras reset y comando
                  [s] h). Devuelve valor introducido.


[fffff]  :  Indica la frecuencia de funcionamiento del buzzer en Hz. Los valores
               posibles son los enteros comprendidos entre 250 y 62500. El valor
               0 tambien es valido e indica buzzer desactivado.
                  
[s]      :  Indica el servo al que hace referencia el comando. Los valores
               posibles son 1,2,3,4,5,6,7 u 8.
              
[tttt]   : Indica el valor del dutty cicle en microsegundos aplicado a un servo
               para posicionarlo. Los valores posibles son los enteros
               comprendidos entre 200 y 2500.
               Cualquier intento de posicionar un servo por encima de su valor
               maximo admisible (comando[s] U [tttt]) dara como resultado el
               posicionado del servo a su valor maximo admisible.
               Cualquier intento de posicionar un servo por debajo de su valor
               minimo admisible (comando [s] L [tttt]) dara como resultado el
               posicionado del servo a su valor minimo admisible.
*/

/*Atencion: A la hora de reprogramar el PIC por ICSP, es recomendable
   desconectar la alimentacion de la placa para evitar posibles errores de
   programacion y/o movimientos involuntarios de servos y reles.*/
« Última modificación: 09 de Mayo de 2010, 11:27:55 por villamany »

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Que opinan de este esquema para controladora de servos
« Respuesta #1 en: 06 de Mayo de 2010, 10:33:32 »
Hola, la resolución de la imagen es muy baja.

Desconectado villamany

  • PIC12
  • **
  • Mensajes: 63
Re: Que opinan de este esquema para controladora de servos
« Respuesta #2 en: 06 de Mayo de 2010, 10:45:35 »
--
« Última modificación: 06 de Mayo de 2010, 16:03:45 por villamany »

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Que opinan de este esquema para controladora de servos
« Respuesta #3 en: 06 de Mayo de 2010, 11:22:42 »
la he adjuntado como archivo. gracias

Opino que no lo entiendo  :oops:

Hay unos conectores que dicen SL3, SL6... hasta SL12 pero parecen estar conectados todos a RA2. Sí es así, todos los servos (si es que esos son los conectores para servos) harían el mismo movimiento.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado villamany

  • PIC12
  • **
  • Mensajes: 63
Re: Que opinan de este esquema para controladora de servos
« Respuesta #4 en: 06 de Mayo de 2010, 16:05:23 »
Perdon, ha sido un error al copiar y pegar con las prisas para ir a trabajar. Ya esta corregido en el archivo adjunto del primer post.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Que opinan de este esquema para controladora de servos
« Respuesta #5 en: 06 de Mayo de 2010, 18:00:02 »
Tené en cuenta que sólo podrás usar RA6 y RA7 para tus servos si es que el PIC lo utilizar con oscilador interno.

Si usás los servos típico de aeromodelismo (y supongo que de otro tipo de hobby también) tené en cuenta que necesitan un "refresco" de la información cada 20mS aproximadamente.... Vas a encontrar mucha info de radiocontrol en www.e-radiocontrol.com.ar
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado villamany

  • PIC12
  • **
  • Mensajes: 63
Re: Que opinan de este esquema para controladora de servos
« Respuesta #6 en: 06 de Mayo de 2010, 18:49:47 »
gracias, efectivamente, uso el oscilador interno del pic y los servos los actualizo cada 20 ms. He tratado de poner resistencias limitadoras en los conectores ante posibles errores en la conexion, añadirias o quitarias alguna?.
Ademas debido al consumo de los servos, quiero evitar al utilizar el ICSP que los servos se alimenten del programador, ya que creo que el consumo seria excesivo, crees que es buena solucion el diodo que hay en la patilla VDD del pic?.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Que opinan de este esquema para controladora de servos
« Respuesta #7 en: 06 de Mayo de 2010, 19:54:47 »
Lo del diodo a VCC del PIC me parece que debería funcionar bien. Respecto a las resistencias no sabría decirte, me imagino que debería funcionar porque sobre la línea de Data no hay demasiado consumo. Yo había armado un decodificador de RC también con un 628 pero no le puse ninguna resistencia entre el PIC y el servo, no se me quemó el PIC pero creo que es una buena medida colocar la resistencia.

¿Qué servos pensás usar? Yo tengo unos E-Sky (sé que no son muy buenos) en un aeromodelo de Depron y los cables no son como tenés en tu conector. El del medio es VCC y obviamente las puntas corresponden a GND y Data. Supongo que son así porque si te equivocas al colocarlo, siempre el cable de VCC queda conectado justamente a VCC. Yo corregiría eso en el diseño, si es que tus servos son también así.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado villamany

  • PIC12
  • **
  • Mensajes: 63
Re: Que opinan de este esquema para controladora de servos
« Respuesta #8 en: 07 de Mayo de 2010, 09:16:42 »
cierto, los conectores tienen el orden de los hilos mal, estan cambiados, tambien estoy haciendo las primeras pruebas con los e-sky digitales. Acabo de montar el circuito en la protoboard. El diodo que hay en el conector UART va polarizado al contrario acabo de verlo, ya que lo que pretendo es que el conector sirva para alimentar un dispositivo y no para alimentar al pic.
Respecto a las resistencias en la linea TX/RX las he puesto de 1K porque es lo que tenia a mano y no dan problemas.
Ademas no me funciona el pulsador de entrada (siempre da nivel logico 1), a menos que puentee el diodo led y no se muy bien porque, quizas por la caida de ension que hay en el diodo??
Y el buzzer suena muy debil asi conectado, mientras que si lo conecto directamente al pic saltandome el ULN2803 suena bien, esto tampoco lo entiendo??.

A ver quien puede recomendarme algun regulador de 5 voltios, he puesto un 7805, segun datasheet de hasta 1 A y he medido el consumo de un servo cuando va forzado y es de unos 400mA cada, asi que necesitaria un regulador de unos 5A para ir sobrado.

Gracias...

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Que opinan de este esquema para controladora de servos
« Respuesta #9 en: 07 de Mayo de 2010, 11:14:31 »
Ademas no me funciona el pulsador de entrada (siempre da nivel logico 1), a menos que puentee el diodo led y no se muy bien porque, quizas por la caida de ension que hay en el diodo??

Sengún el Datasheet del 16F628A, la VIL máxima (máxima tensión de entrada para interpretarlo como "0") sobre el pin RA4 es de 0.2VDD -si alimentás con 5V sería 1V de entrada-. En tu caso al estar el Led conectado de esa manera, hace que el nivel sobre dicho pin sea igual a la tensión del LED (alrededor de 1.5V) por lo cual nunca te interpreta nivel bajo.

fijate conectarlo como está en el adjunto este....

De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado villamany

  • PIC12
  • **
  • Mensajes: 63
Re: Que opinan de este esquema para controladora de servos
« Respuesta #10 en: 09 de Mayo de 2010, 11:31:50 »
Editado el primer post con el circuito final. Muchas gracias...