Mündəricat:
- Addım 1: Verilmiş VHDL Fayllarını İdxal edin
- Addım 2: VHDL Üst Modulunun Dağılımı
- Addım 3: VHDL Kill Switch Modulunun pozulması
- Addım 4: VHDL Flip Flop Modulunun pozulması
- Addım 5: VHDL Piezo Buzzer Modulunun pozulması
- Addım 6: VHDL məhdudiyyətlər faylının parçalanması
- Addım 7: Baza qurmaq 3
- Addım 8: VHDL fayllarını Basys 3 -ə tətbiq edin
- Addım 9: Basys 3 lövhəsindən istifadə edin
- Addım 10: Göstər
Video: Universal söndürmə cihazı modeli: 10 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Yatmazdan əvvəl evinizdəki bütün işıqların söndüyünü yoxlamaqdan bezmisiniz? Hər işığı bir anda narahat etmədən söndürmək istərdinizmi? Güc və vaxta qənaət etmək üçün nəzəri olaraq bütün evi bir anda bağlaya biləcək bir sistem yaratmağa qərar verdik.
Bir neçə LED və basys 3 elektrik lövhəsindən istifadə edərək bu konsepsiyanın sübutunu modelləşdirdik və bir düyməyə basmaqla bütün LED -ləri deaktiv edəcək bir dizayn yaratdıq. Bu model, verilmiş VHDL sənədlərində daha mürəkkəb naqillər və dəyişikliklər tələb etsə də, həqiqi ev işıqlandırma sisteminə də tətbiq oluna bilər.
Addım 1: Verilmiş VHDL Fayllarını İdxal edin
Modelimizin düzgün işləməsi üçün Basys 3 lövhəsinə təlimatları verən proqramı yükləməlisiniz.
Əvvəlcə vhdl fayllarını aparata tətbiq etmək üçün bir sintez vasitəsi yükləməlisiniz. Bütün kodların heç bir dəyişikliyə ehtiyac olmadan dizaynımızı tam şəkildə təkrarlayacağından əmin olmaq istəyirsinizsə, Vivado 2016.2 -dən istifadə etməyi məsləhət görürük. Vivado'yu qurduqdan sonra bir layihə yarada və mənbə fayllarımızı yükləyə bilərsiniz. Onları layihənizə mənbə olaraq əlavə edin, məhdudiyyətlər faylını da əlavə etməyi unutmayın!
Sonra mənbə fayllarının hər birinin nə etdiyini izah edəcəyik. Yalnız cihazın fiziki quruluşuna çatmaq istəyirsinizsə, 2 ilə 6 arasındakı addımları atlayın.
Addım 2: VHDL Üst Modulunun Dağılımı
Layihənin ən yüksək modulu, bütün fərdi komponent modullarını istifadə olunan aparata bağlayan şeydir. Gördüyünüz kimi, üst hissədə komponentlər olaraq təyin edilmiş killSwitch və buzzerControl modullarımız var.
Aşağı hissədə bu modulların bir -birinə necə bağlı olduğu göstərilir. Lövhəyə dörd LED bağladıq və dev3 -dən dev3 -ə qədər killSwitch modulları ilə əlaqələndirdik. Dörd killSwitch modulu var, çünki hər bağlı LED -in vəziyyətini idarə etmək üçün birinə ehtiyacımız var. Bu modulların hər biri, üst modul tərifində yaratdığımız saat və düymə siqnalını, həmçinin müvafiq giriş açarını və çıxış cihazı siqnallarını istifadə edir.
Aşağıdakı səs siqnalı idarəetmə modulu, universal söndürmə düyməsinə basıldıqda səs siqnalı işə düşür. Gördüyünüz kimi səs siqnalı idarəetmə modulu giriş olaraq saat və düymə siqnalından keçir. Buna uyğun olaraq nəzarət etmək üçün fiziki səs siqnalı çıxış pinindən də keçir.
Addım 3: VHDL Kill Switch Modulunun pozulması
Kill Switch universal söndürmə düyməsidir və modul ilk növbədə onu digər dövrə elementlərinə bağlamaqla bağlıdır ki, basıldıqda bütün işıqlar sönəcək.
Üst modul fiziki aparatı proqrama bağlamağı idarə edərkən, killSwitch modulu hər bir cihazın əsas məntiqini idarə edir. Modul, saat siqnalı, universal söndürmə düyməsi və cihaz keçid açarı üçün girişlər alır. Bunun müqabilində qoşulduğu cihaz pininin vəziyyətinə nəzarət edir.
Kodun memarlıq bölməsində, yaddaşı saxlamaq üçün dFlipFlop modulundan asılı olduğunu görürük. Flip flopu bağlamaq və məntiq ifadələrimizi həyata keçirmək üçün istifadə ediləcək dörd siqnal elan etdiyimizi də görə bilərsiniz. Kodun davranış bölməsində dFlipFlop modulunun bir nümunəsini yaratdıq və G/Ç siqnallarımızı limanlara təyin etdik.
Buradan məntiqimizin əsas hissəsi invertState və isDevOn üçün siqnal dəyərlərindədir. Cihaz üçün məntiqi əsaslarımız belədir: "Açar hər dəfə atıldıqda işıq onun açma/söndürmə vəziyyətini dəyişəcək. Düyməyə hər dəfə basıldıqda və LED hazırda yanarsa LED öz vəziyyətini söndürəcək. " Bu iki ifadədən, LED -in vəziyyətinin açarın XOR və yaddaş elementimiz olması lazım olduğunu öyrənə bilərik. Bunu isDevOn siqnalında həyata keçirmək olar. Yaddaş elementi üçün LED şərti invertState siqnalımızla idarə olunur. LED yanarsa və düyməyə basılarsa, yaddaş elementimiz vəziyyətini yeniləyəcək və tərsinə çevirəcək. Bu da LED -in vəziyyətini dəyişir.
Addım 4: VHDL Flip Flop Modulunun pozulması
Dizaynımızdakı bir problem, söndürmə açarını istifadə etdikdən sonra, əvvəlki vəziyyətə qayıtmaq üçün əvvəllər yanan işıqların iki dəfə çevrilməsi lazım ola bilər. Bu zamanla insanlar üçün olduqca narahatlıq olardı. Dizaynımıza məlumat saxlaya bilən bir dövrə elementi olan "Flip Flop" daxil edərək bu narahatçılığı aşa bildik. İndi sistem bir işıq açarının əvvəllər açılıb -açılmadığını xatırlayır, belə ki, yenidən döndərilsə, başlanğıc mövqeyindən asılı olmayaraq açılır.
VHDL kodu, dövrə dizaynımızda bir komponent olaraq Flip Flop yaratmaq üçün if və else ifadələrindən istifadə edir. Saat siqnalı alçaqdan yüksək vəziyyətə keçəndə, ampul yandıqda və söndürmə düyməsinə basıldıqda flip flop çıxışı onun girişinin üzərinə yazılmasını təmin edir. Giriş yazıldıqda flip flop tərsinə çevrilir.
Addım 5: VHDL Piezo Buzzer Modulunun pozulması
Bu fayl, hardware dizaynına gəldikdə bir az artıqdır, lakin üst modulun və məhdudiyyət fayllarının düzgün işləməsini təmin etmək vacibdir. Piezo səs siqnalını istifadə etməməyi seçsəniz, bu faylı yükləyin, ancaq zil səsini Basys 3 lövhəsinə yapışdırmayın.
Piezo səs siqnalı, deaktiv etmək düyməsini basdıqda, istifadəçiyə düyməni basıldığını eşitmə rəyi ilə təmin edəcək iki not tonu çalacaq. Bunu VHDL -də bir proses quruluşundakı bir sıra if ifadələri vasitəsi ilə həyata keçirdik. Neçə saat dəyişikliyinin baş verdiyini izləmək üçün tam ədəd yaratmaqla başladıq. Proses başladıqdan sonra proqram ilk yarım saniyəni (0 ilə 50 milyon saat arasında) 440 hertzlik bir A notu çıxarmağa sərf edir. Bu, piezo səs siqnalının 227272 saat işarəsinin hər birindən çoxunu modulo funksiyası ilə ters çevirməklə əldə edilir. Bu rəqəm, lövhənin saat siqnalının (100 MHz) istənilən frekansa (400 Hz) bölünməsinin nəticəsidir. İkinci yarım saniyə ərzində (50 ilə 100 milyon saat), lövhə əvvəlki üsulla 349.2 hertz səviyyəsində bir F notu çıxarır. Bir saniyədən sonra proqram saat dəyişənini daha da artırmır və piezo səs siqnalından bir şey çıxarmağı dayandırır. Universal söndürmə düyməsinə yenidən basaraq səs -küy dövrünü yenidən başlataraq bu nömrəni 0 -a qaytarır.
Addım 6: VHDL məhdudiyyətlər faylının parçalanması
Məhdudiyyətlər faylı Vivadoya Basys 3 lövhəsində hansı cihazlardan istifadə etdiyimizi bildirir. Vivadoya kodumuzdakı cihazlara verdiyimiz adları da təqdim edir. Vivadonun bu məlumatlara ehtiyacı var, buna görə də məntiqi elementlərimizi fiziki qurğulara necə bağlayacağımızı bilir. Məhdudiyyətlər sənədinə çoxlu şərh edilmiş (istifadə olunmamış) kod daxildir. Bu kod xətləri istifadə etmədiyimiz lövhədəki cihazlara istinad edir.
İstifadə etdiyimiz qurğularda lövhədə V17, V16, W16 və W1 etiketli dörd giriş açarı var. U18 etiketli universal söndürmə düyməsindən də istifadə edirik. Dörd bağlı LED üçün çıxış pinləri JB4, JB10, JC4 və JC10 -dur. Piezzo buzzerimiz üçün JA9 çıxış pinindən istifadə edirik.
Üst modul parçalanmasında qeyd etdiyimiz kimi, lövhəyə əlavə LED və ya digər qurğular əlavə etmək istəyirsinizsə, sw və dev siqnallarının əhatə dairəsini artırmalı, daha çox killSwitch modulu əlavə etməli və onları bir -birinə bağlamalısınız. Daha sonra məhdudiyyətlər faylı vasitəsi ilə bu dəyişən adları cihaz aparatına bağlamalısınız. Bu, istifadə etmək istədiyiniz sancaqlar ilə əlaqəli kod sətirlərini şərh etmədən (yenidən aktivləşdirərək) və üst modulda əlaqəli dəyişənin adını əlavə etməklə edilə bilər. Bunun üçün uyğun sintaksis istifadə etdiyimiz cihazlardan kopyalana bilər. Lövhədə istifadə etmək istədiyiniz pinlərin adlarını öyrənmək üçün buradakı Baasys 3 istinad kitabçasına baxın.
Addım 7: Baza qurmaq 3
LED -lərinizi Basys 3 -ün düzgün I/O portlarına bağlamalısınız. Doğru portların nə olduğunu müəyyən etmək üçün təqdim olunan şəkilləri izləyin, çünki LED -i səhv porta bağlasanız yanmaz. Piezo səs siqnalı bağlamağı seçmisinizsə, onu da düzgün I/O portlarına bağlamalısınız.
Lövhə hazır olduqda, USB kabel vasitəsilə kompüterinizə qoşun.
Addım 8: VHDL fayllarını Basys 3 -ə tətbiq edin
Lövhəniz hazır və kodunuz bitdikdən sonra nəhayət modeli birləşdirə bilərsiniz.
Layihənizi Vivadoda qurduqdan sonra, kodu lövhəyə yükləməzdən əvvəl tərtib etmək üçün "Bitstream Yarat" düyməsini basmalısınız. Bu anda bir səhv mesajı alsanız, kodunuzun bizimlə tam uyğun olduğunu iki dəfə yoxlamalısınız. Tam olaraq dediyim zaman, hətta nöqtəli vergülləri və ya istifadə olunan mötərizə növlərini nəzərdə tuturam. Bit axınınız uğurla yazıldıqdan sonra Vivadodakı aparat menecerinə gedin və "Hədəfi Aç" düyməsini, sonra dərhal "Proqram Cihazı" nı basın. Basys 3 lövhəniz artıq tam işlək vəziyyətdə olmalıdır.
Addım 9: Basys 3 lövhəsindən istifadə edin
İndi Basys 3 Board işlək vəziyyətdədir və modelimizi təmsil etmək üçün proqramlaşdırılmışdır, ondan necə istifadə edəcəyinizi bilməlisiniz.
Sağdan ən uzaqdakı dörd açarın hər biri LED -lərdən birini idarə edir, onları sürüşdürmək LED -in açılmasına və ya sönməsinə səbəb olacaq. LED aktiv deyilsə, düzgün I/O portuna qoşulduğunuzu və LEDinizin ilk növbədə işlək olduğunu yoxlayın.
Bir anda bütün LED -ləri söndürmək istəsəniz, yuxarıdakı beş düymənin ortasındakı düyməni basmalısınız.
Addım 10: Göstər
Model, dostlarınız və ailəniz qarşısında nümayiş etdirə biləcəyiniz səliqəli kiçik bir yenilik kimi xidmət edir. LEDləri işıqlarınıza aparan tellərlə əvəz etsəniz, nəzəri olaraq ev elektrik sisteminizə universal söndürmə açarını tətbiq etmək üçün də istifadə edilə bilər. Mümkün olsa da, bunun əleyhinə məsləhət verməli olacağıq. Bir elektrikçinin köməyi olmadan yenidən bağlamağa çalışarsanız özünüzə və ya evinizə ciddi zərər vurma potensialınız var.
Tövsiyə:
Mobil Tam Şarj Avtomatik Söndürmə: 20 addım
Mobile Full Charge Autooff: Tam doldurulduqda cib telefonu avtomatik olaraq kəsilir. Gecə buraxsanız belə batareyanın ömrü ilə əlaqədar narahat olmayın. Mobil telefonlar batareyalarla işləyir. Batareyaların istifadəsi əlverişli olsa da, onların istifadəsi də bəzi tədbirlərə ehtiyac duyur. Bir ana
Raspberry Pi üçün söndürmə düyməsi: 3 addım
Raspberry Pi üçün söndürmə düyməsi: Raspberry Pi, müxtəlif IoT/robot/ağıllı ev/… layihə tətbiqləri yaratmağa imkan verən çox faydalı bir hesablama platformasıdır. Normal bir kompüterlə müqayisədə sahib olmadığı bir şey, bağlama gücünü kəsmə düyməsidir. Elə isə necə yarada bilərik
Açma/söndürmə açarı ilə asan bağlanan dövrə fanatı: 3 addım
Açma/söndürmə anahtarı olan Asan Snap Circuit Fan: Bu snap sxemləri istifadə edərək asan bir layihədir --- bəyəndiyinizə ümid edirik! Bu layihə əylənmək üçündür və bəlkə də soyumağınıza kömək edə bilər. Həqiqətən belə işləmir, amma hey, bu təhsillidir! P.S. Bu layihə yalnız nümayişsiz yeni başlayanlar üçündür
Blink Caos: Təsadüfi Yanıp Söndürmə: 5 Addım
Təsadüfi Blink: Təsadüfi Yanıp Söndürmə: İstifadəçilər üçün təlimat verilə bilməzsə, hər hansı bir məlumatı daxil etmək üçün istifadə edin. İstifadəçi məlumatlarını əldə etmək üçün bu səhifəni açmaq lazımdır. İstifadəçilərə təqdim olunan xidmətlər
Öz -özünə hazırlanmış açma/söndürmə açarı olan Glimmer Jewels: 4 addım
Öz-özünə hazırlanmış açma/söndürmə açarı olan Glimmer Jewels: Cast & Juwel Parıltılı Üzükdən ilhamlanaraq " Make: Glow Make " Emily Coker və Kelli Townel tərəfindən sizə enerji qənaət edən bir alternativ göstərmək istərdim: Parıltı zərgərliklərini açaraq söndürə bilərsiniz, əsl parıltıya ehtiyacınızı ödəmək üçün