SENSOR MAGNETICO

(EFECTO HALL)


Sensor Magnetico para LEGO Mindstorm NXT

down-verde-flecha

Vamos a construir aquí un sensor peculiar, más que nada por los usos que le podemos dar, ya que tiene una peculiaridad que no tienen los otros. Este sensor magnético lo que puede hacer es detectar imanes. Ese que tienes pegado en la nevera de cuando fuiste a Amsterdam nos vale.


En Un Smulador RFID tienes una aplicación de este sensor que incluye un video.


Y lo peculiar es que podrá detectarlo directamente o escondido bajo una cartulina. El campo magnético la puede atravesar sin problemas, eso sí, a muy corta distancia. Esto puede abrirnos la posibilidad de diseñar algunos juegos.


Otra cuestión a tener en cuenta es que para que funcione, debemos alimentarlo. No es un sensor "Pasivo" como un interruptor. Necesitaremos conectar el cable verde, que nos aportará 4,3 V. Por eso el sensor tiene 3 patitas, para el cable blanco, el negro y el verde.


Este será el primer sensor "Activo" de nuestra colección.


DESCRIPCION


Para este montaje necesitaremos un sensor Hall de "Doble estado". La verdad es que no se si se compran pidiendolos así, de doble estado, pero es lo que tengo disponible. Con esto hago referencia al comportamiento del sensor algo particular, al menos el mío. Y es que detecta de forma alternante.


Detecta el imán primero por una cara y luego por la otra. Y así sucesivamente. Esto me dificultaba algo la programación.


La forma de solucionar este problema es poner el sensor perpendicular al imán, de forma que cuando lo pasamos por encima de lado a lado, detecta siempre. Lo que estamos haciendo es que ambos lados del detector encaren al imán (a 90º), y no sólo uno de ellos.


Existen también de los otros, de los que sólo tienen una cara sensible, pero creo que son más difíciles de conseguir. Según lo que tengas, 1 o 2 caras sensibles, tendrás que adaptar el montaje y la programación. Aquí nos centraremos en el de Doble estado.


MATERIAL


Cable de conexión al NXT. Usaremos aquí uno prefabricado. Puedes ver cómo se hace en Conectores.

Cables de conexión.

Un sensor Hall de "doble estado".


Conector prefabricado para LEGO Mindstorm NXT c1578

MONTAJE


Si miras el sensor de cara, por la parte que lleva escrito el código, las conexiones deben ser de la siguiente forma:


conexiones sensor hall NXT

Aunque lo suyo sería que consultaras la hoja técnica por si tiene alguna modificación. Cable verde de alimentación (4,3 V) a la izquierda, negro (tierra o negativo) al pin central y blanco (positivo) al del extremo de la derecha.


Sensor Magnetico para LEGO Mindstorm NXT c1577

Y la verdad es que ya no hay nada más. Se puede conectar directamente al NXT sin necesidad de placa. La conexión, como siempre, al Puerto 1 de sensor.


Foto Sensor Magnetico conectado a LEGO Mindstorm NXT c1581

Quizás la máxima dificultad que te puedas encontrar sea la de conectar el sensor a los cables. Si no tienes opción de soldar un conector, hay algunas alternativas como usar pinzas, o doblar las patas del sensor hacia los lados y poner cinta aislante, o recubrirlo con tubo termoretráctil...


Esto último (ver foto) es un tubito negro que al calentarlo se encoge y aisla el cable de los de al lado. A una mala, lo más sencillo sería pinchar el sensor en la placa, conectarlo, y pasar el imán por encima.


Foto conectores para LEGO Mindstorm NXT c1579

En fín, que nosotros usaremos los conectores que tenemos ya prefabricados, con sus soldaduras correspondientes. Soldaremos también el sensor, para que quede más aseado. Con este sistema, podemos ir intercambiandolos fácilmente. Eso sí, ten mucho cuidado en respetar las conexiones de los cables. Cada color con el suyo.


Fot Conector Sensor magnetico LEGO Mindstorm NXT c1580

ENTENDIENDO EL COMPORTAMIENTO DEL SENSOR


