Mündəricat:

Yanacaq səmərəliliyi detektoru: 5 addım
Yanacaq səmərəliliyi detektoru: 5 addım

Video: Yanacaq səmərəliliyi detektoru: 5 addım

Video: Yanacaq səmərəliliyi detektoru: 5 addım
Video: ТОП-10 лучших грузовиков США в SnowRunner? 2024, Iyul
Anonim
Yanacaq səmərəliliyi detektoru
Yanacaq səmərəliliyi detektoru

Müəllif: Danica Fujiwara və William McGrouther

Avtomobillər bu gün dünyanın əsas nəqliyyat növüdür. Xüsusilə, Kaliforniyada, hər gün minlərlə avtomobilin getdiyi küçələr, magistral yollar və pullu yollarla əhatə olunmuşuq. Bununla birlikdə, avtomobillər qazdan istifadə edir və Kaliforniya ABŞ -ın digər əyalətlərindən daha çox benzin istifadə edir, gündə təxminən 4,500 galon. CPE 133 Final layihəmiz üçün bir avtomobilin sürətini izləyə biləcək və ən yaxşı qaz yürüşü və ya yanacaq qənaəti üçün ən səmərəli sürəti keçib keçə biləcəyi bir sistem yaratmağa qərar verdik. Bu layihə, sürücülərin yanacaq qənaətlərindən xəbərdar olmalarına kömək edəcək və bu da pula qənaət etməyə, daha az qazdan istifadə etməyə və havada daha az çirklənmə yaratmağa kömək edəcək.

Addım 1: Materiallar

Materiallar
Materiallar
Materiallar
Materiallar
Materiallar
Materiallar
Materiallar
Materiallar

Bu layihə üçün lazım olan materiallar:

- Basys 3 FPGA

- Arduino Uno

- Çörək lövhəsi

- Adafruit BNO055 Mütləq Oriyentasiya Sensoru

- Kişi -Kişi Telləri

Addım 2: Dizaynı anlayın

Dizaynı anlamaq
Dizaynı anlamaq
Dizaynı anlamaq
Dizaynı anlamaq

Sonlu vəziyyət diaqramı

Bu layihənin yuxarıda göstərilən sonlu vəziyyət diaqramında iki fərqli vəziyyəti var. İşıq ya açıq ola bilər ('1' ilə təmsil olunur) və ya sönür ('0' ilə təmsil olunur). Vəziyyət, izləmə sürəti (ts) və sabit optimal sürətin girişindən asılı olaraq dəyişir.

Qara qutu diaqramı

Yuxarıda daha sonra müzakirə ediləcək Sürət Müqayisəsi və Yeddi Segment Ekranının sxemini özündə əks etdirən Yanacaq Səmərəliliyi modulunun Qara qutu diaqramı var. Bu VHDL kodu, arduino ilə əlaqəli olan akselerometr ölçmələrindən 8 bitlik giriş alır.

Addım 3: VHDL kodlaşdırma

Bu layihə üçün dizaynımızı quran üç VHDL faylı var, Fuel_Efficency_FinalProject modulu, Speed_Comparator modulu və Speed_Comparator və sseg_dec -in Yanacaq Səmərəliliyi modulunu yaratmaq üçün aşağı səviyyədə olduğu sseg_dec modulu.

Sürət müqayisə modulu

Bu modul, saatda mil başına 8 bit sürətlə hərəkət edir və ən az qaz istehlakı üçün optimal sürətlə müqayisə edir. Bir avtomobilin ən yaxşı qaz yürüşü üçün orta optimal sürət 55 mil və daha aşağıdır. Bununla birlikdə, bu, modulda özəlləşdirilə bilən avtomobildən avtomobilə dəyişə bilər. Şəxsi optimallaşdırma üçün dəyişdirilə bilən 45 kod xətti aşağıda göstərilmişdir

əgər (izləmə> "00110111") onda

"00110111" (ikili olaraq 55), şəxsi avtomobilinizin ən az yanacaq istehlakı üçün ideal sürəti üçün istənilən 8 bitlik bir rəqəmə dəyişdirilə bilər.

