Sisällysluettelo:

Liiketunnistimen valot Basys3: 8 askelta
Liiketunnistimen valot Basys3: 8 askelta

Video: Liiketunnistimen valot Basys3: 8 askelta

Video: Liiketunnistimen valot Basys3: 8 askelta
Video: Capri, Italy Evening Walk 2023 - 4K60fps with Captions 2024, Marraskuu
Anonim
Liiketunnistimen valot Basys 3
Liiketunnistimen valot Basys 3
Liiketunnistimen valot Basys 3
Liiketunnistimen valot Basys 3
Liiketunnistimen valot Basys 3
Liiketunnistimen valot Basys 3

Digitaalisen suunnittelun viimeisessä projektissamme päätimme simuloida liiketunnistimien valot, jotka aktivoituvat paitsi kohteen ollessa lähellä, mutta myös aktivoituvat vain tietyn vuorokaudenajan. Pystymme mallintamaan tämän käyttämällä FPGA: ta (Basys3 -korttia). FPGA: n käytön aikana annoimme käyttäjän syöttää ajan, jolloin liikeanturit voivat alkaa aktivoitua, ja sitten anturit lähettävät signaalin sen mukaan, mikä anturi se on on sytyttää kyseinen valo kyseisessä huoneessa tai alueella. Mallinnimme tämän sallimalla vain yhden liiketunnistimen aktivoitumisen tiettynä aikana ja kytkemällä annetut valot vastaavasti. Ajanrajoitusten vuoksi emme voi saada käyttäjän syöttämää aikaa vaikuttamaan liikeanturin aktivointiin. Logiikkamme perustan pitäisi kuitenkin antaa jonkun helposti kopioida ja parantaa sitä.

### Alla olevasta linkistä näet videon projektista

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

Vaihe 1: Tarvittavat laitteet

Tarvittavat laitteet
Tarvittavat laitteet

Tätä projektia varten tarvitset seuraavat:

-Basys3 Board

-USB -microusb -kaapeli

-8 leipälevyn hyppyjohtoa

-Leipälauta

-2 hajautettua LEDiä

Vaihe 2: Blackbox -kaavio/äärellinen tilakone

Blackbox -kaavio/äärellinen tilakone
Blackbox -kaavio/äärellinen tilakone
Blackbox -kaavio/äärellinen tilakone
Blackbox -kaavio/äärellinen tilakone

Tämä mustan laatikon kaavio näyttää LED -valojen syttymiseen tarvittavat tulot. Tunnitulo ja minitulot edustavat aikaa, jonka käyttäjä on syöttänyt basys3 -kortille (kytkimillä). Kuten sw -tulo esittää, missä osassa tilaa käyttäjä on (jälleen käyttämällä kytkimiä osoittamaan sijaintiobjekti on).

FSM näyttää siirtymisen huoneen toiselta alueelta toiselle alueelle, jossa kohde sijaitsee tiettynä ajankohtana. Eri huoneissa on 4 erilaista anturia, jotka on esitetty (s1, s2, s3, s4). Mitkä ohjaavat lähtöjä tai eri huoneiden valoja, esimerkiksi valoa (L1, L2, L3). Alkutila anturit eivät havaitse ketään, joten kaikki valot ovat sammuneet. Siirtyäkseen seuraavaan tilaan (tila 1) s1: n on tunnistettava joku, s2, s3 ja s4 ovat pois päältä. Tämä lähettää L1 (sytytä valo 1), L2 ja L3 sammuvat. Jos haluat siirtyä tilaan 2 tilasta 1, s1, s3 ja s4 on oltava pois päältä, s2 on oltava päällä. Tämä kytkee päälle L1 ja L2. Siirtyäksesi seuraavaan tilaan tästä tilasta s3: n on oltava päällä ja kaikki muut anturit pois päältä. Tämä kytkee päälle L2 ja L3, L1 on pois päältä. Lopulliseen tilaan siirtymiseksi S4: n on oltava päällä ja kaikkien muiden antureiden on oltava pois päältä. Tämä kytkee päälle vain L3, kaikki muut valot sammuvat. Jos henkilö tulee huoneeseen s4 -puolelta ja poistuu s1: n kautta, kaikki vaiheet ovat päinvastaisessa järjestyksessä.

Vaihe 3: BlackBox -digitaalikello

BlackBox digitaalinen kello
BlackBox digitaalinen kello

