Sisällysluettelo:
- Vaihe 1: Tarvittavat laitteet
- Vaihe 2: Blackbox -kaavio/äärellinen tilakone
- Vaihe 3: BlackBox -digitaalikello
- Vaihe 4: Komponentit yhdessä ja kuvaus
- Vaihe 5: Koodi
- Vaihe 6: Tulevat muutokset
- Vaihe 7: Johtopäätös
- Vaihe 8: Kansalaisuus
Video: Liiketunnistimen valot Basys3: 8 askelta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
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
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
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
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
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:
Liiketunnistimen ovikello: 5 vaihetta (kuvilla)
Liikkeentunnistimen ovikello: Kun kerroin pojalleni Jaydenille haasteesta, hän ajatteli heti käyttää LEGO WeDo -sarjaa. Hän on pelannut Legoilla vuosia, mutta vasta viime lukuvuoden alussa hän sai mahdollisuuden koodata WeDo 2.0: lla
Hälytys makuuhuoneeseen, jossa on valot ja äänet !: 6 askelta
Hälytys makuuhuoneeseen, jossa on valot ja äänet!: Hei, tänään näytän sinulle, kuinka tehdä hälytys makuuhuoneesi ovelle Arduino UNO: n avulla
Lasi-valot!: 5 askelta
Lasi-valot !: Tarvitsetko apua näkemiseen pimeässä? Tämä on yksinkertainen mutta hyödyllinen laite niille, jotka saattavat tarvita enemmän valoa sekä päivällä että yöllä. Olipa kyseessä kirjan lukeminen klo 11.00. häiritsemättä perhettäsi tai etsimällä tietä
Liiketunnistimen aktivoitu turhamaisuusvalo: 6 vaihetta
Liiketunnistimen aktivoitu turhamaisuusvalo: Ostin infrapuna -liiketunnistinyksikön eBayssa 1,50 dollarilla ja päätin käyttää sitä hyväksi. Olisin voinut tehdä oman liiketunnistinkortin, mutta hintaan 1,50 dollaria (joka sisältää 2 leikkausastiaa herkkyyden ja sammutusajastimen säätämiseksi) se ei auttaisi
DIY rusetti --- valot !!: 9 askelta (kuvilla)
DIY Rusetti --- Valoilla !!: Nämä sopivat erinomaisesti häihin, juhliin, erityistapahtumiin, iltoihin ja milloin tahansa haluat olla huoneen tyylikkäin henkilö! ? Älä myöskään ole ujo tyttöjä, voit myös keinuttaa kevyesti solmua:) Photo Cred