Sürət optimal saydan artıq olarsa, işıq yanacaq ki, bu da avtomobilin maksimum yanacaq qənaət etmədiyini bildirir.

Yeddi Segmentin Ekran Modulu

Bu modul saatda millə 8 bitlik sürəti alır və yeddi seqmentli ekranda sürəti göstərir. Bu, istifadəçiyə yavaşlamağa ehtiyacı olub olmadığını nə qədər tez biləcəyini bilməsinə imkan verəcəkdir. Bu modul sinifimiz daxilində bizə verildi və ikili 8-bitli girişi koddan çıxarmaq və clk_div-i BCD formasına çevirən bin2bcdconv komponentlərini ehtiva edən Bryan mealy tərəfindən yazılmışdır ki, ekranda vizual olaraq 3 rəqəmdən ibarət bir rəqəm göstərilsin. anod çıxışını yüksək saat tezliyində dəyişdirərək. Bu kod, 8 bitlik bir rəqəmi qəbul edir, nömrəni basys 3 lövhəsində oxunaqlı bir ekrana çevirir.

Yanacaq səmərəliliyi modulu

Yuxarıdakı modulları komponent olaraq istifadə edən əsas sənəd budur. Girişləri saat və izləmə sürətidir. Saat bazys 3 lövhəsi içərisində qurulmuşdur və izləmə sürəti, Analog siqnal pmod portuna (XADC) bağlı olan arduinonun çıxışı ilə verilir. 8 bitlik izləmə sürətinin hər bir biti, 4-cü addımdakı kabel bölməsində göstərilən limanların xəritəsidir. Digər Basys 3 məhdudiyyətləri Basys_3_Master.xdc daxilində tapıla bilər.

Addım 4: Arduino kodlaşdırma

Bu layihə bir neçə kitabxananın istifadəsini tələb edən bir əsas arduino faylını istifadə edir, onlardan bəziləri artıq arduino proqramınızda, digərləri isə bu təlimatlı və ya Adafruit veb saytından yüklənməlidir (aşağıdakı link).

Kitabxanalar

Adafruit BNO055 səhifəsinə keçid:

Adafruit, BNO055 istifadə etmək üçün 2 kitabxana hazırladı və onlardan necə istifadə ediləcəyinə dair nümunələr verdi. Bu layihədə arduino -nun akselerometr məlumatlarını çıxarması üçün.getVector funksiyasından istifadə edəcəyik.

Bu layihə, riyaziyyat kitabxanası kimi arduino proqramında artıq quraşdırılmış bəzi kitabxanalardan da istifadə edir.

Əsas Fayl

Bu fayl.getVector funksiyasından alınan accelerometer məlumatlarını istifadə edir və saatda mil sürətə çevirmək üçün riyazi tənliklərdən istifadə edir, daha sonra 8 bit məlumatda Basys 3 -ə verilir (daha çox məlumat üçün "Avadanlığın Kabellənməsi" bölməsinə baxın). məlumat).

Addım 5: Avadanlıqların Kabelləşdirilməsi

Avadanlıqların Kabelləşdirilməsi
Avadanlıqların Kabelləşdirilməsi
Avadanlıqların Kabelləşdirilməsi
Avadanlıqların Kabelləşdirilməsi
Avadanlıqların Kabelləşdirilməsi
Avadanlıqların Kabelləşdirilməsi
Avadanlıqların Kabelləşdirilməsi
Avadanlıqların Kabelləşdirilməsi

Arduino naqilləri

Arduino, yuxarıdakı şəkillərdəki kimi çörək taxtasına bağlanmalıdır.

Basys 3 naqilləri

Arduinonun çıxışı Analog siqnal pmod JXADC portları vasitəsilə Basys 3 -ün girişləri ilə müqayisə olunur. 8 bitlik izləmə sürətinin hər bir biti yuxarıdakı şəkildə göstərilən pinlərdən birinə qoşula bilər. Ən kiçik bit (rəqəmsal pin 7) ts (7) və ən əhəmiyyətli bit (rəqəmsal pin 0) ts (0) ilə əlaqələndirilir.

Tövsiyə: