Мазмұны:

Қуатты үнемдейтін қозғалыс белсендірілген көше шамдары: 8 қадам
Қуатты үнемдейтін қозғалыс белсендірілген көше шамдары: 8 қадам

Бейне: Қуатты үнемдейтін қозғалыс белсендірілген көше шамдары: 8 қадам

Бейне: Қуатты үнемдейтін қозғалыс белсендірілген көше шамдары: 8 қадам
Бейне: Как выбрать светодиодный светильник. Светодиодная лента для освещения 2024, Қараша
Anonim
Көше шамдары энергия үнемдейтін қозғалыспен қосылады
Көше шамдары энергия үнемдейтін қозғалыспен қосылады

Бұл жобаның мақсаты біздің қоғамдастықтың энергия мен қаржылық ресурстарын үнемдейтін нәрсе жасау болды. Қозғалыс белсенді көше шамдары мұның бәрін жасайды. Бүкіл елдегі энергия бос көшелерді жарықтандыратын көше шамдарына жұмсалады. Біздің көше жарығы жүйесі шамдардың қажет болғанда ғана жануын қамтамасыз етеді, бұл қоғамдастықтарға сансыз доллар үнемдейді. Қозғалыс датчиктерін қолдана отырып, жүйе автокөліктер болған кезде ғана шамдарды қосады. Сондай -ақ, жаяу жүргіншілердің қауіпсіздігі үшін біз көшедегі барлық шамдарды қосатын ауыстыру түймесін енгіздік. Келесі қадамдар сізге Vivado мен Basys 3 тақтасының көмегімен жобаның кішірейтілген моделін қалай құрастырғанымызды және құрастырғанымызды көрсетеді.

1 -қадам: жүйенің қара жәшігі

Жүйелік қара жәшік
Жүйелік қара жәшік

Біз бұл жобаны қара жәшіктің қарапайым схемасын салудан бастадық. Қара жәшіктің диаграммасы біздің жүйеде барлық қажетті процестерді аяқтау үшін қажет болатын кірістер мен шығыстарды көрсетеді. Біз дизайнды мүмкіндігінше қарапайым және қарапайым етіп сақтауға тырыстық. Біздің жүйенің үш кірісіне қозғалыс датчиктерінің шинасы (біздің кішірейтілген моделіміз үшін 4), жаяу жүргіншілерді ауыстыру түймесі және сағаттық кіріс кіреді. Екінші жағынан, біздің жалғыз шығыс - бұл көше шамдарын білдіретін жарықдиодты шамдар автобусы. Бұл модель үшін біз 16 көше шамдарының сценарийін қолдандық, себебі бұл Basys 3 тақтасындағы жарықдиодты жарықдиодты кірістердің максималды саны. Ақырында, осы диаграмманы қолдана отырып, біз Vivado жобасын, көзін және шектеу файлдарын тиісті кірістер мен шығыстармен құра алдық.

2 -қадам: компоненттер

Компоненттер
Компоненттер
Компоненттер
Компоненттер

Бұл қадамда біз қара жәшік диаграммасын құрайтын компоненттерді тереңірек зерттейміз. Біздің бірінші компонент-бұл D flip-flops бар VHDL бастапқы файлы. D флип-флоптары сағаттың көтерілу жиегіндегі датчиктерден оларға қандай сигнал берілсе, соны қабылдайды және бұл ақпаратты келесі көтерілетін жиекке дейін бекітеді. Бұл біздің сезімтал қозғалыс сенсорларының шығыс жарық диодтарының «жыпылықтауын» болдыртпайды. Сонымен қатар, біз түймені басқаннан кейін жарықдиодты шамамен 5-7 секунд қосулы қалу үшін түйменің кіріс сигналына бір D флип-флопын қоямыз. Біз мұны сағат бөлгіш арқылы жүргіздік.

clk_div2 нысаны - бұл порт (clk: std_logic; sclk: out std_logic); 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 (көтерілу_шеті (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 флип-флоптары

D Flip-Flops
D Flip-Flops

Кіріс сигналдарына бекітілген төрт флип-флоп біздің жүйенің функционалдығы үшін өте маңызды. Жоғарыда айтылғандай, сезімтал қозғалыс сенсорлары мен ауыстыру түймесі бар флип-флоптар біздің сигналды сағаттың көтерілетін шетінде шығару үшін ысырмаларды пайдаланады. Бұл дәйекті логика біздің көше шамдары жылдам қозғалыспен іске қосылғаннан кейін белгілі бір уақыт бойы жанып тұра алатынын білдіреді. D-Flip Flop үшін кодтау өте қарапайым:

beginprocess (CLK) басталады, егер көтерілу_шеті (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 жарық диодты шығыс конфигурациясы болды, өйткені әрбір қозғалыс сенсоры 4 жарықдиодты топқа жауап береді.:

жағдай NMS - бұл «1111» => светодиодты жарық диодты жарық диодты жарық диодты жарық диодты жарық диодты жарықдиодты жарықдиодты жарықдиодты жарықдиодты жарықдиодты шамы <= «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] {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_proper PACKAG_PIN { 8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [8]}] set_property PACKAGE_PIN V3 [get_ports {LED [9]}] set_property IO СТАНДАРТТЫ 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] [L] [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_proper IOSTM {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); жарық диоды: STD_LOGIC_VECTOR (15 төменге 0)); Master_Final_Project аяқталуы;

Master_Final_Project архитектурасы - бұл мінез -құлық

final_project компоненті-бұл порт (--CLK: STD_LOGIC; NMS: STD_LOGIC_VECTOR (3 төмен 0); BTN: STD_LOGIC; --sw: STD_LOGIC_Vector (1 төмен 0); жарық диоды: STD_LOGIC_VECTOR (15 төмен 0)); соңғы компонент;

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. Амазоннан табуға болатын арзан қозғалыс сенсорлары. (4)

3. Әйел-еркек (4)

Жинау:

1. 4 еркек сымдарын PMod тақырыбының JB 1-4 порттарына қосыңыз (суретті қараңыз).

2. Әйел ұштарын әр қозғалыс сенсорының шығыс түйреуішіне жалғаңыз.

8 -қадам: Бағдарламаны жүктеу

Енді біз VHDL негізгі файлын Basys 3 тақтасына жүктеуге дайынбыз. Синтездеуді, іске асыруды және кез келген ықтимал қателіктерді тексеруді генерациялауды ұмытпаңыз. Егер бәрі сәтті орындалса, аппараттық менеджерді ашып, Basys 3 құрылғысын бағдарламалаңыз. Сіздің жобаңыз енді аяқталды!

Ұсынылған: