Tabla de contenido:

Brújula LED y altímetro: 7 pasos (con imágenes)
Brújula LED y altímetro: 7 pasos (con imágenes)

Video: Brújula LED y altímetro: 7 pasos (con imágenes)

Video: Brújula LED y altímetro: 7 pasos (con imágenes)
Video: Quizá NO TE CONTARON esto de los SENSORES cardiacos de TU SMARTWATCH 2024, Noviembre
Anonim
Image
Image
Diagrama de circuito y PCB
Diagrama de circuito y PCB

Los objetos con LED siempre me fascinan. Por lo tanto, este proyecto combina el popular sensor de brújula digital HMC5883L con 48 LED. Al colocar los LED en un círculo, el LED que se enciende es la dirección a la que se dirige. Cada 7.5 grados activará un nuevo LED que brinda resultados detallados.

La placa GY-86 también proporciona un sensor de presión barométrica MS5611. Con la ayuda de este sensor es posible calcular la altitud. Por su alta resolución es perfecto para altímetros.

El sensor MPU6050 en la placa GY-86 tiene un acelerómetro de 3 ejes y un giroscopio de 3 ejes. El giroscopio puede medir la velocidad de la posición angular a lo largo del tiempo. El acelerómetro puede medir la aceleración gravitacional y mediante el uso de matemáticas de trigonometría es posible calcular el ángulo en el que está posicionado el sensor. Al combinar los datos del acelerómetro y el giroscopio, es posible obtener información sobre la orientación del sensor. Esto se puede utilizar para la compensación de inclinación de la brújula HMC5883L (tareas pendientes).

Los videos breves de instrucciones en este instructivo explicarán en detalle cómo funciona. Los procedimientos de calibración están automatizados, por lo que el éxito está garantizado. La temperatura está disponible en grados Celsius (predeterminado) o Fahrenheit.

Divertirse !!

Paso 1: altímetro

Image
Image

El altímetro hace uso del sensor de presión barométrica MS5611. La altitud se puede determinar basándose en la medición de la presión atmosférica. Cuanto mayor sea la altitud, menor será la presión. Al inicio, el altímetro utiliza la presión predeterminada al nivel del mar de 1013,25 mbar. Al presionar el botón en el pin 21, la presión en su ubicación se utilizará como referencia. De esta manera, permite medir aproximadamente qué altura tiene algo (por ejemplo, cuando se conduce cuesta arriba con un automóvil).

En este proyecto se utiliza la denominada "fórmula hipsométrica". Esta fórmula utiliza la temperatura para compensar la medición.

flotar alt=((powf (fuente / ((flotar) P / 100.0), 0.19022256) - 1.0) * ((flotar) TEMP / 100 + 273.15)) / 0.0065;

Puede encontrar más información sobre la fórmula hipsométrica aquí:

Fórmula hipsométrica

Los datos de calibración de fábrica y la temperatura del sensor se leen del sensor MS5611 y se aplican al código para obtener las mediciones más precisas. Durante la prueba, descubrí que el sensor MS5611 es sensible a los flujos de aire y las diferencias en la intensidad de la luz. Debe ser posible obtener mejores resultados que en este video de instrucciones.

Paso 2: Partes

1 x microcontrolador Microchip 18f26k22 PDIP de 28 pines

3 x MCP23017 Expansor de E / S de 16 bits SPDIP de 28 pines

48 x LED de 3 mm

1 x módulo GY-86 con sensores MS5611, HMC5883L y MPU6050

1 x SH1106 OLED 128x64 I2C

1 x condensador cerámico 100nF

1 x resistencia de 100 ohmios

Paso 3: diagrama de circuito y PCB

Diagrama de circuito y PCB
Diagrama de circuito y PCB

Todo cabe en una placa de circuito impreso de una cara. Encuentre aquí los archivos Eagle y Gerber para que pueda hacerlo usted mismo o pregúntele a un fabricante de PCB.

Utilizo la brújula LED y el altímetro en mi coche y uso la interfaz OBD2 como fuente de alimentación. El microcontrolador encaja perfectamente en el conector.

