Autor Tema: Proyecto: Placa controladora de 28 servos para robot humanoide  (Leído 49150 veces)

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

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #30 en: 20 de Febrero de 2008, 12:27:40 »
Hola:

Excelente trabajo :-/, voy a montar la placa para comprobar su funcionamiento, gracias por compartirlo, me ha caido muy bien, pues tengo unos 14 servos esperando a ser utilizados en una arañita  :P  :D

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #31 en: 20 de Febrero de 2008, 12:50:22 »
Hola:

Hay algo que no me ha quedado claro :oops: y es el funcionamiento de P1 y P2:

- P1 y P2. Estos 2 bytes son la posición a la que debe ir el servo (0 a 360), P1 corresponde al byte de menos peso y P2 al de más. ejemplo: 68 01 = 360 =+90º .

Si lo pudieras explicar un poquito más te lo agradecería.


Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #32 en: 18 de Marzo de 2008, 05:41:33 »
Perdón por responder tan tarde.

Es tal y como dices LordLafebre.

Saludos
Saludos desde Almería, España

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #33 en: 18 de Marzo de 2008, 11:10:25 »
Hola:

Pues justamente lo que está citado en mi post es lo que no me queda claro  :P

Que valores mínimos y máximos se deben utilizar en P1 y P2, y como es que puedo variarlos para mover los servos?, está interesante la placa y quiero construirla, pero aún no me ha quedado claro el tema del funcionamiento de las variables P1 y P2  :(

Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #34 en: 18 de Marzo de 2008, 15:04:22 »
Perdón de nuevo, no había visto que era un copy/paste de mi explicación.

Los 180º de movimiento del servo están divididos en 360 pasos de 1/2 grado cada uno. Por lo tanto pasamos a hexadecimal la posición +90º=360=0x168. Enviamos primero el byte de menos peso y luego el de más peso.

Espero haberme explicado bien esta vez.

He colgado la simulación y el diseño de la placa en Proteus.

Saludos
« Última modificación: 18 de Marzo de 2008, 15:08:54 por Manofwar »
Saludos desde Almería, España

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #35 en: 18 de Marzo de 2008, 16:25:06 »
Hola:

pues ya está claro, veamos, si quiero ubicar a un servo en la mitad, sería 0º=180=0XB4

los valores para P1 y P2 serían:

P1=0XB4

P2=0X00

Estoy en lo correcto?

Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #36 en: 18 de Marzo de 2008, 17:14:16 »
Correcto LordLafebre.

Si usas la simulación que he colgado y algún programa para enviar datos al puerto serie (creo que ccs traía uno) podrás probarlo.

Saludos
Saludos desde Almería, España

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #37 en: 19 de Marzo de 2008, 10:32:34 »
Hola:

Gracias por la explicación, ahora si ya lo tengo claro, ahora voy a hacer lo que me recomiendas, probaré primero en la simulación y me pasaré luego a probar en los servos, tengo un total de 21 servos para probarlos.  :P

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #38 en: 19 de Marzo de 2008, 11:21:53 »
Hola:

Pues no puedo hacerlos mover  :(

Para posicional al servo 1 a 0º que es el que está conectado a RB0, como tengo que escribir los datos?  Estoy probando con el Terminal de Protón, pero no lo he podido hace que se mueva  :P

Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #39 en: 20 de Marzo de 2008, 21:01:53 »
He estado mirando como funciona (demasiado tiempo sin mirarlo) y hay que conectar un cable null-modem entre el com1 y el com2 del pc. Ambos deben estar configurados a 115200.

Utilicé en su día esta forma ya que el VirtualTerminal de Isis no es muy flexible.

Saludos

Saludos desde Almería, España

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #40 en: 21 de Marzo de 2008, 02:05:40 »
hay que conectar un cable null-modem entre el com1 y el com2 del pc. Ambos deben estar configurados a 115200.


Hola:

Solo tengo un com, probaré la placa en la realidad, creo que será mejor, pero como puedo enviar los comandos desde una aplicación en VB por ejemplo?  osea, cuál sería la forma de enviarlos, por ejemplo, veo que los datos se deben transmitir a 115200, imagino que a 8 bits, porque leí que al inicio utilizabas solo 7 bits, tengo que enviar los datos, primero el servo, luego la velocidad, luego P1 y luego P2, envío todo al mismo tiempo y nada más?

Estaría bien enviar estos valores?

MSComm1.Output = Chr$(1) 'servo
MSComm1.Output = Chr$(1) ' velocidad
MSComm1.Output = Chr$(B4) 'P1
MSComm1.Output = Chr$(0) 'P2

Siento tanta preguntadera, pero no se como se deben enviar los valores  :?

Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #41 en: 26 de Marzo de 2008, 20:36:43 »
Hola LordLaFebre:

Siento no haber respondido antes.

Creo que sí funcionará tal como dices. La comunicación es 8N1

¿Es para un bot arácnido?

Saludos
Saludos desde Almería, España

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #42 en: 27 de Marzo de 2008, 01:08:59 »
Hola:

Pues sí, es para una arañita que quiero hacer desde hace rato y bien me sirve tu controladora para los 14 servos que quiero ponerle, no he podido con la simulación, no me funcionó, voy a poner una imagn de como envié los datos, lo probé con el terminal de mikrobasic:



De ninguna de las dos formas se mueve el servo, será que me puedes poner un pantallazo del termial que usas para ver como envías los valores para mover al servo?

Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #43 en: 27 de Marzo de 2008, 05:07:59 »
Algo que se me olvidó decirte :(, RTS activado.

Saludos
Saludos desde Almería, España

Desconectado gu1llermo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 217
Re: Proyecto: Placa controladora de 28 servos para robot humanoide
« Respuesta #44 en: 27 de Marzo de 2008, 10:02:32 »
Oye! Felicidades Manofwar, no sabía de la existencia de éste post, no e descargado el código pero por lo poco que he ví todo lo hicistes en assembler, bueno no sé si vistes el que hice que está en la sección de lenguaje C, todo lo hice en C utilizando el compilador del CCS y para el pic18, el problema del C es que te genera mucho código, como bien has dicho en un post anterior, bueno ya lo tenemos tanto en assembler como en C  :mrgreen:

Que precisión has logrado, 0,5º yo lo más que podía lograr era 2º, actualmente lo tengo en 2,5º, lo que pasa es que la rutina de interrupción generada por el CCS se tarda 6,166667us y eso que estamos hablando de 83,33ns cada ciclo de reloj  :? la única forma de lograr disminuir es como has hecho, todo en assembler, pero absolutamente todo. 8)

Si lo haces para el pic18 vas a tener precisión microscópica  :shock: :mrgreen:

Saludos y felicitaciones de nuevo.
« Última modificación: 27 de Marzo de 2008, 10:05:16 por gu1llermo »