- Materiales necesarios
- ¿Qué es un magnetómetro y cómo funciona?
- Cómo funciona el módulo de sensor HMC5883L
- Diagrama de circuito
- Fabricación de PCB para la brújula digital
- Montaje de la PCB
- Programando el Arduino
El cerebro humano está formado por una capa compleja de estructuras que nos ayuda a ser una especie dominante en la tierra. Por ejemplo, la corteza entorrinal en su cerebro puede darle sentido de dirección ayudándole a navegar fácilmente a través de lugares con los que no está familiarizado. Pero a diferencia de nosotros, los robots y los vehículos Ariel no tripulados necesitan algo para obtener este sentido de dirección y poder maniobrar de forma autónoma en nuevos terrenos y paisajes. Los diferentes robots usan diferentes tipos de sensores para lograr esto, pero el que se usa comúnmente es un magnetómetro, que podría informar al robot en qué dirección geográfica se encuentra actualmente. Esto no solo ayudará al robot a detectar la dirección, sino también a tomar turnos en una dirección predefinida y en un ángel.
Dado que el sensor podría indicar el norte, sur, este y oeste geográficos, los seres humanos también podríamos usarlo cuando sea necesario. Entonces, en este artículo, intentemos comprender cómo funciona el sensor Magnetómetro y cómo conectarlo con un microcontrolador como Arduino. Aquí construiremos una brújula digital genial que nos ayudará a encontrar las direcciones al iluminar un LED que apunta hacia la dirección norte. Esta brújula digital está cuidadosamente fabricada en PCB de PCBGOGO, por lo que puedo llevarla la próxima vez cuando salga a la naturaleza y desearía perderme solo para usar esta cosa para encontrar el camino de regreso a casa. Empecemos.
Materiales necesarios
- Arduino Pro mini
- Sensor de magnetómetro HMC5883L
- Luces LED - 8Nos
- Resistencia de 470Ohmios - 8Nos
- Barril Jack
- Un fabricante de PCB confiable como PCBgogo
- Programador FTDI para mini
- PC / portátil
¿Qué es un magnetómetro y cómo funciona?
Antes de sumergirnos en el circuito, comprendamos un poco sobre el magnetómetro y cómo funcionan. Como sugiere el nombre, el término Magneto no se refiere a ese mutante loco de maravilla que podía controlar los metales simplemente tocando el piano en el aire. ¡Oh! Pero me gusta ese chico, es genial.
El magnetómetro es en realidad un equipo que puede detectar los polos magnéticos de la tierra y señalar la dirección de acuerdo con eso. Todos sabemos que la Tierra es una enorme pieza de imán esférico con el Polo Norte y el Polo Sur. Y hay un campo magnético debido a eso. Un magnetómetro detecta este campo magnético y, según la dirección del campo magnético, puede detectar la dirección a la que nos dirigimos.
Cómo funciona el módulo de sensor HMC5883L
El HMC5883L es un sensor de magnetómetro que hace lo mismo. Tiene el IC HMC5883L que es de Honeywell. Este CI tiene 3 materiales magnetorresistivos en su interior los cuales están dispuestos en los ejes x, y y z. La cantidad de corriente que fluye a través de estos materiales es sensible al campo magnético terrestre. Entonces, al medir el cambio en la corriente que fluye a través de estos materiales, podemos detectar el cambio en el campo magnético de la Tierra. Una vez que se absorbe el cambio en el campo magnético, los valores se pueden enviar a cualquier controlador integrado como un microcontrolador o procesador a través del protocolo I2C.
Dado que el sensor funciona detectando el campo magnético, los valores de salida se verán muy afectados si se coloca un metal cerca. Este comportamiento se puede aprovechar para utilizar estos sensores también como detectores de metales. Se debe tener cuidado de no acercar imanes a este sensor, ya que el fuerte campo magnético de un imán puede generar valores falsos en el sensor.
Diferencia entre HMC5883L y QMC5883L
Existe una confusión común en torno a estos sensores para muchos principiantes. Esto se debe a que algunos proveedores (en realidad la mayoría) venden los sensores QMC5883L en lugar del HMC5883L original de Honeywell. Se debe principalmente a que el módulo QMC5883L es mucho más barato que el módulo HMC5883L. La parte triste es que el funcionamiento de estos dos sensores es ligeramente diferente y no se puede usar el mismo código para ambos. Esto se debe a que la dirección I2C de ambos sensores no es la misma. El código proporcionado en este tutorial solo funcionará para QMC5883L, el módulo de sensor comúnmente disponible.
Para saber qué modelo de sensor tiene, solo tiene que mirar de cerca el IC para leer lo que está escrito encima. Si está escrito en algo como L883, entonces es el HMC58836L y si está escrito en algo como DA5883, entonces es el IC QMC5883L. Ambos módulos se muestran en la siguiente imagen para simplificar la comprensión.
Diagrama de circuito
El circuito para esta brújula digital basada en Arduino es bastante simple, simplemente tenemos que conectar el sensor HMC5883L con el Arduino y conectar 8 LED a los pines GPIO del Arduino Pro mini. El diagrama de circuito completo se muestra a continuación
El módulo del sensor tiene 5 pines de los cuales el DRDY (Data Ready) no se usa en nuestro proyecto ya que estamos operando el sensor en modo continuo. El pin Vcc y tierra se utiliza para alimentar el módulo con 5 V de la placa Arduino. El SCL y SDA son las líneas de bus de comunicación I2C que están conectadas a los pines A4 y A5 I2C del Arduino Pro mini respectivamente. Dado que el módulo en sí tiene una resistencia de tracción alta en las líneas, no es necesario agregarlas externamente.
Para indicar la dirección hemos utilizado 8 LED todos los cuales están conectados a los pines GPIO del Arduino a través de una resistencia limitadora de corriente de 470 Ohms. El circuito completo es alimentado por una batería de 9V a través del conector de barril. Este 9V se proporciona directamente al pin Vin del Arduino, donde se regula a 5V utilizando el regulador integrado en Arduino. Este 5V se usa para alimentar el sensor y también el Arduino.
Fabricación de PCB para la brújula digital
La idea del circuito es colocar los 8 LED de forma circular de modo que cada LED apunte todas las 8 direcciones, a saber, norte, noreste, este, sureste, sur, suroeste, oeste y noroeste respectivamente. Por lo tanto, no es fácil organizarlos de manera ordenada en una placa de pruebas o incluso en una placa de perforación. Desarrollar una PCB para este circuito hará que se vea más ordenado y fácil de usar. Así que abrí mi software de diseño de PCB y coloqué los LED y la resistencia en un patrón circular ordenado y conecté las pistas para formar las conexiones. Mi diseño se veía así a continuación cuando se completó. También puede descargar el archivo Gerber desde el enlace que figura a continuación.
- Descargar archivo Gerber para PCB de brújula digital
Lo he diseñado para que sea una placa de doble cara ya que quiero que Arduino esté en la parte inferior de mi PCB para que no estropee el aspecto en la parte superior de mi PCB. Si le preocupa tener que pagar mucho por un PCB de doble cara, espere, tengo buenas novedades.
Ahora que nuestro diseño está listo, es el momento de fabricarlos. Hacer la PCB es bastante fácil, simplemente siga los pasos a continuación
Paso 1: Ingrese a www.pcbgogo.com, regístrese si esta es su primera vez. Luego, en la pestaña Prototipo de PCB ingrese las dimensiones de su PCB, el número de capas y el número de PCB que necesita. Mi PCB mide 80 cm × 80 cm, por lo que la pestaña se ve así a continuación
Paso 2: Continúe haciendo clic en el botón Cotizar ahora . Se le llevará a una página donde establecer algunos parámetros adicionales si es necesario, como el material utilizado, el espaciado de pistas, etc. Pero la mayoría de los valores predeterminados funcionarán bien. Lo único que tenemos que considerar aquí es el precio y el tiempo. Como puede ver, el tiempo de construcción es de solo 2-3 días y solo cuesta $ 5 para nuestro PSB. Luego, puede seleccionar un método de envío preferido según sus necesidades.
Paso 3: El paso final es cargar el archivo Gerber y proceder con el pago. Para asegurarse de que el proceso sea fluido, PCBGOGO verifica si su archivo Gerber es válido antes de proceder con el pago. De esta manera, puede estar seguro de que su PCB es fácil de fabricar y le llegará según lo comprometido.
Montaje de la PCB
Después de que se ordenó la placa, me llegó después de algunos días a través del servicio de mensajería en una caja bien embalada y bien etiquetada y, como siempre, la calidad de la placa fue increíble. Estoy compartiendo algunas fotos de las tablas a continuación para que las juzgue.
Encendí mi varilla de soldadura y comencé a ensamblar la placa. Dado que las huellas, las almohadillas, las vías y la serigrafía tienen perfectamente la forma y el tamaño correctos, no tuve problemas para ensamblar la tabla. El tablero estuvo listo en solo 10 minutos desde el momento de desembalar la caja.
A continuación se muestran algunas imágenes de la placa después de soldar.
Programando el Arduino
Ahora que nuestro hardware está listo, echemos un vistazo al programa que debe cargarse en nuestra placa Arduino. El propósito del código es leer los datos del sensor del magnetómetro QMC5883L y convertirlos en grados (0 a 360). Una vez que conocemos el grado, tenemos que encender un LED que apunta en una dirección específica. La dirección que he usado en este programa es el norte. Entonces, independientemente de dónde se encuentre , solo habrá un LED encendido en su tablero y la dirección del LED indicará la dirección NORTE. Una vez que se pudo calcular más tarde la otra dirección, se conoce una dirección.
El código completo para este proyecto de brújula digital se puede encontrar al final de esta página. Puede cargarlo directamente en su tablero después de incluir la biblioteca y estará listo para comenzar. Pero, si quieres saber