Paso 9: Algoritmo multipunto
Como iba diciendo, los múltiples puntos no pueden ser perfecto usando una tecnología de triangulación de luz con un sensor CCD. Es bastante complejo para trabajar en esta parte... Pero también es muy divertido imaginar muchas soluciones diferentes que tienen los mejores resultados sin necesidad de añadir problemas.
Aquí está Cómo hice mía:
- En primer lugar, almacene todo el valor de la CCD en ficha [] [] para cada LED
- Luego de calcular todos los factores A y B de las funciones afines Y = A * X + B que va de cada LED en el centro de las "zonas negras" que no ve el sensor (en rojo en la imagen).
- Seleccioné la primera función del primer LED (permite llamar al N) y el cruce con la primera función del siguiente LED (N + 1). Este es mi primer punto de referencia. El paso muy importante aquí es eliminar esas dos funciones por k disminuir en tab_position [LED] [k] [Black_zone] (la ficha donde se almacenan los B y A).
- Ahora a comprobar si la primera función de cada siguiente LED (N + LED_LEFT) se va cerca de este punto. Si son, adaptar la posición del punto de referencia y eliminarlos también.
- Cuando me registré todos los LEDs, yo a empezar para el segundo punto. Perfectamente puedo obtener la posición de LEDs o más (como en la segunda imagen con 4 puntos) como detección de zonas negras para un LED no detectar dos puntos en el mismo tiempo. Su sigue siendo algunos mejora trabajo que hacer sobre cómo utilizar esos "zona negro grande" detectar dos puntos. En mi código de elegir ignorarlos como pude.
Este algoritmo no es perfecto, pero me permite utilizar algunos múltiples puntos para juegos, como puedo elegir dónde están los puntos de detección (ver NES remotas en paso de la "Final del programa, vamos a jugar!"). A seguir mejorando y espero algunos consejos de la voluntad de personas y ayudarme así :-)