Sisällysluettelo:
- Vaihe 1: Mustan laatikon kaavio
- Vaihe 2: Hidas kello
- Vaihe 3: Laskuri
- Vaihe 4: Laskutunti
- Vaihe 5: Hälytys
- Vaihe 6: Yleinen seitsemän segmentin näytönohjain
- Vaihe 7: Linkitä tiedosto
- Vaihe 8: Arduino
- Vaihe 9: Kaapelin reititys
Video: Basys 3 herätyskello: 9 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Projektimme luo herätyskellon käyttämällä Basys 3 FPGA -korttia, Arduinoa ja kaiutinohjainkorttia. Käyttäjä voi syöttää nykyisen ajan kortille käyttämällä Basys 3: n 11 tulokytkintä ja lukita arvo käyttämällä levyn keskipainiketta. Käyttäjä voi sitten syöttää hälytysajan samoilla kytkimillä, mutta lukita hälytysajan painamalla vasenta painiketta. Jos syötät väärän ajan, nollauspainiketta (ylin painike) voidaan painaa ja nykyinen kellonaika ja herätysaika asetetaan 00:00. Käyttäjä voi sitten käynnistää kellon vasemmanpuoleisimmasta kytkimestä ja kytkeä hälytyksen päälle seuraavalla kytkimellä. Kun herätys on päällä, herätyskello antaa äänen, kun kellonaika ja asetettu herätysaika vastaavat toisiaan.
Vaihe 1: Mustan laatikon kaavio
Aloitimme projektimme piirtämällä mustan laatikon kaavion, joka visualisoi ohjelmamme tarvitsemat tulot ja lähdöt. Seuraavat ohjelmamme tulot, kuten 5-bittinen tulo (Hour_in), alustettiin määrittämään 24 tunnin aika, 6-bittinen (Min_in) tulo näytettäväksi enintään 60 minuuttia, nollaus (Rst_b) -painike, jonka avulla käyttäjä voi muuttaa aikatuloa, 1-bittinen tulo (alm_en), joka lataa hälytystulon, 1-bittinen tulo (alarm_sw) sammuttaa herätyskellon, kun se aktivoidaan, 1-bittinen tulo (e_sec), joka ohjaa laskurin sekuntia, 1-bittinen tulo (Led_btn), joka asettaa nykyisen ajan, ja lopuksi 1-bittinen tulo (clk), joka ohjaa Basys 3 -kortin näyttämää aikaa. Lähdöt ovat (alm_on), joka lähettää signaalin Arduinolle, sseg -ulostulo, joka näyttää syöttöajan Basys 3: ssa, ja anodilähtö, joka ohjaa, missä tulot näkyvät seitsemän segmentin näytössä.
Vaihe 2: Hidas kello
Hidas kello tai clock_div2 -tiedosto luo kellon, jonka taajuus on 2 Hz. Jos syötämme tämän kellon sekuntilaskurillemme, sekuntien arvo kasvaa yhdellä sekunnilla. Hidasta kelloa käytetään luomaan luotettava kellosignaali, joka vaihtuu alhaisesta korkeaseen kerran sekunnissa.
Vaihe 3: Laskuri
Komponenttilaskuri (minuutit ja sekunnit):
Minuuttien ja sekuntien perustoiminto on, että ne ovat laskureita. Minuuttilaskuri ottaa tulon (Vin), joka on signaali tuloista (Min_in), ja laskee sitten, kunnes haluttu tulo on syötetty. Sekunnit syöttävät vain kytkimen (e_Sec), koska sitä ei voida näyttää seitsemässä segmentissä, ja se laskee taustalla, kun kytkin on korkealla '1'. Molemmat antavat siellä arvon (Qout), ja sitten se tallennetaan (dataan), joka lähettää sen SSEG: lle, joka tehdään linkitystiedostossa. Lisäksi kun minuutit ja sekunnit saavuttavat arvot 59, ne nollataan ja niiden tulos on 1, jotta minuutteja/tunteja lisätään. Se voidaan myös yhdistää nollauksella (rst_b) niiden tuloihin.
Vaihe 4: Laskutunti
Komponenttien laskuritunti
Samoin minuutti- ja sekuntikomponenttien laskuriin tunti -komponentti ottaa vastaan syötteet s, kuten (Vin), joka on signaali linkitettävän tiedoston syötteestä (Hour_in), ja sillä on lähdöt, jotka on linkitetty samalla tavalla minuutteina ja sekunteina. Kun tuntimäärä saavuttaa 24 00, se nollautuu 00 00.
Vaihe 5: Hälytys
Hälytyksen.vhd-tiedosto koostuu d-flip-flopista, jotka ovat tallennuslaitteita, jotka voivat tallentaa digitaalista dataa. Hälytystiedostoa käytetään tallentamaan aika, jolloin hälytys aktivoidaan. Tuntien (5-bittinen syöttö) ja minuuttien (6-bittinen syöttö) tietojen tallentamiseksi meidän on leimattava hälytystiedostoomme 11 d-flip-floppia. Tätä varten meidän on ensin tuotava d-flip-flopien toimintaa ohjaava logiikka ja kartoitettava komponentit. Jokainen 11 d-flip-flopista tallentaa yhden bitin tietoja tuloista ja sallii tietojen yhdistämisen hälytystiedoston lähtöihin. Koska d-varvastossut tallentavat tietoja, voimme käyttää niitä myöhemmin, vaikka tulokytkimiä olisi muutettu.
Vaihe 6: Yleinen seitsemän segmentin näytönohjain
Yleinen seitsemän segmentin näytönohjain vastaanottaa kellon ja kellosarjan tulot ja voi lähettää ne taululla olevaan seitsemän segmentin näyttöön. Kuljettaja voi tulostaa kaksi erillistä lukua taululle kerrallaan. Käytimme tätä toimintoa näyttämään sekä tunti- että minuutti -ajan erikseen. Seitsemän segmentin näyttö pystyy aktivoimaan vain yhden numeron kerrallaan, joten sseg -tiedoston on käytettävä multipleksointia kaikkien ajan numeroiden näyttämiseen samanaikaisesti. Levyjen kellosignaali syötetään sseg -järjestelmään, jotta multipleksointiaika pysyy oikeana. Binaarinen binäärikoodattu desimaalikooderi on tarpeen tulojen muuntamiseksi tiedostoksi muotoon, joka voidaan tulostaa seitsemän segmentin näyttöön. Sseg -tiedoston lopputulos yhdistetään seitsemän segmentin näyttöön ja oikea aika näkyy näytössä.
Vaihe 7: Linkitä tiedosto
Linkitiedosto yhdistää kaikki muut ohjelman osat ja kartoittaa signaalit oikeaan paikkaan. Jokainen komponentti tuodaan ja näytetään tiedostossa. Signaaleja käytetään tiedon siirtämiseen yhdestä komponentista toiseen. Portin kartoitus seuraa yllä lueteltua mustan laatikon kaaviota. Linkitiedosto sisältää myös logiikan, joka ohjaa hälytyksen aktivoitumista. Suurin osa hankkeesta on jo tässä vaiheessa valmis. Jäljellä oleva työ on jokaisen signaalin reitittäminen oikeaan paikkaan.
Vaihe 8: Arduino
Arduinoa käytetään kaiuttimen aktivointiin sekä kaiuttimen kautta toistettavan nuotin sävyn ja keston säätämiseen. Arduino lukee digitaalisen signaalin Basys 3 -kortilta. Kun tämä signaali on korkea, arduino lähettää PWM -signaalin, joka ohjaa hälytyksen sävyä ja kestoa. Arduino -lähtösignaali yhdistyy kaiutinelementin tulosignaaliin, mikä lisää kaiuttimen äänenvoimakkuutta. Arduino tekee tämän prosessin erittäin nopeasti toistamalla monta kertaa sekunnissa.
Vaihe 9: Kaapelin reititys
Arduino- ja Basys 3 -kortit on yhdistettävä fyysisesti signaalien siirtämiseksi levyjen välillä. Ensimmäinen johdin on Basys 3: n JA PMOD: n maadoitusnasta arduinon maadoitusnastaan. Liitä seuraavaksi johto Basys 3: n JA PMOD -nastan 1 liittimestä arduinon digitaaliseen nastaan 7. Liitä seuraavaksi kaksi maadoituspistettä arduinosta kaiutinohjaimen maadoitusliittimiin. Liitä seuraavaksi arduinon 3,3 V: n lähtö kaiutinohjaimen Vcc -nastaan. Liitä seuraavaksi arduinon digitaalinen nasta 9 kaiutinohjaimen tuloliitäntään.
Suositeltava:
Älykäs herätyskello Magicbitin avulla (Arduino): 10 vaihetta
Älykäs herätyskello Magicbitin avulla (Arduino): Tämä opetusohjelma näyttää kuinka tehdä älykäs herätyskello käyttämällä OLED -näyttöä Magicbit dev -levyssä ilman RTC -moduulia
Twin Bell herätyskello soodapurkeista: 7 vaihetta (kuvilla)
Kaksoiskellon herätyskello soodapurkeista: Tämä opaskirja näyttää, kuinka voit tehdä kaksoiskellon herätyskellon soodapurkeista. Projekti käyttää soodatölkkejä, joista muste on poistettu (linkki: musteen poistaminen soodapurkeista). Jotta tämä herätyskello toimisi täysin, DIY -kvartsikellomoduuli integroitiin
Meluisa herätyskello: 3 vaihetta
Meluisa herätyskello: Olen 13 -vuotias opiskelija Taiwanissa. Teen asioita Arduinon kanssa ensimmäistä kertaa, jos voit kertoa minulle, kuinka parantaa tätä työtä, jätä kommentit minulle, jotta voin tehdä paremman. (Kiitos ) Tämä kello voi herättää sinut, kun otat torkut, mutta minä
Kupla -herätyskello tekee heräämisestä hauskaa (ish): 7 vaihetta (kuvilla)
Kupla -herätyskello tekee heräämisestä hauskaa (ish): Herääminen surisevalle herätyskellolle on paskaa. Olen yksi niistä ihmisistä, jotka eivät halua herätä ennen kuin aurinko paistaa (tai on ollut poissa monta tuntia). Mikä olisikaan parempi tapa tehdä heräämisestä hauskaa kuin kuplat juhlia sängyssä! Käyttämällä arduinoa ja
Älykäs herätyskello: Älykäs herätyskello, joka on valmistettu Raspberry Pi: llä: 10 vaihetta (kuvilla)
Älykäs herätyskello: älykäs herätyskello, joka on valmistettu Raspberry Pi: llä: Oletko koskaan halunnut älykkään kellon? Jos näin on, tämä on ratkaisu sinulle! Tein Smart Alarm Clockin, tämä on kello, jolla voit muuttaa herätysaikaa verkkosivuston mukaan. Kun hälytys soi, kuuluu ääni (summeri) ja 2 valoa