Para poder programar algo, y verás que no es evidente, debemos entender primero cómo funciona. Si no, será muy complicado. Recuerda que debes pasar el sensor de forma perpendicular al imán.


O sea, si pones el imán encima de la mesa, las patas del sensor deben apuntar al techo. Pasa el sensor por encima del imán y muy cerca a él, en todas direcciones, adelante y atrás, etc para entender su funcionamiento. Verás que unas veces suena una vez y otras veces 2.


Como podrás comprobar también, el sensor se queda en Estado 1 o 0, y mantiene ese estado. No vuelve a cero como si fuera un interruptor. Esa "diversidad" de comportamientos es lo que complica el programa.


Tumba el sensor y prueba también a pasarlo de forma horizontal al imán para entenderlo bien, es decir, pasando la cara con el código por encima del imán. Verás la diferencia.


Escribe el siguiente programa para leer la información que aporta el sensor. Fíjate bien de dónde sale el cable del icono del sensor: "Logical Number".


Programa leer sensor hall LEGO Mindstorm NXT

Dibujo sensor hall LEGO Mindstorm NXT

PROGRAMA


Ahora que ya hemos visto cómo se comporta el sensor, ya podemos programar algo que tenga sentido. Te invito a intentarlo antes de leerlo y verás que no es inmediato.


Para que el programa funcione en cualquier situación, es decir, cuando partamos de 1 o de 0 indistintamente. La idea del programa es basarlo en que cuando detecta, esté en estado que esté, se produce un cambio. De 1 a cero o de cero a uno. Una o dos veces seguidas, pero siempre hay cambio y al menos un cambio.


¿Cómo podemos detectar cambio?


Pues leemos el estado en el que se encuentra el sensor. A continuación volvemos a leerlo y lo comparamos. Cuando los valores antes y después sean distintos, independientemente del valor inicial en el que estuviéramos, es cuando se habrá producido un cambio. Eso significará que hemos detectado el imán.


Un posible programa sería este. Aunque seguramente habrá otras formas más sencillas, no he podido encontrar otra de momento.


Programa sensor hall LEGO Mindstorm NXT

La configuración de cada icono quedaría así:


1. Touch Sensor. Hay 2 y ambos se configuran igual: Puerto 1 y "Pressed".

2. Variable 1. También hay 2. Las 2 se configuran en "Logic", pero la primera en "Write" y la segunda en "Read". Fijate en la imagen del programa para dejarlo exactamente igual.

3. Bucles. También hay 2. El más amplio, el que engloba todo el programa, se pone en "Forever". El más pequeño, el que está dentro del otro, se pone en "Logic" y luego "True".

4. Operador Logico. Simplemente se selecciona XOr.

5. Sound. Lo tienes a continuación.


Configuracion icono sensor hall LEGO Mindstorm NXT

¿Cómo funciona el comparador lógico XOr?


Este icono va comparando los dos cables verdes que le llegan y saca el resultado por el cable verde de su derecha. El resultado será cierto cuando los dos valores de entrada sean distintos. "A" puede ser cierto o falso, da igual.


Lo importante es que la siguiente medida del sensor, "B" sea el contrario. Y de una vez a la siguiente el valor de A va cambiando (unas veces partimos de 0 y otras de 1), pero la sistemática de "ver" el cambio de un momento al siguiente sigue siendo válida.


USOS


Para programar cualquier otra cosa y que se active con el imán, sustituye el icono de "Sound" por lo que quieras.


De esta forma cuando lo detecte, pasará a ejecutarse todo lo que escribas ahí. Sucederá así cada vez que detecte el imán. Si sólo quieres que se ejecute una vez, quita el bucle más externo, el que lo engloba todo.


Con esto puedes crear juegos curiosos, ya que el imán puede detectar a través de un papel o una cartulina si están suficientemente cerca.


Se podría crear el típico juego de preguntas a un lado y respuestas al otro, escritas o dibujadas sobre un papel. Para contestar, habría que situar el imán encima de la respuesta en la cartulina de un lado. El sensor estaría abajo.


