
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51

Биздин долбоор Basys 3 FPGA тактасын, Arduino жана динамик айдоочу тактасын колдонуу менен будильникти жаратат. Колдонуучу учурдагы убакытты Basys 3төгү 11 киргизүү коммутаторлору аркылуу тактага киргизе алат жана борттогу ортоңку баскычты колдонуу менен маанини кулпулай алат. Колдонуучу андан кийин ошол эле өчүргүчтөрдү колдонуу менен ойготуу убактысын киргизе алат, бирок ойготуу убактысын кулпулоо үчүн сол баскычты басыңыз. Эгерде туура эмес убакыт киргизилген болсо, баштапкы абалга келтирүү баскычын (үстүңкү баскычты) басууга болот жана учурдагы саат менен ойготкучтун убактысы 00: 00гө коюлат. Колдонуучу андан кийин сааттын эң сол жагындагы которгучту колдонуп, кийинки которгучту колдонуу менен ойготкучту күйгүзө алат. Ойготкуч күйгүзүлгөндө, ойготкуч сааттын убактысы жана коюлган ойготкуч убактысы дал келгенде үн чыгарат.
1 -кадам: Кара кутунун диаграммасы


Биз долбоорубузду программабызга керектүү болгон кириштер менен чыгууларды элестетүү үчүн кара кутуча диаграммасын тартуудан баштадык. 5-бит киргизүү (Hour_in) сыяктуу биздин программанын төмөнкү кириштери 24-сааттык убакытты көрсөтүү үчүн, 60-мүнөткө чейин көрсөтүү үчүн 6-бит (Min_in) киришине, колдонуучуга уруксат берүү үчүн баштапкы абалга келтирүү (Rst_b) баскычы коюлган. алардын убактысын өзгөртүү, ойготкучту киргизүүчү 1-битти киргизүү (alm_en), ойготкучту иштеткенде өчүрүү үчүн 1-битти киргизүү (alarm_sw), эсептегичти башкарган 1-битти киргизүү (e_sec) секунд иштейт, учурдагы убакытты орнотуучу 1-бит киргизүү (Led_btn) жана акырында Basys 3 тактасы көрсөткөн убакытты көзөмөлдөгөн 1-бит киргизүү (clk). Чыгыштар - бул сигналды Arduinoго жөнөтүүчү (alm_on), Basys 3те кирүү убактысын көрсөтүүчү sseg чыгаруу жана жети сегменттин дисплейинде кириштердин кайда көрсөтүлүшүн көзөмөлдөгөн аноддук чыгаруу.
2 -кадам: жай саат

Жай саат же clock_div2 файлы жыштыгы 2 Гц болгон саатты түзөт. Эгер биз бул саатты секунддук эсептегичке берсек, секунддун мааниси секунд сайын бир көбөйөт. Жай саат секундасына бир жолу төмөндөн жогоруга өзгөргөн ишенимдүү саат сигналын түзүү үчүн колдонулат.
3 -кадам: эсептегич


Компоненттердин эсептегичи (мүнөт жана секунд):
Мүнөт менен секунддун негизги функциясы - бул эсептегичтер. Мүнөттөрдүн эсептегичи кирүүнү (Vin) кабыл алат, бул киргизүүлөрдөн келген сигнал (Min_in), анан керектүү киргизилгенге жеткенге чейин эсептелет. Секунддар которгучтун кирүүсүн гана алат (e_Sec), анткени ал жети сегментте көрсөтүлбөйт жана которгуч '1' болгондон кийин фондо эсептелет. Экөө тең ошол жерде [Qout] маанисин чыгарышат, андан кийин ал (маалыматта) сакталат, аны шилтеме файлында жасалган SSEGке жөнөтөт. Ошондой эле, мүнөттөр менен секунддар 59 маанисине жеткенде, ал баштапкы абалга келет жана алардын чыгышы мүнөт/саатты көбөйтүү үчүн '1' болот. Ошондой эле, алардын киришине баштапкы абалга келтирүү (rst_b) менен картага түшүрсө болот.
4 -кадам: Counter Hour


Компоненттин каршы сааты
Ошо сыяктуу эле, мүнөттөрдүн жана секундалардын компоненттеринин эсептегичтерине сааттын компоненти файлдарды киргизүүнү (Hour_in) туташтырган сигнал болгон (Vin) сыяктуу кириштерди кабыл алат жана мүнөттөр менен секундалар менен байланышкан чыгуулары бар. Сааттын эсептөөчү мааниси 24 00гө жеткенде, ал 00 00гө кайтарылат.
5 -кадам: Ойготкуч




Ойготкуч.vhd файлы санариптик маалыматтарды сактай турган сактоочу түзүлүштөр болгон d-flip-flopsдон турат. Ойготкуч файлы сигнал иштетиле турган убакытты сактоо үчүн колдонулат. Сааттарды (5 бит киргизүү) жана мүнөттөрдү (6 бит киргизүү) маалыматтарды сактоо үчүн, биз сигнализация файлынын ичинде 11 d-flip-flops мөөрүн басышыбыз керек. Бул үчүн, адегенде d-flip-flops ишин жөнгө салган логиканы импорттоо жана компоненттерди картага түшүрүү керек. Ар бири 11 d-flip-flops кириштерден бир аз маалыматты сактайт жана маалыматтарды сигналдык файлдын чыгышына картага түшүрүүгө мүмкүнчүлүк берет. D-flip-flops маалыматтарды сактагандыктан, биз кирүү өчүргүчтөрү өзгөртүлгөн болсо дагы, биз маалыматты кийинчерээк колдоно алабыз.
6 -кадам: Universal Seven Segment Display Driver



