İçindekiler:
- Adım 1: Gerekli Ekipman
- 2. Adım: Kara Kutu Şeması/Sonlu Durum Makinesi
- 3. Adım: BlackBox Dijital Saati
- Adım 4: Bileşenler Bir Arada ve Açıklama
- Adım 5: Kod
- Adım 6: Gelecekteki Değişiklikler
- 7. Adım: Sonuç
- Adım 8: Atıf
Video: Hareket Sensörlü Işıklar Basys3: 8 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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
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
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
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
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:
Arduino ve Solenoid Valf Kullanan Hareket Sensörlü Su Musluğu - Kendin Yap: 6 Adım
Arduino ve Solenoid Valf Kullanarak Hareket Sensörlü Su Musluğu - Kendin Yap: Bu projede, bir Solenoid Valf kullanarak Hareket Sensörlü Su Musluğunun nasıl oluşturulacağını göstereceğim. Bu proje, mevcut manuel su musluğunuzu hareket algılamaya dayalı olarak kontrol edilebilen bir musluğa dönüştürmenize yardımcı olabilir. IR sensör arayüzünü kullanarak
Hareket Sensörlü Kapı Zili: 5 Adım (Resimlerle)
Hareket Sensörlü Kapı Zili: Oğlum Jayden'e meydan okumadan bahsettiğimde, hemen LEGO WeDo setini kullanmayı düşündü. Yıllarca Legolarla oynadı ama geçen okul yılının başına kadar WeDo 2.0 ile kodlama fırsatı bulamamıştı
Ultrasonik Sensörlü ve Temassız Sıcaklık Sensörlü Arduino Arabirimi: 8 Adım
Ultrasonik Sensör ve Temassız Sıcaklık Sensörü ile Arduino Arabirimi: Günümüzde, Yapımcılar, Geliştiriciler, projelerin prototiplerinin hızlı bir şekilde geliştirilmesi için Arduino'yu tercih ediyor. Arduino, kullanımı kolay donanım ve yazılıma dayalı açık kaynaklı bir elektronik platformdur. Arduino'nun çok iyi bir kullanıcı topluluğu var. Bu projede
DIY: Odaklanabilir Hareket Sensörlü Tavana Monte Mini Sensör Kutusu: 4 Adım
DIY: Odaklanabilir Hareket Sensörlü Tavana Monte Mini Sensör Kutusu: Merhaba. Bir süre önce akıllı ev konsepti ile arkadaşıma yardım ediyordum ve 40x65mm deliğe tavana monte edilebilen özel tasarımlı bir mini sensör kutusu oluşturdum. Bu kutu aşağıdakilere yardımcı olur:• ışık yoğunluğunu ölçmek• nemi ölçmek
Hareket Sensörü/Sayaç Kontrollü Işıklar: 7 Adım
Hareket Sensörü/Sayaç Kontrollü Işıklar: Bu proje, Cal Poly, San Luis Obispo'da (CPE 133) Dijital Tasarım kursu için bir bitirme projesi olarak oluşturulmuştur. Bunu neden yapıyoruz? Dünyadaki doğal kaynakların korunmasına yardımcı olmak istiyoruz. Projemiz elektrik tasarrufuna odaklanıyor. Daha fazla ele tasarruf ederek