Мазмуну:
- 1 -кадам: системанын кара кутусу
- 2 -кадам: Компоненттер
- 3-кадам: D Flip-Flops
- 4 -кадам: шарттуу
- 5 -кадам: Чектөөлөр
- 6 -кадам: Негизги булак файлы
- 7 -кадам: Ассамблея
- 8 -кадам: Программаны жүктөө
Video: Энергияны үнөмдөөчү кыймыл активдештирилген көчө чырактары: 8 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул долбоордун максаты - жамааттардын энергиясын жана каржылык ресурстарын үнөмдөй турган нерсени түзүү. Кыймылдын активдештирилген көчө чырактары экөөнү тең жасайт. Бүт өлкө боюнча энергия бош көчө жарыктандыруучу көчө чырактарына сарпталып жатат. Биздин көчө жарыктандыруу системасы чырактар керек болгондо гана күйүп, жамааттарга сансыз долларды үнөмдөйт. Кыймыл сенсорлорун колдонуп, система машиналар турганда гана жарыкты күйгүзөт. Ошондой эле жөө жүргүнчүлөрдүн коопсуздугу үчүн биз көчөдөгү бардык жарыкты күйгүзүүчү баскычты ишке киргиздик. Төмөнкү кадамдар Vivado жана Basys 3 тактасын колдонуу менен долбоордун кичирейтилген моделин кантип иштеп чыкканыбызды көрсөтөт.
1 -кадам: системанын кара кутусу
Биз бул долбоорду жөнөкөй кара кутунун схемасын тартуудан баштадык. Кара куту диаграммасы жөн гана биздин система бардык керектүү процесстерди аяктоо үчүн керектүү болгон кириштерди жана чыгууларды көрсөтөт. Дизайнды мүмкүн болушунча жөнөкөй жана жөнөкөй сактоого аракет кылдык. Биздин үч системалык киришибизге кыймыл датчиктеринин автобусу (биздин кичирейтилген моделибиз үчүн 4), жөө адамдарды алмаштыруу баскычы жана сааттын кириши кирген. Башка тарапта биздин бирдиктүү чыгаруубуз - бул көчө чырактарыбызды чагылдырган LED чырактары бар автобус. Бул модель үчүн биз 16 көчө чырактарынын сценарийин колдондук, анткени бул Basys 3 тактасындагы LED чыгуулардын максималдуу саны. Акыр -аягы, бул диаграмманы колдонуу менен биз Vivado долбоорубузду, булагыбызды жана чектөө файлдарыбызды тийиштүү киргизүү жана чыгаруу менен түзө алдык.
2 -кадам: Компоненттер
Бул кадамда биз кара куту диаграммасын түзгөн компоненттерди тереңирээк изилдейбиз. Биздин биринчи компонент-бул D flip-flops камтыган VHDL булагы файлы. D флип-флоптары сааттын өйдө жагындагы сенсорлордон аларга кандай сигнал берилсе, ошонун баарын алат жана бул маалыматты кийинки көтөрүлүүчү четине чейин бекитет. Бул биздин сезгич кыймыл сенсорлорубузду жарык диоддорунун "жылтылдап" калышына жол бербейт. Ошондой эле, LED баскычын баскандан кийин 5-7 секундга чейин күйгүзүү үчүн, баскычты киргизүү сигналына бир D флип-флопун койдук. Биз муну саат бөлгүч аркылуу да жүргүздүк.
clk_div2 субъекти Порт (clk: std_logic; sclk: out std_logic); end clk_div2;
clk_div2нин my_clk_div архитектурасы
туруктуу max_count: бүтүн сан: = (300000000); сигнал tmp_clk: std_logic: = '0'; my_div: process (clk, tmp_clk) баштоо div_cnt: integer: = 0; баштоо if (ko'tarүлө турган кыр (clk)) анда, эгерде (div_cnt = MAX_COUNT) анда tmp_clk <= tmp_clk эмес; div_cnt: = 0; башка div_cnt: = div_cnt + 1; эгерде бүтсө; эгерде бүтсө; sclk <= tmp_clk; my_div процессин бүтүрүү; my_clk_div аягына чыгаруу;
Бул диаграммада биздин акыркы компонентибиз кириш сигналдарынын конфигурациясына негизделген жыйынтыктар үчүн шарттарды камтыган жүрүм -турумдук VHDL булагы файлы.
3-кадам: D Flip-Flops
Кириш сигналдарына тиркелген төрт флип-флоп биздин системанын иштеши үчүн абдан маанилүү. Жогоруда айтылгандай, сезгич кыймыл сенсорлору жана жокко чыгаруу баскычы менен, флип-флоптер сааттын өсүп бараткан четинде биздин кирүү сигналын чыгаруу үчүн гана илгичтерди колдонушат. Бул ырааттуу логика биздин көчө чырактары ылдам кыймыл менен иштетилгенден кийин белгилүү бир убакытка чейин күйүп туруусун билдирет. D-Flip Flop үчүн коддоо абдан жөнөкөй:
beginprocess (CLK) ko'tarүлө турган болсо (CLK) башталат, анда Q <= D; эгерде бүтсө; процессти аяктоо;
Баарын бир гана if билдирүүсүнө чогултса болот. Бул бөлүккө ээ болгондон кийин, биз керектүү флип-флопторубуздун бардыгын камтыган структуралык VHDL булак файлын түздүк:
баштоо DFF0: DFF порт картасы (CLK => CLK, D => D (0), Q => Q (0)); DFF1: DFF порт картасы (CLK => CLK, D => D (1), Q => Q (1)); DFF2: DFF порт картасы (CLK => CLK, D => D (2), Q => Q (2)); DFF3: DFF порт картасы (CLK => CLK, D => D (3), Q => Q (3));
жүрүм -турумду токтотуу;
Бул биздин структуралык файлды сактоого жардам берет, анда биз системанын бардык компоненттерин алда канча таза жана уюшкан түрдө чогултабыз.
4 -кадам: шарттуу
Биздин кодду компакттуу жана эффективдүү сактоо үчүн биз бардык шарттарыбызды бир учурда жаздык. Биздин кичирейтилген моделибиз үчүн бизде 16 мүмкүн болгон LED чыгаруу конфигурациялары бар болчу, анткени ар бир кыймыл сенсору 4 LEDдин тобуна жооп берет.:
case NMS качан "1111" => LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED = "1111111111111111"; аяктоо иши;
5 -кадам: Чектөөлөр
Vivado аркылуу киргизүү жана чыгарууңузду туура билдирүү үчүн, бардык портторду, баскычтарды, светодиоддорду жана сааттарды билдирген чектөө файлын колдонушуңуз керек.
set_property PACKAGE_PIN W5 [get_ports CLK] set_property IOSTANDARD LVCMOS33 [get_ports CLK]
set_property PACKAGE_PIN U16 [get_ports {LED [0]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [0]}] set_property PACKAGE_PIN E19 [get_ports {LED [1]}] set_property IOSTANDARD LVCMOS33 [get_ports] U19 [get_ports {LED [2]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [2]}] set_property PACKAGE_PIN V19 [get_ports {LED [3]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [3]} PACP_PPP] get_ports {LED [4]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [4]}] set_property PACKAGE_PIN U15 [get_ports {LED [5]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [5]}] set_proper PACK { LED [6]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [6]}] set_property PACKAGE_PIN V14 [get_ports {LED [7]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [7]}] set_property PACKAGE_PIN { 8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [8]}] set_property PACKAGE_PIN V3 [get_ports {LED [9]}] set_property IO STANDARD LVCMOS33 [get_ports {LED [9]}] set_property PACKAGE_PIN W3 [get_ports {LED [10]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [10]}] set_property PACKAGE_PIN U3 [get_ports {LED_11] [get_ports {LED [11]}] set_property PACKAGE_PIN P3 [get_ports {LED [12]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [12]}] set_property PACKAGE_PIN N3 [get_ports {LED [13]}] set_property IOST {LED [13]}] set_property PACKAGE_PIN P1 [get_ports {LED [14]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [14]}] set_property PACKAGE_PIN L1 [get_ports {LED [15]}] set_property IOSTANDARD LVC { [15]}]
set_property PACKAGE_PIN U18 [get_ports BTN] set_property IOSTANDARD LVCMOS33 [get_ports BTN]
set_property PACKAGE_PIN A14 [get_ports {MS [0]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [0]}] set_property PACKAGE_PIN A16 [get_ports {MS [1]}] set_property IOSTANDARD LVCMOS33 [get_ports] {get_ports] B15 [get_ports {MS [2]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [2]}] set_property PACKAGE_PIN B16 [get_ports {MS [3]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [3]}]
6 -кадам: Негизги булак файлы
Бул негизги файлда биз мурда айтылган бардык компонент булак файлдарын чогултабыз. Бул файл айырмалоочу компоненттерди бириктирген структуралык код катары иштейт.
Master_Final_Project субъекти порт болуп саналат (BTN: STD_LOGICте; CLK: STD_LOGIC; MS: STD_LOGIC_VECTOR (3төн 0гө чейин); LED: STD_LOGIC_VECTOR (15тен 0гө чейин)); Master_Final_Project аяктоо;
Master_Final_Project архитектурасы
final_project компоненти Port (--CLK: STD_LOGIC; NMS: STD_LOGIC_VECTOR (3кө 0 чейин); BTN: STD_LOGIC; акыркы компонент;
Final_DFF компоненти
Порт (CLK: STD_LOGICте; D: STD_LOGIC_Vectorдо (3кө 0 чейин); Q: STD_LOGIC_Vectorго (3кө 0 чейин)); акыркы компонент;
сигнал DFF02proj30: STD_LOGIC;
сигнал DFF12proj74: STD_LOGIC; сигнал DFF22proj118: STD_LOGIC; сигнал DFF32proj1512: STD_LOGIC;
баштоо
DFF0: Final_DFF порт картасы (CLK => CLK, D (0) => MS (0), D (1) => MS (1), D (2) => MS (2), D (3) => MS (3), Q (0) => DFF02proj30, Q (1) => DFF12proj74, Q (2) => DFF22proj118, Q (3) => DFF32proj1512); Proj0: final_project порт картасы (NMS (0) => DFF02proj30, NMS (1) => DFF12proj74, NMS (2) => DFF22proj118, NMS (3) => DFF32proj1512, BTN => BTN, LED => LED); жүрүм -турумду токтотуу;
7 -кадам: Ассамблея
Бул долбоордун аппараттык куралы минималдуу. Бир гана керектүү бөлүктөр төмөнкүлөр:
1. Basys 3 такта (1)
2. Арзан кыймыл датчиктерин бул жерден Amazonдо тапса болот. (4)
3. Эркектен-аялга жетелейт (4)
Ассамблея:
1. 4 эркекти PMod header JB портуна 1-4 туташтырыңыз (Сүрөттү караңыз).
2. Аялдардын учтарын ар бир кыймыл сенсорунун чыгуу пинине туташтырыңыз.
8 -кадам: Программаны жүктөө
Эми биз VHDL башкы булак файлын Basys 3 тактасына жүктөөгө даярбыз. Синтезди, ишке ашырууну жана мүмкүн болгон каталардын бар -жогун текшерүүнү иштетүүнү тактаңыз. Эгерде баары ийгиликтүү иштесе, аппараттык менеджерди ачыңыз жана Basys 3 түзмөгүн программалаңыз. Сиздин долбоор азыр аяктады!
Сунушталууда:
Батареяны үнөмдөөчү: 8 кадам (сүрөттөр менен)
Fairy Light Battery Saver: CR2032 батареялары сонун, бирок алар LED " Fairy Light " Бул жерде майрам мезгили менен мен USB кубат банкынан өчүрүү үчүн 20 жарык линиясын өзгөртүүнү чечтим. Интернеттен издеп көрдүм
Кыймыл активдештирилген Редстоун: 7 кадам (сүрөттөр менен)
Кыймыл Активацияланган Редстоун: Саламатсызбы! Бул долбоор кыймылга келтирилген кызыл таш лампа. Бул реле үчүн өткөрүлгөн микроконтроллерди жана УЗИ аралык сенсорун колдонуу менен иштейт
Кыймыл активдештирилген тепкичтер: 6 кадам (сүрөттөр менен)
Кыймылдын активдештирилген тепкичтери: Ооба, мен эмнени ойлоп жатканыңды билем, бул бир аз ашыкча көрүнөт, бирок биринчиден, бармагыңды кайра -кайра тыккандан эч качан коркпойсуң, бул сенин тепкичтен өйдө -ылдый басууңа шарт түзөт. кызыктуу, мен эч качан кайра үстүңкү кабатка чыкканымды таптым
Кыймыл активдештирилген коопсуздук короосунун белгиси: 4 кадам (сүрөттөр менен)
Кыймыл активдештирилген коопсуздук короосунун белгиси: Салттуу коопсуздук системасынын короо белгилери эч нерсе кылбайт. Чындыгында алар акыркы 30 жылдын ичинде анча деле өзгөргөн жок. Бирок, алар сиздин корооңуздун көрүнүктүү жерине жайгаштырылып, жакшы каралса эле, баалуу тоскоолдук болуп саналат. Мен сүйөм
Энергияны үнөмдөөчү компьютер: 9 кадам
Энергияны үнөмдөөчү компьютер: Интернетте жана басып чыгарууда өз компьютериңизди куруунун көптөгөн көрсөтмөлөрү жана макалалары бар. Бирок, энергияны үнөмдөөчү ЖК куруу боюнча көптөгөн көрсөтмөлөр жок. Бул нускамада мен сизге кантип тандоо боюнча кеңештерди берем