Tabla de contenido:

Detector de eficiencia de combustible: 5 pasos
Detector de eficiencia de combustible: 5 pasos

Video: Detector de eficiencia de combustible: 5 pasos

Video: Detector de eficiencia de combustible: 5 pasos
Video: EL SECRETO que todo tecnico automotriz debe saber - AJUSTES DE COMBUSTIBLE (PCM fuel trims ) 2024, Noviembre
Anonim
Detector de eficiencia de combustible
Detector de eficiencia de combustible

Por: Danica Fujiwara y William McGrouther

Los automóviles son el principal medio de transporte en el mundo de hoy. Específicamente, en California, estamos rodeados de calles, carreteras y carreteras de peaje por las que circulan miles de automóviles a diario. Sin embargo, los automóviles usan gasolina y California usa la mayor cantidad de gasolina que cualquier otro estado de los EE. UU., Aproximadamente 4, 500 galones por día. Para nuestro proyecto final CPE 133, decidimos crear un sistema en el que pudiera rastrear la velocidad de un automóvil y decir si excede la velocidad más eficiente para el mejor rendimiento de combustible o economía de combustible. Este proyecto ayudaría a los conductores a tomar conciencia de su economía de combustible, lo que a su vez les ayudaría a ahorrar dinero, usar menos gas y generar menos contaminación en el aire.

Paso 1: Materiales

Materiales
Materiales
Materiales
Materiales
Materiales
Materiales
Materiales
Materiales

Materiales necesarios para este proyecto:

- FPGA Basys 3

- Arduino Uno

- Tablero de pruebas

- Sensor de orientación absoluta Adafruit BNO055

- Cables macho a macho

Paso 2: comprensión del diseño

Entendiendo el Diseño
Entendiendo el Diseño
Entendiendo el Diseño
Entendiendo el Diseño

Diagrama de estados finitos

Este proyecto tiene dos estados diferentes dentro del diagrama de estados finitos que se muestra arriba. La luz puede estar encendida (representada por "1") o apagada (representada por "0"). El estado cambia según la entrada de la velocidad de seguimiento (ts) y la velocidad óptima constante.

Diagrama de caja negra

También arriba hay un diagrama de Caja Negra del módulo de Eficiencia de Combustible que contiene el esquema del Comparador de Velocidad y la Pantalla de Siete Segmentos que se analizan con más detalle a continuación. Este código VHDL recibe una entrada de 8 bits de las medidas del acelerómetro que está conectado al arduino.

Paso 3: codificación de VHDL

Para este proyecto, hay tres archivos VHDL que construyen nuestro diseño, el módulo Fuel_Efficency_FinalProject, el módulo Speed_Comparator y el módulo sseg_dec donde Speed_Comparator y sseg_dec están en el nivel inferior para formar el módulo de eficiencia de combustible.

El módulo comparador de velocidad

Este módulo toma una velocidad de 8 bits en millas por hora y la compara con la velocidad óptima para la menor cantidad de consumo de gas. La velocidad óptima promedio para el mejor rendimiento de combustible de un automóvil es de alrededor de 55 mph o menos. Sin embargo, esto puede variar de un automóvil a otro, lo que se puede personalizar dentro del módulo. La línea 45 de código que se puede cambiar para la optimización personal se muestra a continuación

si (seguimiento> "00110111") entonces

Donde "00110111" (55 en binario) se puede cambiar a cualquier número de 8 bits para la velocidad ideal de su automóvil personal con la menor cantidad de consumo de combustible.

Si la velocidad está por encima del número óptimo, la luz se encenderá notificando que el automóvil no está utilizando la máxima eficiencia de combustible.

El módulo de visualización de siete segmentos

Este módulo toma una velocidad de 8 bits en millas por hora y muestra la velocidad en la pantalla de siete segmentos. Esto permitiría al usuario saber qué tan rápido va a saber si necesita reducir la velocidad. Este módulo nos fue entregado dentro de nuestra clase y fue escrito por Bryan mealy que contiene los componentes bin2bcdconv que convierte la entrada binaria de 8 bits a la forma BCD que es más fácil de decodificar y clk_div para que la pantalla pueda mostrar visualmente un número con 3 dígitos. cambiando la salida del ánodo a una frecuencia de reloj alta. Este código acepta un número de 8 bits y convierte el número en una pantalla legible en la placa basys 3.

El módulo de eficiencia de combustible

Este es el archivo principal que usa los módulos anteriores como componentes. Sus entradas son el reloj y la velocidad de seguimiento. El reloj está construido dentro de la placa basys 3 y la velocidad de seguimiento viene dada por la salida del arduino que está conectada al puerto pmod de la señal analógica (XADC). Cada bit de la velocidad de seguimiento de 8 bits se asigna a los puertos que se muestran dentro de la sección de cableado en el paso 4. Otras restricciones de Basys 3 se pueden encontrar en Basys_3_Master.xdc.

Paso 4: codificación de Arduino

Este proyecto utiliza un archivo arduino principal que requiere el uso de varias bibliotecas, algunas de las cuales ya están en su programa arduino y otras deben descargarse desde este instructivo o desde el sitio web de Adafruit (enlace a continuación).

Bibliotecas

enlace a la página de Adafruit BNO055:

Adafruit ha desarrollado 2 bibliotecas para el uso de BNO055 y ofrece ejemplos de cómo utilizarlas. En este proyecto usaremos la función.getVector para que el arduino genere los datos del acelerómetro.

Este proyecto también utiliza algunas bibliotecas ya instaladas en el programa arduino, como la biblioteca de matemáticas.

Archivo principal

Este archivo usa los datos del acelerómetro de la función.getVector y usa ecuaciones matemáticas para convertirlo en una velocidad en millas por hora, que luego se envía en 8 bits de datos al Basys 3 (consulte la sección "Cableado del hardware" para obtener más información información).

Paso 5: cableado del hardware

Cableado del hardware
Cableado del hardware
Cableado del hardware
Cableado del hardware
Cableado del hardware
Cableado del hardware
Cableado del hardware
Cableado del hardware

Cableado Arduino

El Arduino debe estar conectado a la placa de pruebas como se muestra en las imágenes de arriba.

Cableado Basys 3

Las salidas del arduino se asignan a las entradas del Basys 3 a través de los puertos de señal analógica pmod JXADC. Cada bit de la velocidad de seguimiento de 8 bits se puede conectar a uno de los pines que se muestran en la imagen de arriba. El bit menos significativo (pin digital 7) se conecta a ts (7) y el bit más significativo (pin digital 0) se conecta a ts (0).

Recomendado: