"La ciencia es una empresa cooperativa que se transmite de generación en generación. Es una antorcha que se pasa de profesores a alumnos y viceversa. Una comunidad de mentes capaces de regresar hasta la antigüedad y viajar más allá de las estrellas. ¡Nuestro viaje solo acaba de empezar!". (Neil deGrasse Tyson)


"El trabajo en equipo convierte los sueños en realidades". (Scott Kelly)

miércoles, 6 de junio de 2018

Sensor de giro

USS Curiosity - Fecha Estelar 2018.606

Para acabar con el problema de que el robot vaya torciéndose poco a poco en vez de ir recto, hemos creado un programa con el girosensor. Antes de nada, este necesita calibrarse, por tanto hemos hecho otro programa que lo calibre.


Una vez calibrado, podemos empezar a usar el programa del girosensor. Este está compuesto por un bucle de infinitas repeticiones dentro del cual lo primero que se hace es medir el ángulo que tiene el girosensor y multiplica el valor que le da por -1. Esto es para que cuando el ángulo que lee el girosensor sea negativo, se convierta en el mismo número pero en positivo y viceversa. Gracias a eso se consigue que el robot vaya recto sin torcerse, aunque para que avance usamos el último bloque, que es uno de mover tanque, en él metemos el resultado que le ha dado la multiplicación y avanza el número de grados necesario.


Tras acabar este programa y verificar que funciona correctamente, empezamos a construir y programar una corredera, pero no una corredera normal de las horizontales, ¡una corredera vertical! Queríamos lograr que con esa cremallera el robot cogiera un objeto que tiene un loop y está en lo alto de una torre puesta en la esquina noreste de la mesa del desafío Hydro Dynamics. Para ello hemos creado un programa que lo primero que hace es avanzar usando el girosensor:


Al comienzo de ese programa hay un bucle dentro del cual está lo del girosensor. Este bucle se repite durante 6 segundos. Esto es porque el siguiente bucle hace lo mismo que este pero en vez de ir por segundos lo hace hasta detectar blanco, por lo que, si no ponemos el primer bucle, teniendo en cuenta que la base del tapete es blanca, detectaría el blanco de la base y no el blanco de la línea que queremos detectar. Una vez que detecta la primera línea blanca los motores se paran. Tras esto, el robot avanza 0,5 rotaciones por el mismo motivo de antes.


Tras detectar la segunda línea blanca y pararse, gira hacia la izquierda y luego avanza 2,5 rotaciones para ir hacia la torre, pero si fuera todo recto se comería las vallas, con lo cual vuelve a girar pero esta vez hacia la derecha, avanza hasta que llega a la torre (que son otras 2,5 rotaciones) y una vez ahí gira dando la vuelta ya que, si no gira, el brazo se queda pegado a la otra pared, con lo cual no puede hacer la prueba, así que gira y después retrocede 1 rotación para alinearse con la pared con lo cual se queda en paralelo a la prueba. 


Una vez que esta en paralelo a la prueba, puede mover el motor mediano y subir la corredera, con lo cual coge el loop. Una vez lo ha cogido, vuelve a dar la vuelta y gira un poco para ponerse recto del todo y así no llevarse por delante las vallas. Tras esto, avanza usando multiprogramación, ya que mientras avanza baja el brazo con el motor mediano y gira para esquivar el grifo. Después esquiva la casa en llamas y por último se queda más o menos alineado con la línea blanca. Al final gira un poco y avanza 10 rotaciones pero, como se quedaría fuera de la base, gira un poco más y se queda dentro de la base. 

Todo lo explicado se puede ver en el siguiente vídeo y en este enlace podéis descargaros el programa para hacer vuestras pruebas y modificaciones, esperamos que os guste:


Marina Nicolao