Tabla de contenido:
- Paso 1: Materiales
- Paso 2: comprensión del diseño
- Paso 3: codificación de VHDL
- Paso 4: codificación de Arduino
- Paso 5: cableado del hardware
Video: Detector de eficiencia de combustible: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
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 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
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 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:
¡Convertidor buck de salida de 5 V de alta eficiencia para bricolaje !: 7 pasos
¡Convertidor Buck de salida de 5 V de alta eficiencia para bricolaje!: Quería una forma eficiente de reducir los voltajes más altos de los paquetes de LiPo (y otras fuentes) a 5 V para proyectos de electrónica. En el pasado, he usado módulos de dólar genéricos de eBay, pero el control de calidad cuestionable y la capacidad electrolítica sin nombre
FLOODLIGHT DIY W / AC LED (+ EFICIENCIA VS DC LED): 21 pasos (con imágenes)
FLOODLIGHT DIY W / AC LED (+ EFICIENCIA VS DC LED): En este video / instructable, haré un reflector con chips LED AC sin conductor extremadamente baratos. ¿Son buenos? ¿O son una completa basura? Para responder a eso, haré una comparación completa con todas mis luces de bricolaje hechas. Como de costumbre, por poco dinero
Placa de controlador de motor de eficiencia energética: 5 pasos
Placa de controlador de motor de eficiencia energética: el proyecto presentado es una placa de circuito de controlador de motor / motor paso a paso con IC de controlador de motor SN754410 que incluye algunas características de ahorro de energía. La placa puede impulsar 2 motores de CC o un motor paso a paso con la ayuda de un circuito de puente doble H en el IC. SN754410 IC
Mida el nivel de combustible con Arduino: 4 pasos (con imágenes)
Mida el nivel de combustible con Arduino: la unidad de detección generalmente usa un flotador conectado a un potenciómetro, generalmente diseño de tinta impresa en un automóvil moderno. A medida que el tanque se vacía, el flotador cae y desliza un contacto móvil a lo largo de la resistencia, aumentando su resistencia. [2] Además
Cómo hacer una pila de combustible microbiana (MFC) usando barro: 7 pasos (con imágenes)
Cómo hacer una celda de combustible microbiana (MFC) usando barro: La celda de combustible microbiana MudWatt (cariñosamente apodada la " Batería de suciedad ") es un dispositivo que usa bacterias para convertir la materia orgánica que se encuentra en el barro en electricidad. Este Instructable lo guiará a través de la fabricación de su propio combustible microbiano c