İçindekiler:

Yakıt Verimliliği Dedektörü: 5 Adım
Yakıt Verimliliği Dedektörü: 5 Adım

Video: Yakıt Verimliliği Dedektörü: 5 Adım

Video: Yakıt Verimliliği Dedektörü: 5 Adım
Video: BUNU YAŞAMAYAN YOKTUR 😂 #emirbeşli #shorts 2024, Temmuz
Anonim
Yakıt Verimliliği Dedektörü
Yakıt Verimliliği Dedektörü

Yazan: Danica Fujiwara ve William McGrouther

Arabalar bugün dünyadaki ana ulaşım şeklidir. Spesifik olarak, Kaliforniya'da her gün binlerce arabanın kullandığı sokaklar, otoyollar ve paralı yollarla çevriliyiz. Bununla birlikte, arabalar gaz kullanır ve Kaliforniya, ABD'deki diğer eyaletlerden daha fazla benzin kullanır, günde yaklaşık 4.500 galon. CPE 133 Final projemiz için, bir arabanın hızını takip edebileceği ve en iyi yakıt tüketimi için en verimli hızı aşıp aşmadığını veya yakıt ekonomisini söyleyebileceği bir sistem oluşturmaya karar verdik. Bu proje, sürücülerin yakıt tasarruflarının farkına varmalarına yardımcı olacak ve bu da onların paradan tasarruf etmelerine, daha az gaz kullanmalarına ve havada daha az kirlilik yaratmalarına yardımcı olacaktır.

Adım 1: Malzemeler

Malzemeler
Malzemeler
Malzemeler
Malzemeler
Malzemeler
Malzemeler
Malzemeler
Malzemeler

Bu proje için gerekli malzemeler:

- Basys 3 FPGA

-Arduino Uno

- Ekmek tahtası

- Adafruit BNO055 Mutlak Yön Sensörü

- Erkek - Erkek Teller

Adım 2: Tasarımı Anlamak

Tasarımı Anlamak
Tasarımı Anlamak
Tasarımı Anlamak
Tasarımı Anlamak

Sonlu Durum Şeması

Bu proje, yukarıda gösterilen sonlu durum diyagramında iki farklı duruma sahiptir. Işık açık ("1" ile temsil edilir) veya kapalı ("0" ile temsil edilir) olabilir. Durum, izleme hız(ts) girişine ve sabit optimal hıza bağlı olarak değişir.

Kara Kutu Şeması

Ayrıca yukarıda, Hız Karşılaştırıcısının ve Yedi Segmentli Ekranın şemasını içeren Yakıt Verimliliği modülünün bir Kara Kutu diyagramı bulunmaktadır ve bunlar aşağıda daha ayrıntılı tartışılmaktadır. Bu VHDL kodu, arduinoya bağlı olan ivmeölçerin ölçümlerinden 8 bitlik bir giriş alır.

3. Adım: VHDL'yi Kodlama

Bu proje için tasarımımızı oluşturan üç VHDL dosyası var, Fuel_Efficency_FinalProject modülü, Speed_Comparator modülü ve sseg_dec modülü, burada Speed_Comparator ve sseg_dec Yakıt Verimliliği modülünü oluşturmak için daha düşük seviyede.

Hız karşılaştırıcı Modülü

Bu modül saatte mil cinsinden 8 bitlik bir hız alır ve bunu en az miktarda gaz tüketimi için en uygun hız ile karşılaştırır. Bir otomobilin en iyi gaz kilometresi için ortalama optimum hız, yaklaşık 55 mil ve altıdır. Ancak bu, modül içinde özelleştirilebilen arabadan arabaya değişebilir. Kişisel optimizasyon için değiştirilebilen kodun 45. satırı aşağıda gösterilmiştir.

if (izleme > "00110111") o zaman

En az yakıt tüketimi için kişisel aracınızın ideal hızı için “00110111” (ikili olarak 55) herhangi bir 8 bitlik sayıya değiştirilebilir.

Hız optimum sayının üzerindeyse, aracın maksimum yakıt verimliliği kullanmadığını bildiren ışık yanacaktır.

Yedi Segment Ekran Modülü

Bu modül saatte mil olarak 8 bitlik bir hız alır ve hızı yedi segmentli ekranda gösterir. Bu, kullanıcının yavaşlaması gerekip gerekmediğini ne kadar hızlı bileceğini bilmesini sağlar. Bu modül bize sınıfımız içinde verildi ve Bryan mealy tarafından yazılmış, bin2bcdconv ikili 8-bit girişi daha kolay çözülebilen BCD formuna ve clk_div'e çevirerek ekranın 3 basamaklı bir sayıyı görsel olarak gösterebilmesini sağlıyor. anot çıkışını yüksek bir saat frekansında değiştirerek. Bu kod, 8 bitlik bir sayıyı kabul eder, sayıyı basys 3 kartında okunabilir bir ekrana dönüştürür.

Yakıt Verimliliği modülü

Bu, yukarıdaki modülleri bileşen olarak kullanan ana dosyadır. Girdileri saat ve izleme hızıdır. Saat, basys 3 kartında yerleşiktir ve izleme hızı, arduino'nun Analog sinyal pmod bağlantı noktasına (XADC) bağlı çıkışı tarafından verilir. 8 bitlik izleme hızının her biti, 4. adımda kablolama bölümünde gösterilen bağlantı noktalarına eşlenir. Diğer Basys 3 kısıtlamaları Basys_3_Master.xdc içinde bulunabilir.

Adım 4: Arduino'yu Kodlamak

Bu proje, bazıları zaten arduino programınızda bulunan ve diğerlerinin bu talimattan veya Adafruit web sitesinden indirilmesi gereken birkaç kitaplığın kullanılmasını gerektiren bir ana arduino dosyası kullanır (aşağıdaki bağlantı).

Kütüphaneler

Adafruit BNO055 sayfasına bağlantı:

Adafruit, BNO055'in kullanımı için 2 adet kütüphane geliştirmiş ve bunların nasıl kullanılacağına dair örnekler verilmiştir. Bu projede, arduino'nun ivmeölçer verilerini çıkarması için.getVector işlevini kullanacağız.

Bu proje aynı zamanda matematik kütüphanesi gibi arduino programında kurulu olan bazı kütüphaneleri de kullanır.

Ana Dosya

Bu dosya,.getVector işlevinden gelen ivmeölçer verilerini kullanır ve bunu saatte mil cinsinden bir hıza dönüştürmek için matematiksel denklemleri kullanır, bu daha sonra 8 bitlik veri olarak Basys 3'e gönderilir (daha fazla bilgi için "Donanımı Kablolama" bölümüne bakın) bilgi).

Adım 5: Donanımı Kablolama

Donanımın Kablolanması
Donanımın Kablolanması
Donanımın Kablolanması
Donanımın Kablolanması
Donanımın Kablolanması
Donanımın Kablolanması
Donanımın Kablolanması
Donanımın Kablolanması

Arduino Kablolama

Arduino, yukarıdaki resimlerde olduğu gibi breadboard'a bağlanmalıdır.

Basys 3 Kablolama

Arduino'nun çıkışları, Analog sinyal pmod JXADC portları aracılığıyla Basys 3'ün girişlerine eşlenir. 8 bitlik izleme hızının her bir biti yukarıdaki resimde gösterilen pinlerden birine bağlanabilir. En az anlamlı bit (dijital pin 7) ts(7)'ye bağlanır ve en anlamlı bit (dijital pin 0) ts(0)'a bağlanır.

Önerilen: