Este post es gracias a proyectos desarrollados por A Posteriori
Sensor táctil ("Liberado" no es lo que parece)
Considere los siguientes tres programas en EV3-G...
Sin presionar el sensor táctil, los tres programas reproducirán "Game over" continuamente. Si se mantiene presionado el botón, los tres programas reproducirán “Fantástico” continuamente. Puede parecer que los tres se comportan de manera idéntica, ¡pero no es así!
El tercer programa utiliza el modo "Medir". Si el botón se presiona y suelta rápidamente durante la reproducción de "Game over", no detectará la presión del botón y continuará reproduciendo "Game over". Esto era de esperar, ya que no se presionó el botón en el momento en que se lee . Dado que la presión del botón ocurre solo durante la reproducción, y el estado es "Liberado" cuando el programa vuelve y verifica el estado, "Fantástico" no se activa.
Los primeros dos programas usan "Comparar" y el comportamiento es diferente. Al usar "Comparar", hay tres estados posibles para el sensor táctil (0: liberado, 1: presionado, 2: golpeado) y son mutuamente excluyentes. Un sensor que fue "Golpeado" estará en el estado 2. Si verifica si está "Liberado" (estado 0), devolverá Falso. Como resultado, si se presionó el botón en cualquier momento entre dos lecturas, el programa reproducirá "Fantástico".
En resumen…
En modo Comparar
- Hay 3 estados posibles, Liberado, Presionado o Golpeado, y son mutuamente excluyentes
- Un sensor golpeado devolverá Falso cuando se compare con Liberado
En modo Medir
- Solo hay 2 estados posibles, Presionado o No Presionado
- Un sensor golpeado devolverá No presionado
Este comportamiento difiere de la página de ayuda oficial de Lego y puede ser un error potencial en el software EV3-G (probado con EV3-G 1.3.2 y firmware 1.09E). Si encuentra un comportamiento diferente, ¡háganoslo saber!
Sensores de color (interferencia mutua)
Cuando se utilizan dos sensores muy cerca (p. ej., para un seguidor de línea de dos sensores), pueden interferir entre sí. En los siguientes gráficos, los dos sensores están colocados aproximadamente a 32 mm uno del otro y a 20 mm del suelo. Las líneas roja, verde y azul representan la lectura sin procesar de rojo, verde y azul, respectivamente. Puede ver que hay errores frecuentes y significativos en el segundo sensor, que duran alrededor de 300 ms cada vez. En una observación cercana, se pueden ver errores similares en el primer sensor, pero es de una magnitud mucho menor.
Las posibles soluciones incluyen:
- Coloque los sensores más separados o más cerca del suelo.
- Proteja los sensores entre sí.
- Pruebe diferentes sensores. Algunos parecen ser más susceptibles a las interferencias que otros.
Sensores de color (interferencia de la iluminación de la habitación)
Los sensores de color EV3 realizan una calibración leyendo primero la intensidad de la luz con el LED apagado, antes de volver a leer con el LED encendido. Esto le permite cancelar el efecto de la iluminación de la habitación, haciéndolo bastante resistente a las condiciones de iluminación desiguales o cambiantes de la habitación. Sin embargo, no puede manejar condiciones de iluminación que cambian muy rápidamente.
Los LED regulables generalmente logran la atenuación encendiendo y apagando rápidamente el LED. Estos pueden ocurrir demasiado rápido para que nuestros ojos los observen (... simplemente vemos que las luces se atenúan), pero las luces que pulsan rápidamente pueden generar mucho ruido para los sensores de color EV3. Si su habitación está equipada con tales luces, asegúrese de encenderlas o apagarlas por completo.
Las pantallas LED también se encienden y apagan, por lo que si está organizando una competencia de robots, mantenga el campo de juego alejado de cualquier pantalla LED grande.
Sensores de color (posiciones de LED)
Cuando está en modo color o RGB, el sensor de color EV3 encenderá sus tres LED (rojo, verde y azul). Sin embargo, los tres LED están ligeramente desplazados entre sí y esto hace que la luz de salida también se desplace. Si observa de cerca, verá que la luz cerca del centro es aproximadamente blanca, la luz más alejada de los orificios de montaje es azul y la luz más cercana a los orificios de montaje es verde.
Esto hace que las lecturas de RGB estén sesgadas si las tres luces LED no están completamente en un solo color homogéneo. Para dar un ejemplo, si la parte azul y roja de la luz LED brillan sobre una línea negra, mientras que la parte verde está sobre el fondo blanco, ¡los valores RGB sugerirán que se ve un color verde!
Desafortunadamente, no conocemos formas fáciles de superar esto, pero el problema se puede minimizar asegurándose de que cualquier transición entre colores ocurra en una dirección de izquierda a derecha. Esto asegurará que el color en tránsito cruce los tres LED al mismo tiempo.
Recalibrar la deriva del giroscopio
El giroscopio EV3 se calibra solo al encenderse, pero esta calibración puede ser incorrecta si el giroscopio se está moviendo durante este tiempo. Para volver a calibrar la deriva del giroscopio, hay 3 formas...
- Desenchufe y vuelva a enchufar el giroscopio
- Cambiar el modo (por ejemplo, de velocidad a ángulo) (solo funciona para modelos que terminan en N2 o N3)
- Restablecer el puerto (funciona con modelos que terminan en N4 a N8)
(Créditos a los hermanos Seshan por la información sobre el método de recalibración para diferentes números de modelo)
El primero y el segundo son triviales. Para hacer el tercero en EV3DEV, deberá cambiar el modo de puerto (... NO el modo de sensor).
..pero después de hacer el reinicio, pasarán unos segundos antes de que el giroscopio esté disponible. A veces, el giroscopio no estará disponible y deberá reiniciarlo nuevamente. Para hacerlo más fácil, puede usar la siguiente función para restablecer el puerto y volver a intentarlo automáticamente hasta que se detecte el giroscopio.
Nota: Siempre que descargues un programa al robot que usa Gyro, éste debe estar en un lugar de superficie firme mientras dure la descarga.
La calibración está dentro del propio sensor y permanecerá hasta que el puerto se reinicie nuevamente o el giroscopio se apague. Esto significa que puede ejecutar el programa anterior de forma independiente, y todos los programas que se ejecuten después verán un giroscopio calibrado correctamente.