Универсалдуу жети сегменттүү дисплей драйвери сааттан жана сааттардан алынган маалыматтарды алат жана аларды тактадагы жети сегменттүү дисплейге чыгара алат. Айдоочу бир убакта тактада эки башка саноону чыгара алат. Биз бул функцияны саат убактысын жана мүнөт убактысын өзүнчө көрсөтүү үчүн колдондук. Жети сегменттин дисплейи бир убакта бир гана номерди активдештире алат, андыктан sseg файлы бир убакта бардык сандарды көрсөтүү үчүн мультиплекстөөнү колдонушу керек. Такталардын сааты сигнал мультиплекстөө үчүн туура убакытты сактоо үчүн ssegге берилет. Экиликтен экиликке чейин ондук коддоочу файлга киргизүүнү жети сегменттүү дисплейге чыгара турган формага айландыруу үчүн керек. Sseg файлынын акыркы чыгарылышы жети сегменттүү дисплейге түшүрүлөт жана дисплейде туура убакыт көрсөтүлөт.
7 -кадам: Файл шилтемеси



Шилтеме файлы программанын башка бардык аспектилерин байланыштырат жана сигналдарды алардын туура жайгашкан жерине картага түшүрөт. Ар бир компонент файлдын ичине киргизилет жана киргизилет. Сигналдар маалыматтарды бир компоненттен экинчисине өткөрүү үчүн колдонулат. Порт картасы жогоруда көрсөтүлгөн кара куту диаграммасына ылайык келет. Шилтеме файлы ошондой эле ойготкуч иштетилгенде башкаруучу логиканы кармайт. Долбоордун көбү ушул убакка чейин бүтөт. Калган жумуш ар бир сигналды тиешелүү жерге багыттоодо.
8 -кадам: Arduino


Arduino динамикти иштетүү үчүн колдонулат, ошондой эле спикер аркылуу ойнотулган нотанын үнүн жана узактыгын көзөмөлдөө үчүн колдонулат. Ардуино Basys 3 тактасынан санарип сигналын окуйт. Бул сигнал жогору болгондо, arduino сигналдын үнүн жана узактыгын көзөмөлдөгөн PWM сигналын чыгарат. Ардуинодон чыккан сигнал спикердин айдоочу тактасынын кирүү сигналына туташат, ал динамиктин көлөмүн жогорулатат. Arduino бул процессти секундасына көп жолу кайталанат.
9 -кадам: Кабелдик маршрут

Ардуино жана Basys 3 тактасы такталар ортосундагы сигналдарды берүү үчүн физикалык түрдө туташышы керек. Зымга туташтырылган биринчи кабель Basys 3 JA PMODтун жерге туташуусунан ардуинонун жерге төөнөгүчүнө чейин болот. Андан кийин Basys 3түн JA PMOD 1 пининен ардуинонун санарип пинине 7 туташтырыңыз. Андан кийин, ардуинодон эки жер казыгын динамиктин айдоочусунун жерге туташтыргычтарына туташтырыңыз. Андан кийин, arduino 3.3 V чыгарууну динамик драйверинин Vcc пинине туташтырыңыз. Андан кийин, arduino санариптик пин 9ду динамиктин драйвынын In пинине туташтырыңыз.
Сунушталууда:
RaspberryPi Ислам тиленүүлөрү Watch & Ойготкуч: 15 кадам (сүрөттөр менен)

RaspberryPi Ислам тиленүүлөрү Watch & Alarm: Дүйнө жүзүндөгү мусулмандар күн сайын беш маал намаз окушат жана ар бир намаз күндүн белгилүү бир убагында болушу керек. планетабыз эллиптикалык ыкма менен күндүн айланасында айланып жүргөндүктөн, күндүн чыгышын жана түшүү убактысын жыл бою айырмалап турат
Face Touch Ойготкуч: 4 кадам (Сүрөттөр менен)

Face Touch Alarm: Биздин бетибизге тийүү-бул өзүбүздү Covid-19 сыяктуу вирустар менен жуктуруунун эң кеңири таралган жолдорунун бири. 2015 -жылдагы академиялык изилдөө (https://www.ncbi.nlm.nih.gov/pubmed/25637115) биздин бетибизге саатына орто эсеп менен 23 жолу тийгенин аныктады. Мен чечем
Cold Coffee Ойготкуч түзүлүшү Arduino Uno менен: 5 кадам

Cold Coffee Ойготкуч түзүлүшү Arduino Uno аркылуу: Мен сиздин кофенин (же чайдын) температурасын аныктай турган сигнализация түзүлүшүн түздүм, эгерде ал дагы эле ысык, жылуу же муздак болсо LEDди көрсөтөт (кызыл, сары жана көк) , эгер суук түшүп, ызы -чуу боло турган болсо, эскертүү сигналын иштетиңиз
Magicbit (Arduino) колдонуу менен акылдуу ойготкуч саат: 10 кадам

Magicbit (Arduino) колдонулган акылдуу ойготкуч саат: Бул окуу куралы RTC модулун колдонбостон Magicbit dev тактасындагы OLED дисплейди колдонуу менен акылдуу ойготкуч жасоону көрсөтөт
Акылдуу ойготкуч саат: Raspberry Pi менен жасалган акылдуу ойготкуч саат: 10 кадам (сүрөттөр менен)

Smart Alarm Clock: Raspberry Pi менен жасалган акылдуу ойготкуч: Сиз качандыр бир убакта акылдуу саатты кааладыңыз беле? Андай болсо, бул сиз үчүн чечим! Мен Smart Alarm Clock жасадым, бул веб -сайтка ылайык ойготкуч убактысын өзгөртө турган саат. Ойготкуч өчкөндө, үн чыгат (зумбул) жана 2 жарык күйөт