Conociendo ya como funciona el algoritmo de detección, vamos a explicar ahora el de clasificación
de residuos, definido en el Behavior ProcessData().
Hay que tener en cuenta que, para poder llevar a
cabo la clasificación, necesitamos partir de un ArrayList de objetos de la clase Container que se han
creado durante la fase de detección. En él tendremos almacenados la posición de los 4 contenedores (tanto
la distancia como el ángulo) y su color.
Behavior
ProcessData()
En la entrada titulada “Software básico del robot (parte III)” mencionamos que este
comportamiento todavía no se estaba usando, pero lo habíamos creado pensando
que en el futuro lo necesitaríamos. El código de comando que lleva asociado es
el “c2 c1 c0 = 100”.
El funcionamiento de este algoritmo es mucho más
sencillo que el de detección de contenedores:
- El sensor de color que apunta a las pelotas comprueba de qué color es la que tiene preparada para disparar.
- Accedemos al ArrayList de contenedores y buscamos en qué posición respecto al polo Norte magnético se encuentra el contenedor del mismo color que esta pelota.
- El robot gira hasta que la brújula indica que ha llegado a la posición del contenedor.
- Se dispara la pelota.
- Comprueba con su sensor de color si todavía le queda en el cargador alguna pelota roja, amarilla, azul o verde. En caso de que queden, la variable “quedanBolas” será “true” y volveremos al punto 1. Si ya se han clasificado todos los residuos (“quedanBolas=false”), se termina el proceso de clasificación y el robot se para.

En la aplicación Android, este algoritmo se inicia
accionando el botón de “Procesar” en la página de “Comandos”.
No hay comentarios:
Publicar un comentario