Turinys:
- 1 žingsnis: juodosios dėžės schema
- 2 žingsnis: lėtas laikrodis
- 3 žingsnis: skaitiklis
- 4 žingsnis: skaitiklio valanda
- 5 žingsnis: aliarmas
- 6 veiksmas: universali septynių segmentų ekrano tvarkyklė
- 7 veiksmas: susiekite failą
- 8 žingsnis: „Arduino“
- 9 žingsnis: kabelių tiesimas
Video: „Basys 3“žadintuvas: 9 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Mūsų projektas sukuria žadintuvą naudojant „Basys 3 FPGA“plokštę, „Arduino“ir garsiakalbio tvarkyklę. Vartotojas gali įvesti dabartinį laiką prie plokštės, naudodamas 11 „Basys 3“įvesties jungiklių ir užfiksuoti vertę naudodami vidurinį plokštės mygtuką. Tada vartotojas gali įvesti žadintuvo laiką tais pačiais jungikliais, bet paspauskite kairįjį mygtuką, kad užrakintų žadintuvo laiką. Jei įvestas neteisingas laikas, galima paspausti atstatymo mygtuką (viršutinis mygtukas), o dabartinis laikrodžio laikas ir žadintuvo laikas bus nustatyti į 00:00. Tada vartotojas gali paleisti laikrodį naudodami kairįjį jungiklį ir įjungti žadintuvą naudodami kitą jungiklį. Kai žadintuvas įjungtas, žadintuvas skleidžia garsą, kai laikrodžio laikas ir nustatytas žadintuvo laikas sutampa.
1 žingsnis: juodosios dėžės schema
Mes pradėjome savo projektą piešdami juodos dėžės diagramą, kad vizualizuotume mūsų programai reikalingus įėjimus ir rezultatus. Toliau nurodyti mūsų programos įėjimai, tokie kaip 5 bitų įvestis („Hour_in“), buvo inicijuoti, kad būtų nurodytas 24 valandų laikas, 6 bitų (Min_in) įvestis, kuri būtų rodoma iki 60 minučių, iš naujo nustatymo (Rst_b) mygtukas, kad vartotojas galėtų pakeisti laiko įvestį, 1 bitų įvestį (alm_en), įkeliančią aliarmo įvestį, 1 bitų įvestį (alarm_sw), kad išjungtumėte žadintuvą, kai jis įjungiamas, 1 bitų įvestį (e_sec), kuri valdo, kai skaitiklis sekundžių, 1 bitų įvestis (Led_btn), kuri nustato dabartinį laiką, ir galiausiai 1 bitų įvestis (clk), valdanti „Basys 3“plokštės rodomą laiką. Išėjimai yra (alm_on), siunčiantis signalą „Arduino“, „sseg“išvestis, rodanti įvesties laiką „Basys 3“, ir anodo išvestis, valdanti, kur įvestys rodomos septynių segmentų ekrane.
2 žingsnis: lėtas laikrodis
Lėtas laikrodis arba clock_div2 failas sukuria laikrodį, kurio dažnis yra 2 hz. Jei šį laikrodį pateiksime į sekundžių skaitiklį, sekundžių vertė kas sekundę padidės vienu. Lėtas laikrodis naudojamas patikimam laikrodžio signalui sukurti, kuris keičiasi nuo žemo iki aukšto kartą per sekundę.
3 žingsnis: skaitiklis
Komponentų skaitiklis (minutės ir sekundės):
Pagrindinė minučių ir sekundžių funkcija yra tai, kad jie yra skaitikliai. Minutės skaitiklis įveda įvestį (Vin), kuri yra signalas iš įėjimų (Min_in), ir tada skaičiuojama, kol bus įvesta norima įvestis. Per kelias sekundes įvedamas tik jungiklis (e_Sec), nes jis negali būti rodomas septyniuose segmentuose ir skaičiuojamas fone, kai jungiklis yra aukštai „1“. Jie abu išleidžia ten reikšmę (Qout), o tada ji saugoma (duomenyse), kuri siunčia ją į SSEG, kuri daroma susiejimo faile. Be to, kai minutės ir sekundės pasiekia 59 reikšmes, jis atstatomas, o jų išvestis yra „1“, siekiant padidinti minutes/valandą. Jis taip pat gali būti susietas su įvestimi iš naujo (rst_b).
4 žingsnis: skaitiklio valanda
Komponentų skaitiklio valanda
Panašiai į minučių ir sekundžių komponentų skaitiklį valandos komponentas įveda įvestį s, pvz., (Vin), kuri yra signalas iš susiejamojo failo įvesties (Hour_in), ir turi išvestis, susietas tuo pačiu būdu minutes ir sekundes. Kai valandų skaičiaus vertė pasiekia 24 00, ji atstatoma į 00 00.
5 žingsnis: aliarmas
Žadintuvo.vhd failą sudaro „d-flip-flops“, kurie yra saugojimo įrenginiai, galintys saugoti skaitmeninius duomenis. Aliarmo failas naudojamas saugoti aliarmo įjungimo laiką. Norėdami išsaugoti valandų (5 bitų įvestis) ir minučių (6 bitų įvestis) duomenis, savo pavojaus faile turime antspauduoti 11 d-flip-flops. Norėdami tai padaryti, pirmiausia turime importuoti logiką, reglamentuojančią „d-flip-flops“veikimą, ir susieti komponentus. Kiekvienas iš 11 „d-flip-flops“įrašys vieną bitą duomenų iš įvesties ir leis susieti duomenis su aliarmo failo išėjimais. Kadangi „d-flip-flops“saugo duomenis, mes galime juos naudoti vėliau, net jei buvo pakeisti įvesties jungikliai.
6 veiksmas: universali septynių segmentų ekrano tvarkyklė
Universali septynių segmentų ekrano tvarkyklė gauna įvestis iš laikrodžio ir laikrodžio nustatymų ir gali juos išvesti į septynių segmentų ekraną lentoje. Vairuotojas vienu metu gali išvesti du atskirus skaičiavimus lentoje. Mes naudojome šią funkciją, norėdami atskirai rodyti tiek valandos, tiek minutės laiką. Septynių segmentų ekranas vienu metu gali suaktyvinti tik vieną skaičių, todėl „sseg“failas turi naudoti multipleksavimą, kad būtų rodomi visi laiko skaičiai vienu metu. Lentų laikrodžio signalas tiekiamas į ssegą, kad būtų išlaikytas teisingas multipleksavimo laikas. Dvejetainis į dvejetainį koduotas dešimtainis koduotojas yra būtinas norint konvertuoti įvestis į failą į formą, kurią galima išvesti į septynių segmentų ekraną. Galutinė sseg failo išvestis susieta su septynių segmentų ekranu ir ekrane rodomas teisingas laikas.
7 veiksmas: susiekite failą
Nuorodos failas sujungia visus kitus programos aspektus ir susieja signalus su teisinga jų vieta. Kiekvienas komponentas įtraukiamas į failą ir pateikiamas jame. Signalai naudojami duomenims perkelti iš vieno komponento į kitą. Prievadų atvaizdavimas bus atliekamas pagal aukščiau išvardytą juodosios dėžės schemą. Nuorodos faile taip pat yra logika, kuri valdo, kai įjungiamas aliarmas. Didžioji projekto dalis jau bus baigta. Likęs darbas yra nukreipti kiekvieną signalą į reikiamą vietą.
8 žingsnis: „Arduino“
Arduino naudojamas garsiakalbiui suaktyvinti, taip pat per garsiakalbį grojamos natos tonui ir trukmei valdyti. „Arduino“skaito skaitmeninį signalą iš „Basys 3“plokštės. Kai šis signalas yra didelis, arduino išves PWM signalą, valdantį signalo toną ir trukmę. Išvesties signalas iš arduino jungiasi prie garsiakalbio plokštės įvesties signalo, kuris padidina garsiakalbio garsumą. Arduino šį procesą atlieka labai greitai, kartodamas daug kartų per sekundę.
9 žingsnis: kabelių tiesimas
„Arduino“ir „Basys 3“plokštės turi būti fiziškai prijungtos, kad būtų galima perduoti signalus tarp plokščių. Pirmasis laidas prie laido bus nuo „Basys 3“JA PMOD įžeminimo kaiščio iki arduino įžeminimo kaiščio. Tada prijunkite laidą nuo „Basys 3“JA PMOD 1 kaiščio prie skaitmeninio 7 arduino kaiščio. Tada prijunkite du arduino įžeminimo kaiščius prie garsiakalbio tvarkyklės įžeminimo kaiščių. Tada prijunkite 3,3 V arduino išvestį prie garsiakalbio tvarkyklės Vcc kaiščio. Tada prijunkite skaitmeninį 9 arduino kaištį prie garsiakalbio tvarkyklės įvesties kaiščio.
Rekomenduojamas:
„Twin Bell“žadintuvas iš sodos skardinių: 7 žingsniai (su nuotraukomis)
Dvigubas žadintuvas iš sodos skardinių: ši instrukcija parodo, kaip iš sodos skardinių padaryti žadintuvą su dviem varpais. Projekte naudojamos sodos skardinės, kuriose buvo pašalintas rašalas (nuoroda: rašalo pašalinimas iš sodos skardinių). Kad šis žadintuvas veiktų visiškai, buvo integruotas kvarcinio laikrodžio modulis „pasidaryk pats“
Triukšmingas žadintuvas: 3 žingsniai
Triukšmingas žadintuvas: aš esu 13 metų studentas Taivane. Pirmą kartą darau reikalus su „Arduino“, jei galite man pasakyti, kaip pagerinti šį darbą, palikite man komentarus, kad galėčiau padaryti geresnį. (Ačiū ) Šis laikrodis gali jus pažadinti, kai nusnūsite, bet aš
Burbulinis žadintuvas leidžia pabusti smagiai (ish): 7 žingsniai (su nuotraukomis)
Žadintuvas su burbulu daro pabudimą smagiu (ish): pabusti iki šurmuliuojančio žadintuvo yra negerai. Aš esu iš tų žmonių, kurie nemėgsta pabusti prieš patekant saulei (arba jau daug valandų). Taigi kas gali būti geresnis būdas pabusti, nei surengti burbulų vakarėlį lovoje! Naudojant arduino ir
Išmanusis žadintuvas - „Intel Edison“- „Iot RoadShow“- San Paulas: 4 žingsniai
Išmanusis žadintuvas - „Intel Edison“- „Iot RoadShow“- San Paulas: Viena didžiausių dorybių kiekvienam, gyvenančiam ar dirbančiam dideliame mieste, yra laiko valdymas. Šiais laikais kelionės yra nuolatinės ir, kadangi eismas yra vienas iš pagrindinių veiksnių. Pagalvodamas apie tai, sukūriau nedidelę programą, kuri naudoja integraciją su „Google M“
Išmanusis žadintuvas: išmanusis žadintuvas, pagamintas naudojant „Raspberry Pi“: 10 žingsnių (su nuotraukomis)
Išmanusis žadintuvas: išmanusis žadintuvas, pagamintas naudojant „Raspberry Pi“: ar kada nors norėjote išmaniojo laikrodžio? Jei taip, tai yra sprendimas jums! Aš sukūriau išmanųjį žadintuvą, tai laikrodis, kuriuo galite pakeisti žadintuvo laiką pagal svetainę. Kai žadintuvas išsijungs, pasigirs garsas (švilpukas) ir 2 lemputės