23 sept. 2013

Hackeando el software del EV3 #4

Encender los leds del sensor de color NXT


Llevando la modificación del archivo blocks.xml un poco más allá, John Hanssen, conocido como el desarrolador de NXC/NBC y motor detrás de BricxCC, ha logrado habilitar la opción de encender el led verde y el azul del sensor de color del NXT. Esta función no está disponible en la actual versión del software de LEGO, pero unos pequeños cambios en el archivo blocks.xml mencionado arriba, además de la inclusión de unos archivos algo menos triviales en los subdirectorios en la misma ubicación permiten modificar el software para poder seguir usando esta función si programamos el NXT con X3.

Puedes descargar un paquete completo para incluir esta nueva funcionalidad del siguiente [enlace]

Ten en cuenta que si abres el archivo comprimido en la carpeta de destino de tu instalación de X3, sobreescribirá el archivo blocks.xml por lo que perderás cualquir mocificación que hayas hecho en él.

Asimismo el paquete sólo incluye la versión inglesa de los textos que deben aparecer en el bloque. Para verlo correctamente en español habría que modificar otro archivo blocks.xml que se encuentra en C:\Archivos de programa (x86)\LEGO Software\LEGO MINDSTORMS EV3 Home Edition\Resources\Blocks\LEGO\strings\es

El texto que falta es el siguiente:

<Block Mode="MeasureReflectedLightGreen" DisplayName="Intensidad de la luz reflejada (verde)"> 
        <Description><![CDATA[El modo Medida: Intensidad de la luz reflejada (verde) muestra la intensidad de la luz en Valor medido.]]></Description>
</Block> 

<Block Mode="MeasureReflectedLightBlue" DisplayName="Intensidad de la luz reflejada (azul)">
        <Description><![CDATA[El modo Medida: Intensidad de la luz reflejada (azul) muestra la intensidad de la luz en Valor medido.]]></Description> 
</Block>


El led rojo se enciende cuando seleccionamos la opción "Intensidad de la luz reflejada" (sin indicación de color) de modo que también podríamos modificar esa entrada para que deje claro que se encenderá el led rojo. Para ello, modifica el texto:


<Block Mode="MeasureReflectedLight" DisplayName="Intensidad de la luz reflejada">
        <Description><![CDATA[El modo Medida: Intensidad de la luz reflejada muestra la intensidad de la luz en Valor medido.]]>
</Description>


para que quede de la siguiente forma:

<Block Mode="MeasureReflectedLight" DisplayName="Intensidad de la luz reflejada (rojo)">
        <Description><![CDATA[El modo Medida: Intensidad de la luz reflejada (rojo) muestra la intensidad de la luz en Valor medido.]]>
</Description>


No hay comentarios: