Lego Mindstorms. Circulación sobre unha mesa.

¿Como facemos que un robot se manteña sobre unha superficie sen caer?

A solución que adoptamos en primeiro lugar foi a de poñer un sensor de luz frontal, para que cando o robot se achegue ao abismo, detecte unha diminución de luminosidade e reaccione parando e dando a volta. O problema é que se a circulación é lateral co límite da mesa o robot cae antes de detectar o final da superficie. Para resolver isto utilizamos dous sensores, un a cada lado, alineados coas cadeas de rodadura do robot.

Como non dispoñemos de dous sensores de luz montamos un sensor de luz e outro de cor actuando como sensor de luz. Ao utilizar dous sensores distintos apareceu o problema de que a súa sensibilidade era tamén distinta. Detectamos os datos de funcionamento de cada un deles por separado coa aplicación Data Logging. Na imaxe que se ve a continuación vemos como actúa cada un deles. O sensor de luz (gráfica escura) detecta un máximo de 70% e un mínimo de 17%. No programa indicamos o límite de actuación a 40%. O sensor de cor (gráfica clara) detecta un máximo de 48% e un mínimo de 6%. No programa indicamos o límite de actuación a 20%.

Graficas dos sensores de luz

No programa utilizamos como elementos máis descatados a función lóxica “O” e unha bifurcación determinada polo detector de luz. Na imaxe pódese ver unha captura do programa.

Programa circulación sobre unha mesa

Por último podemos ver un vídeo do funcionamento do robot e observar que hai total seguridade de que non caerá da mesa. Hai que destacar que para evitar os bucles que se podían producir nas esquinas programouse xiros distintos segundo o sensor.

Etiquetado con: , ,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*