Paso 4: Cómo alinear perfectamente los LED en un círculo en segundos con el software de diseño de PCB Eagle

Debe ver esta característica realmente agradable en Eagle PCB Design Software que le ahorra horas de trabajo. Con esta función Eagle, puede alinear perfectamente los LED en un círculo en segundos.

Simplemente haga clic en la pestaña "Archivo" y luego en "Ejecutar ULP". Desde aquí, haga clic en "cmd-draw.ulp". Seleccione "Mover", "paso de grado" y "Círculo". Complete el nombre del primer LED en el campo "nombre". Establezca las coordenadas del centro del círculo en la cuadrícula en los campos "X centro coord" y "Y centro coord". En este proyecto hay 48 LED, por lo que 360 dividido por 48 hace 7.5 para el campo "Paso de ángulo". El radio de este círculo es de 1,4 pulgadas. Pulsa enter y tienes un círculo perfecto de LED.

Paso 5: Proceso de calibración de la brújula

Image
Image

El HMC5883L incluye un ADC de 12 bits que permite una precisión de rumbo de la brújula de 1 a 2 grados Celsius. Pero antes de que proporcione datos utilizables, debe calibrarse. Para que este proyecto funcione sin problemas, existe este método de calibración que proporciona una compensación xey. No es el método más sofisticado pero es suficiente para este proyecto. Este procedimiento le costará solo unos minutos y le dará buenos resultados.

Al cargar y ejecutar este software, se le guiará en este proceso de calibración. La pantalla OLED le dirá cuándo comenzará el proceso y cuándo finalizará. Este proceso de calibración le pedirá que gire el sensor 360 grados mientras lo mantiene absolutamente plano (horizontal al suelo). Móntelo en un trípode o algo así. Hacer esto sosteniéndolo en su mano no funciona. Al final, las compensaciones se presentarán en el OLED. Si ejecuta este procedimiento varias veces, debe ver resultados casi iguales.

Opcionalmente, los datos recopilados también están disponibles a través de RS232 a través del pin 27 (9600 baudios). Simplemente use un programa de terminal como Putty y recopile todos los datos en el archivo de registro. Estos datos se pueden importar fácilmente en Excel. Desde aquí puede ver más fácilmente cómo se ve el desplazamiento de su HMC5883L.

Las compensaciones se colocan en la EEPROM del microcontrolador. Estos se cargarán al inicio del software de brújula y altímetro que encontrará en el paso 7.

Paso 6: compensa la declinación magnética de tu ubicación

Image
Image
Concurso de sensores
Concurso de sensores

Hay un Norte magnético y un Norte geográfico (Polo Norte). Su brújula seguirá las líneas del campo magnético de la tierra, así que apunte hacia el norte magnético. La diferencia entre el norte magnético y el norte geográfico se llama declinación magnética. En mi ubicación, la declinación es de solo 1 grado y 22 minutos, por lo que no vale la pena compensar esto. En otros lugares, esta declinación puede ser de hasta 30 grados.

Encuentra la declinación magnética en tu ubicación

Si quieres compensar esto (es opcional) puedes agregar la declinación (grados y minutos) en la EEPROM del microcontrolador. En la ubicación 0x20 puede agregar los grados en forma hexadecimal firmada. Está firmado porque también puede ser una declinación negativa. En la ubicación 0x21 puede agregar los minutos también en forma hexadecimal.

Paso 7: compila el código

Image
Image

Compile este código fuente y programe su microcontrolador. Este código se compila correctamente con MPLABX IDE v5.20 y el compilador XC8 v2.05 en modo C99 (por lo tanto, incluya los directorios C99). Además, el archivo hexadecimal está disponible para que pueda omitir el procedimiento de compilación. Asegúrese de desmarcar la casilla de verificación "Datos EEPROM habilitados" para evitar que se sobrescriban los datos de calibración (consulte el paso 5). ¡Ponga su programador en 3.3 voltios!

Al conectar el pin 27 a tierra, obtienes la temperatura en Fahrenheit.

Gracias a Achim Döbler por su biblioteca gráfica µGUI

Concurso de sensores
Concurso de sensores

Finalista en el Concurso de Sensores

Recomendado: