Desde el vídeo nos redirigen a un pequeño manual de cómo construirlo (link).
Tras tener el montaje hecho, hemos empezado a pensar cómo hacer nuestro SegWay. Finalmente, hemos hecho un bucle de la siguiente forma:
Calibrar();
loop
Leer valor del sensor de luz ();
Calcular PID ();
Mover el robot ();
end loop;Calibrar():
Para calibrar lo que haremos es situar el robot en la posición 0 (a la que volverá
siempre) y tras unos segundos leyendo valores, pulsamos "ENTER" para que
haga la media de esos valores leídos, teniendo el valor medio del sensor de luz
en esa posición.
Leer valor del sensor de luz ():
Leerá el valor actual del sensor de luz
Calcular PID ():
Llamará a tres funciones, calcularProporcional(), calcularDerivada() y calcularIntegral().
La función calcular PID () nos devolverá el valor del pid, que será el siguiente:
pid = Kp * proporcional + Kd * derivada + Ki * integral
De tal forma que cuando queramos probar el segway con uno o varios controladores,
el valor de las constante del controlador que no queramos utilizar tendrá el valor 0.
Mover el robot():
Ajustaremos la velocidad del motor con el valor del PID, de tal forma que cuanto más
alto sea el PID, más velocidad tendrán los motores. Para ello utilizamos el valor
absoluto del PID y lo metemos en "setSpeed".
Por último, para si el pid es positivo o negativo los motores irán hacia delante o atrás.
En las siguientes entradas comentaremos las pruebas que hemos ido haciendo con las distintas combinaciones de los controladores y sus constantes.
No hay comentarios:
Publicar un comentario