Se puede crear también un reloj de pared en el que las horas son imanes, si evitas que los cables se enreden de alguna forma. O se puede construir un vehículo que vaya encontrando imanes a modo de trofeo por el suelo de la habitación y se pare cuando encuentre uno.


Se puede también con este sensor conocer el estado de una puerta, si está cerrada o abierta. Se puede usar para monitorizar la posición de un tren a lo largo de una vía, o de un ascensor, simplemente contando los contactos positivos que va realizando el sensor en el trayecto.


O que recorra una línea recta, se pare en la posición del imán, realice una acción (descarga) y continue hasta la siguiente posición (carga). Como ves, podría usarse para muchas cosas.


PROPUESTA PARA DOS (O MAS) SENSORES MAGNETICOS


¿Has seguido las explicaciones de los primeros sensores analógicos, los de los interruptores?. Si ha sido así, verás claro cómo seguir. Hay también diferencias. No repetiré todo lo que se dijo allí, claro, pero mucho es también aplicable. Por eso esta explicación será muy por encima.


Para empezar con alguna diferencia, los interruptores no van alimentados, y este sí. De forma que si conectas un segundo sensor magnético al primero, y ambos al mismo puerto del NXT, deberás alimentar ambos con el cable verde.


Ahora se trata de intercalar una resistencia entre cable blanco y negro en un sensor y en el otro no, de forma que podamos distinguirlos.


Lo malo de los sensores magnéticos, al menos el que hemos usado aquí, es que mantienen el estado en el que se han quedado. Esto es importante y luego verás porqué.


Los programas que hemos hecho más arriba no son útiles para el caso de dos sensores. Tenemos que usar el que mide el valor RAW y que ya hemos usado varias veces.


Programa leer raw Sensor magnetico LEGO Midstorm NXT

Otra diferencia es el valor de las resitencias a usar. Allí eran inferiores a 10.000 ohm (10K) y aquí deben ser mucho más bajas, no superiores a 1K. Es cuestión de probar con varias.


MATERIAL


Sumamos al material anterior una resistencia de 100 ohm.

Lo necesario para construir otro sensor magnético.


MONTAJE


Como estoy dispuesto a no repetir lo que se dijo allí, simplemente algunos apuntes. Conecta todos los sensores al cable verde, concretamente el pin izquierdo. Intercala la resistencia en el cable blanco (o el negro) de uno de los dos sensores. El otro irá sin resistencia. De esta forma podremos distinguir el que se activa.


PROBLEMA (MEDIO RESUELTO) DEL MONTAJE


Hemos estado montando todo esto con sensores magnéticos de "doble estado". Esos dos estados posibles son el cero y el uno. Aunque será más claro decir "activado o desactivado". Y el sensor en este sentido tiene memoria y se queda como se le dejó.


Al poner una resistencia podremos distinguir un sensor del otro y así, el valor raw variará de 1023 a 68 (el que tiene la resistencia conectada) o de 1023 a 4 (el que no tiene resistencia), según el sensor que activemos. Lo malo es que el sensor permanecerá en ese estado hasta que se desactive.


Dicho de otra forma: el sensor seguirá aportando su valor de raw hasta que no lo devolvamos al estado de 1023. Podremos pasar de 68 a 4 (o sea, detectará el sensor 2 después del 1), pero si el raw se queda en 4, será insensible al otro sensor, el de 68. El 4 es prácticamente 0, casi el mínimo posible.


Si activamos un sensor y lo ponemos en raw 4 y luego lo desacivamos y lo dejamos de nuevo en 1023, no hay problema en detectar ahora el siguiente (o siguientes) sensor.


Según como pases el imán por encima, puede que se active y desactive en la misma operación, con lo que no habría problema en detectar el siguiente. En fin, todo es cuestión de estudiar bien la aplicación concreta y probar mucho.


Y otra opción es encontrar sensores magnéticos que no tengan "memoria" o "doble estado", sino que simplemente detecten y punto. Con estos no habría problema en montar varios de estos sensores, cada uno con su resistencia para saber cuál es cuál.


up-verde-flecha
Un sensor de luz: fotocélula
Un sensor de temperatura
.