Luomamme digitaalisen kellon tarkoitus on, että anturivalot eivät syty päivällä ja toimivat vain käyttäjän syöttämän ajan. Digitaalinen kello ottaa käyttöön tunnin_tulon ja minuutit_in basys3 -kortin kytkimillä, ja jotta voit ladata sen levylle, paina (led_btn) -painiketta, jotta se näyttää sen aluksella. Lisäsimme myös nollauspainikkeen (rst_b), jotta voit ladata eri ajan uudelleen. Koska basys3: lla on tarpeeksi tilaa näyttää kolme erilaista informaatiotapahtumaa, toteutimme sekunnit taustalla. Tätä varten otimme käyttöön sekuntikytkimen, joten se kasvaa vain ajan kuluessa, kun käyttäjä päättää kytkeä (e_sec) -tulon päälle basys3 -kortilla. Digitaalisen kellon sisäinen kehys koostuu varvastossuista, jotka tallentavat syötetyn ajan, ja laskureista, jotka lisäävät käyttäjän syöttämää aikaa vain, kun (e_sec) on käytössä. Lisäämme koodin, jotta voit nähdä, miten se toteutettiin tarkasti.

Vaihe 4: Komponentit yhdessä ja kuvaus

Komponentit yhdessä ja kuvaus
Komponentit yhdessä ja kuvaus
Komponentit yhdessä ja kuvaus
Komponentit yhdessä ja kuvaus

Yllä olevat kuvat osoittavat, kuinka komponentit on kytketty yhteen. Se alkaa syöttämällä ensin tunteja ja minuutteja. Näiden tulojen signaalit lähetetään laskurin tunti- ja laskuriminuuteihin, joissa se laskee bitit yhteen, ja laskureiden lähtösignaali lähetetään SSEG -komponenttiin, jossa se muuntaa bitit tietyiksi merkeiksi, jotka näytetään basys3 -kortilla. Laskureiden signaalia ei kuitenkaan lähetetä SSEG -komponentille ennen kuin käyttäjä on painanut tuloa (led_btn). Tämä on tehty, koska emme luoneet digitaalisen kellon FSM: ää. Syötetty aika ei myöskään kasva ennen kuin tulokytkin (e_sec) on päällä, koska muuten sekuntien laskuri toimisi aina taustalla. Kun laskurin sekunti on saavuttanut '59', se lähettää signaalin minuutteihin niin, että se kasvaa minuutteina samalla tavalla kuin minuutista tuntiin. Lisäksi on olemassa liikeanturin tuloja, ja signaalit lähetetään FSM -komponenttiin, jossa se määrittää, mihin tilaan mennä sen mukaan, mikä anturi on päällä. Sen alkutila on, kun kaikki anturit ovat pois päältä. Kaikki FSM: n kuvaus on kuvattu vaiheessa 2.

Vaihe 5: Koodi

Vaihe 6: Tulevat muutokset

Tulevaisuudessa todellisten liiketunnistimien ja LED -yhdistelmien lisääminen projektiin olisi parannusta, jotta voimme lisätä hankkeen monimutkaisuutta ja nähdä, voisimmeko luoda nykyaikaisen liikevaloanturin. Tämä aiheuttaisi enemmän ongelmia, koska sinun on myös ajateltava kohteen läheisyyttä, jotta valot syttyvät vastaavasti. Lisäksi kaikki muut toiminnot ennen. Myös digitaalisen kellon toimivuuden parantaminen FSM: n avulla sen sijaan, että odotettaisiin käyttäjän käynnistyvän sekuntia (e_sec). Digitaalisen kellon FSM olisi samanlainen kuin liikeanturi.

Vaihe 7: Johtopäätös

Kaiken kaikkiaan tämä projekti on auttanut meitä ymmärtämään paremmin äärellisten tilakoneiden toimintaa. Lisäksi FSM: n kanssa sinun on aina pidettävä mielessä, että sinun on tiedettävä, missä tilassa olet ja milloin haluat vaihtaa toiseen tilaan. Toisin sanoen, sinun on tiedettävä, missä olet tiettynä ajankohtana ja missä olet myöhemmin. Pidä mielessä, mitkä tekijät mahdollistavat sinun (panosten) siirtymisen toiseen tilaan ja mitä se aikoo tehdä, kun se saavuttaa sen (ulostulo). Opimme myös, miten tiedot tallennetaan basys3-levylle käyttämällä flip-floppeja, jotka ovat rekistereitä, ja kuinka lisätä aikaa käyttämällä laskureita, jotka lisäävät binäärilukuja yhteen.

Vaihe 8: Kansalaisuus

Two_sseg.vhdl = universal_sseg_dec.vhd

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

Suositeltava: