İçindekiler:

Hareket Sensörlü Işıklar Basys3: 8 Adım
Hareket Sensörlü Işıklar Basys3: 8 Adım

Video: Hareket Sensörlü Işıklar Basys3: 8 Adım

Video: Hareket Sensörlü Işıklar Basys3: 8 Adım
Video: Otonom Sürüş: Dünden Bugüne- Çetin Meriçli (Yapay Öğrenme Yaz Okulu 2020) 2024, Temmuz
Anonim
Hareket Sensörlü Işıklar Basys3
Hareket Sensörlü Işıklar Basys3
Hareket Sensörlü Işıklar Basys3
Hareket Sensörlü Işıklar Basys3
Hareket Sensörlü Işıklar Basys3
Hareket Sensörlü Işıklar Basys3

Dijital tasarımdaki son projemiz için, hareket sensörlü ışıkların simülasyonunu yapmaya karar verdik. Sadece yakınında bir nesne olduğunda değil, aynı zamanda günün belirli bir saatinde de etkinleşirler. Bunu FPGA (Basys3 kartı) kullanarak modelleyebiliyoruz. FPGA'yı kullanırken, bir kullanıcının hareket sensörlerinin etkinleştirilmeye başlayabileceği bir süre girmesine izin verdik ve ardından sensörler, hangi sensöre bağlı olarak bir sinyal gönderecek. o oda veya alandaki o belirli ışığı açmaktır. Bunu, belirli bir zamanda yalnızca bir hareket sensörünün etkinleştirilmesine izin vererek ve verilen ışıkları buna göre açarak modelledik. Zaman kısıtlaması nedeniyle, kullanıcı tarafından girilen sürenin hareket sensörünün aktivasyonunu etkilemesini sağlayamıyoruz. Ancak, mantığımızın temeli, birisinin onu kolayca kopyalamasına ve iyileştirmesine izin vermelidir.

### Aşağıdaki bağlantı, Projenin bir videosunu gösterir

drive.google.com/file/d/1FnDwKFfFFDo8mg25j1sW61lUyEqdavQG/view?usp=sharing

Adım 1: Gerekli Ekipman

Gerekli Ekipman
Gerekli Ekipman

Bu proje için aşağıdakilere ihtiyacınız olacak:

-Basys3 Kurulu

-USB'den microusb'a kablo

-8 breadboard atlama teli

-Breadboard

-2 dağınık LED

2. Adım: Kara Kutu Şeması/Sonlu Durum Makinesi

Kara Kutu Şeması/Sonlu Durum Makinesi
Kara Kutu Şeması/Sonlu Durum Makinesi
Kara Kutu Şeması/Sonlu Durum Makinesi
Kara Kutu Şeması/Sonlu Durum Makinesi

Bu kara kutu şeması, led ışıkların yanması için gereken girişleri gösterir. Saat girişi ve Min girişleri, kullanıcının basys3 kartına (anahtarları kullanarak) girdiği süreyi temsil eder. Gibi, sw girişi, oda kullanıcısının hangi kısmında olduğunu temsil eder (yine konum nesnesini temsil etmek için anahtarları kullanarak).

FSM, belirli bir zamanda bir nesnenin bulunduğu bir odanın bir alanından başka bir alanına geçişi gösterir. Farklı odalarda (s1, s2, s3, s4) olarak temsil edilen 4 farklı sensör bulunmaktadır. Çıkışları veya farklı odalardaki ışıkları kontrol eden, örneğin ışık (L1, L2, L3). İlk durumda sensörler kimseyi algılamaz, bu nedenle tüm ışıklar kapalıdır. Bir sonraki duruma (Durum 1) geçmek için s1'in birini algılaması gerekir, s2, s3 ve s4 kapalı olacaktır. Bu, L1 çıkışı verecektir (ışık 1'i açın), L2 ve L3 kapalı olacaktır. Durum 1'den durum 2'ye geçmek için s1, s3 ve s4 kapalı, s2 açık olmalıdır. Bu, L1 ve L2'yi açacaktır. Bu durumdan bir sonraki duruma geçmek için s3 açık ve diğer tüm sensörler kapalı olmalıdır. Bu L2 ve L3'ü açacak, L1 kapanacaktır. Son duruma geçmek için S4 açık olmalı ve diğer tüm sensörler kapalı olmalıdır. Bu sadece L3'ü açar, diğer tüm ışıklar söner. Bir kişi odaya s4 tarafından girip s1'den çıkarsa tüm adımlar ters sırada olacaktır.

3. Adım: BlackBox Dijital Saati

BlackBox Dijital Saat
BlackBox Dijital Saat

