martes, 3 de enero de 2012

Nueva función con grados

A pesar de no tener nada montado todavía hemos decidido hacer el código ya que será una buena base una vez lo tengamos montado para corregir, esperemos que pequeños, errores. Aquí os dejo una función que utilizamos para poder mover el servo a un ángulo deseado siguiendo las especificaciones dadas en esta página web: http://bansky.net/blog/2008/05/control-servos-from-micro-framework/.

Consideramos 0.5ms como 180º y 2.5ms como 0º.

public void MoveServoByAngle(double angle)
        {
            double pulseWidth = 2500 - 11.1111 * angle;
            double pause = 25000 - pulseWidth;

            for (int i = 0; i < 30; i++)
            {
                servoPort.Write(true);
                DelayMicroSecByAngle(pulseWidth);
                servoPort.Write(false);
                DelayMicroSecByAngle(pause);
            }

        }

Próximente colgaré los diseños 3D en ProEngineer que vamos a cortar en madera contrachapada de 3mm para montar el quadropod. Lo que haremos, como no tenemos ni idea de qué tornillos vamos a utilizar y de si será estable o no, será montar una de las cuatro patas para el miércoles que viene dia 11 y así ver como se comporta e intentar utilizar threads para mover ambos servos a la vez.

No hay comentarios:

Publicar un comentario