Al fin me di tiempo de escribir algo...
Control de Servomotores El primer paso, una vez que ya se tiene definido los servomotores va a ser hacer los algoritmos de control de servomotores. Las características del control de servomotores son:
- Manejo de 8 o 24 servoscon un periodo de 20ms y tiempo en alto de 500us a 2500us.
- Control de posicion independiente de cada servo.
- Comunicación por I2C para recibir los datos desde un PIC o la PC.
Como habia previsto se va a usar el protocolo de comunicacion
I2C a alta velocidad (400 Kbps) ya que brinda ventajas para comunicar varios dispositivos en un par de lineas (SDA y SCL) Al tener 24 servomotores (o posiblemente mas) debemos fijar un protocolo para enviar los datos y para este caso lo hare de la sig manera:
[Start][Direccion+W][#Motor 1][Valor de la Posicion 1]...........[#Motor n][Valor de la Posicion n][Stop]
Con lo que para posicionar cada servo, es necesario enviar que servo se va a mover y un valor de posicion el cual estara en un rango de [0;250] Con lo que tendriamos una resolucion de 8us en el rango de [500; 2500]us de tiempo en alto. Por tanto si tengo una amplitud de giro en el servomotor de 180°, entonces con esta resolucion de 250 posiciones tengo una resolucion de 0.72°/posicion, que espero que sea suficiente para posicionar el robot...
Ahora si calculamos cuanto tiempo me tomaria recibir los 24 valores para una posicion tendriamos:
Total de bits= 1[Start]+ 9 [Direccion +ACK]+ 24*(9[#Motor+ACK]+9[Posicion+ACK] )+1[Stop]
Total de bits= 443 bits
Tiempo estimado= 443b/(400Kb/s)= 1107.5us o 1.1075ms
Si el tiempo que hay entre cada actualizacion de los servos es de 2500us y el tiempo de atencion a la interrupcion por I2C va a ser de 1107.5us, lo mas probable es que en algun momento deje de atender a un motor para atender la llegada de datos...
Por lo que para mejorar eso podia buscar una forma de comunicacion mas rapida (serial sincrona??) o repartir el trabajo de un pic en varios es decir, hacer que un PIC controle solamente 8 servos a la vez con lo que tendriamos una reduccion de tiempo a 387.5us lo que seria mas manejable para la actualizacion de datos en el PIC sin que varie mucho los tiempos de los servos...
Aunque aun no es definitivo... vamos a ver como va saliendo.... Ya les subire codigos y demas... a medida que me valla funcionando
![helado :2]](http://www.todopic.com.ar/foros/Smileys/default/cold.gif)
Bueno.... como les dije mi avance es de a pocos... Ojala y les interese... Un abrazo

Nos vemos