Oluşturduğumuz dijital saatin amacı, sensör ışıklarının gün içinde aktif olmaması ve sadece kullanıcının girdiği süre boyunca çalışmasını sağlamaktır. Dijital saat, basys3 kartındaki anahtarları kullanarak hour_in girişini ve mins_in'i alır ve karta yükleyebilmek için (led_btn) tuşuna basmanız gerekir, böylece kartta görüntülenecektir. Ayrıca farklı bir zamanda yeniden yükleyebilmeniz için sıfırlama düğmesi(rst_b) ekledik. basys3, 3 farklı bilgi örneğini görüntülemek için yeterli alana sahip olduğundan, saniyeleri arka planda uyguladık. Bu amaçla, bir saniye anahtarı uyguladık, böylece yalnızca kullanıcı basys3 kartındaki (e_sec) girişini açmaya karar verdiğinde zamanla artacaktır. Dijital saatin içindeki dahili çerçeve çalışması, girilen zamanı depolayan flip-flop'lardan ve yalnızca (e_sec) açıkken kullanıcının girdiği zamanı artıran sayaçlardan oluşur. Tam olarak nasıl uygulandığını görebilmeniz için kodu ekleyeceğiz.

Adım 4: Bileşenler Bir Arada ve Açıklama

Bileşenler Birlikte ve Açıklama
Bileşenler Birlikte ve Açıklama
Bileşenler Birlikte ve Açıklama
Bileşenler Birlikte ve Açıklama

Yukarıdaki resimler bileşenlerin birbirine nasıl bağlandığını göstermektedir. İlk önce saat ve dakika girdilerini alarak başlar. Bu girişlerden gelen sinyaller, bitleri topladığı sayaç saatine ve sayaç dakikasına gönderilir ve sayaç çıkış sinyali, bitleri basys3 kartında görüntülenecek belirli karakterlere dönüştürdüğü SSEG bileşenine gönderilir. Ancak, kullanıcı giriş(led_btn) tuşuna basana kadar sayaçlardan gelen sinyal SSEG bileşenine gönderilmeyecektir, çünkü bu, dijital saat için FSM oluşturmadığımız için yapılmıştır. Ayrıca, giriş anahtarı(e_sec) açık olana kadar girilen süre artmaz çünkü aksi takdirde saniye sayacı her zaman arka planda çalışır. Sayaç saniyesi '59'a ulaştığında dakikalara sinyal göndererek dakikaları artırarak dakikalardan saatlere kadar aynı işlemi yapar. Ayrıca, hareket sensörü girişleri vardır ve sinyaller, sensöre bağlı olarak hangi duruma gideceğini belirlediği FSM bileşenine gönderilir. Başlangıç durumu, tüm sensörlerin kapalı olduğu durumdur. FSM'nin tüm açıklamaları 2. adımda açıklanmıştır.

Adım 5: Kod

Adım 6: Gelecekteki Değişiklikler

Gelecekte projeye LED kombinasyonlu gerçek hareket sensörleri eklemek iyileştirme olacaktır. Böylece projenin karmaşıklığını artırabiliriz ve modern bir hareketli ışık sensörü oluşturup oluşturamayacağımızı görebiliriz. Işıkların buna göre yanması için nesnenin yakınlığını da düşünmeniz gerekeceğinden, bu daha fazla sorun yaratacaktır. Ayrıca, diğer tüm işlevler önceliklidir. Ayrıca, kullanıcının saniyeler içinde açılmasını beklemek (e_sec) yerine bir FSM kullanarak dijital saatin işlevselliğini de geliştirmek. Dijital bir saat için FSM, hareket sensörününkine benzer olacaktır.

7. Adım: Sonuç

Genel olarak, bu proje sonlu durum makinelerinin nasıl çalıştığını daha iyi anlamamıza yardımcı oldu. Ek olarak, FSM ile hangi durumda olduğunuzu ve ne zaman başka bir duruma geçmek istediğinizi bilmeniz gerektiğini her zaman aklınızda bulundurmalısınız. Başka bir deyişle, belirli bir zamanda nerede olduğunuzu ve daha sonra nerede olacağınızı bilmeniz gerekir. Hangi faktörlerin size (girdiler) başka bir duruma geçmenize izin vereceğini ve oraya vardığında ne yapacağını (çıktı) akılda tutmak. Ayrıca, kayıtlar olan flip-flop'ları kullanarak basys3 kartında bilgiyi nasıl depolayacağımızı ve ikili sayıları bir araya toplayan sayaçları kullanarak zamanı nasıl artıracağımızı öğrendik.

Adım 8: Atıf

Two_sseg.vhdl = universal_sseg_dec.vhd

Ratner, James ve Cheng Samuel.. Ratface Engineering.universal_sseg_dec.vhd

Önerilen: