Sadržaj:
- Korak 1: Sistemska crna kutija
- Korak 2: Komponente
- Korak 3: D Japanke
- Korak 4: Uslovi
- Korak 5: Ograničenja
- Korak 6: Glavna izvorna datoteka
- Korak 7: Montaža
- Korak 8: Učitavanje programa
Video: Energetski efikasna ulična svjetla aktivirana pokretom: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Naš cilj s ovim projektom bio je stvoriti nešto što će zajednicama uštedjeti energiju i financijske resurse. Ulična svjetla koja se aktiviraju pokretom učinila bi obje ove stvari. Širom zemlje energija se troši na ulična svjetla koja osvjetljavaju prazne ulice. Naš sistem uličnog svjetla osigurava da se svjetla pale samo kada je to potrebno, čime se zajednicama štedi bezbroj dolara. Pomoću senzora pokreta sistem uključuje svjetla samo kada su prisutni automobili. Također, radi sigurnosti pješaka, implementirali smo dugme za poništavanje koje uključuje sva svjetla na ulici. Sljedeći koraci će vas provesti kroz to kako smo osmislili i izgradili naš smanjeni model projekta koristeći Vivado i Basys 3 ploču.
Korak 1: Sistemska crna kutija
Ovaj projekt započeli smo crtanjem jednostavnog dijagrama crne kutije. Dijagram u crnoj kutiji jednostavno prikazuje ulaze i izlaze koji su potrebni našem sistemu da bi dovršio sve potrebne procese. Trudili smo se da naš dizajn bude što jednostavniji i osnovni. Naša tri sistemska ulaza uključivala su sabirnicu senzora pokreta (4 za naš smanjeni model), dugme za premošćavanje pješaka i ulaz za sat. S druge strane, naš jedini izlaz je sabirnica LED svjetala koja predstavljaju naša ulična svjetla. Za ovaj model koristili smo scenarij od 16 uličnih svjetiljki jednostavno zato što je to maksimalan broj ugrađenih LED izlaza na Basys 3 ploči. Konačno, pomoću ovog dijagrama uspjeli smo stvoriti naš Vivado projekt, izvor i datoteke ograničenja s odgovarajućim ulazima i izlazima.
Korak 2: Komponente
U ovom koraku dublje istražujemo komponente koje čine naš dijagram crne kutije. Naša prva komponenta je izvorna datoteka VHDL koja sadrži D japanke. D japanke jednostavno prihvaćaju bilo koji signal koji im se unosi sa senzora na rastućoj ivici sata i hvataju te podatke do sljedeće rastuće ivice. Ovo sprječava naše osjetljive senzore pokreta da izazovu "treperenje" izlaznih LED dioda. Takođe, stavljamo jedan D flip-flop na ulazni signal dugmeta da LED diode ostanu uključene oko 5-7 sekundi nakon pritiska na dugme. Ovo smo također proveli kroz razdjelnik sata.
entitet clk_div2 je Port (clk: u std_logic; sclk: out std_logic); kraj clk_div2;
arhitektura my_clk_div od clk_div2 je
konstanta max_count: integer: = (300000000); signal tmp_clk: std_logic: = '0'; započeti my_div: process (clk, tmp_clk) varijabla div_cnt: integer: = 0; započeti if (rastući_red (clk)) onda if (div_cnt = MAX_COUNT) tada tmp_clk <= nije tmp_clk; div_cnt: = 0; else div_cnt: = div_cnt + 1; end if; end if; sclk <= tmp_clk; završi proces my_div; kraj my_clk_div;
Naša posljednja komponenta u ovom dijagramu je izvorna VHDL datoteka ponašanja koja sadrži uvjete za izlaze zasnovane na konfiguraciji ulaznih signala.
Korak 3: D Japanke
Četiri japanke priključene na ulazne signale bitne su za funkcionalnost našeg sistema. Kao što je ranije rečeno, s osjetljivim senzorima pokreta i tipkom za poništavanje, japanke koriste zasune samo za izlaz našeg ulaznog signala na rastućoj ivici sata. Ova sekvencijalna logika znači da naša ulična svjetla mogu ostati uključena određeni vremenski period nakon što su se aktivirala brzim pokretom. Kodiranje D-japanke je prilično jednostavno:
beginprocess (CLK) begin ako rise_edge (CLK) onda je Q <= D; end if; završni proces;
Cijela se stvar može sastaviti u jednu if naredbu. Nakon što smo imali ovaj komad, stvorili smo strukturnu VHDL izvornu datoteku koja sadrži sva četiri naša potrebna japanka:
započeti DFF0: mapa portova DFF (CLK => CLK, D => D (0), Q => Q (0)); DFF1: Mapa DFF portova (CLK => CLK, D => D (1), Q => Q (1)); DFF2: Mapa DFF portova (CLK => CLK, D => D (2), Q => Q (2)); DFF3: DFF karta porta (CLK => CLK, D => D (3), Q => Q (3));
end Behavioral;
To pomaže u održavanju naše glavne strukturne datoteke gdje okupljamo sve sistemske komponente mnogo čistijim i organiziranijim.
Korak 4: Uslovi
Kako bi naš kôd bio kompaktan i efikasan, napisali smo sve uvjete u jednu izjavu slučaja. Za naš smanjeni model imali smo 16 mogućih LED izlaznih konfiguracija jer je svaki senzor pokreta odgovoran za grupu od 4 LED diode.:
slučaj NMS je kada je "1111" => LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED <= "1111111111111111"; završni slučaj;
Korak 5: Ograničenja
Da biste ispravno naveli svoje ulaze i izlaze koristeći Vivado, morate implementirati datoteku ograničenja koja navodi sve portove, dugmad, LED diode i satove koji se koriste.
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 {LED [1]} PACK 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]}] set_property PACKAGE_PIN W18 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_property PACKAGE_PIN U14 [get | 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 V13 [get_ports {LED 8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [8]}] set_property PACKAGE_PIN V3 [get_ports {LED [9]}] IO set_property 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]}] set_property IOS [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 IOSTANDARD LVCMOS33 {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 LVCMOS33 [LED_portovi [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 {MS [1P} PAGE] 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]}]
Korak 6: Glavna izvorna datoteka
U ovoj glavnoj datoteci okupljamo sve prethodno spomenute izvorne datoteke komponenti. Ova datoteka funkcionira kao strukturni kod koji okuplja različite komponente.
entitet Master_Final_Project je Port (BTN: u STD_LOGIC; CLK: u STD_LOGIC; MS: u STD_LOGIC_VECTOR (3 prema dolje 0); LED: van STD_LOGIC_VECTOR (15 do 0)); kraj Master_Final_Project;
arhitektura Ponašanje Master_Final_Project -a je
komponenta final_project je Port (--CLK: u STD_LOGIC; NMS: u STD_LOGIC_VECTOR (3 do 0); BTN: u STD_LOGIC; --sw: u STD_LOGIC_Vector (1 do 0); LED: van STD_LOGIC_VECTOR (15 do 0); krajnja komponenta;
komponenta Final_DFF je
Port (CLK: u STD_LOGIC; D: u STD_LOGIC_Vector (3 do 0); Q: van STD_LOGIC_Vector (3 do 0)); krajnja komponenta;
signal DFF02proj30: STD_LOGIC;
signal DFF12proj74: STD_LOGIC; signal DFF22proj118: STD_LOGIC; signal DFF32proj1512: STD_LOGIC;
početi
DFF0: Mapa porta 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: mapa porta final_project (NMS (0) => DFF02proj30, NMS (1) => DFF12proj74, NMS (2) => DFF22proj118, NMS (3) => DFF32proj1512, BTN => BTN, LED => LED); end Behavioral;
Korak 7: Montaža
Sklop hardvera za ovaj projekt je minimalan. Jedini potrebni komadi su sljedeći:
1. Basys 3 ploča (1)
2. Jeftini senzori pokreta koji se mogu pronaći na Amazonu ovdje. (4)
3. Kablovi muško-ženski (4)
Montaža:
1. Priključite 4 muška kabela na PMod zaglavlje JB portova 1-4 (vidi sliku).
2. Spojite ženske krajeve na svaki izlazni pin senzora pokreta.
Korak 8: Učitavanje programa
Sada smo spremni za učitavanje VHDL glavne izvorne datoteke na Basys 3 ploču. Obavezno pokrenite sintezu, implementaciju i generirajte provjeru protoka bitova za moguće greške. Ako se sve uspješno pokrene, otvorite upravljački program hardvera i programirajte uređaj Basys 3. Vaš projekat je sada završen!
Preporučuje se:
Krila za cosplay pokretom aktivirana pomoću Circuit Playground Express - 1. dio: 7 koraka (sa slikama)
Krilca za cosplay pokretom aktivirana korištenjem Circuit Playground Express - 1. dio: Ovo je prvi dio projekta iz dva dijela, u kojem ću vam pokazati moj postupak izrade para automatiziranih vilinskih krila. Prvi dio projekta je mehaniku krila, a drugi dio čini ga nosivim i dodaje krila
Automatska ulična svjetla pomoću ultrazvučnog senzora: 3 koraka
Automatska ulična svjetla pomoću ultrazvučnog senzora: Jeste li ikada pomislili da se ulična rasvjeta automatski uključuje noću, a ujutro automatski isključuje? Postoji li neko ko želi da uključi/isključi ova svjetla? Postoji nekoliko načina za uključivanje ulične rasvjete, ali sljedeći c
Višekanalni Sonoff - Svjetla aktivirana glasom: 4 koraka (sa slikama)
Višekanalni Sonoff-Svjetla aktivirana glasom: Prije 5 godina, svjetla u mojoj kuhinji išla su na pravi način. Osvjetljenje staze je bilo u kvaru, a osvjetljenje ispod pulta je bilo jednostavno bezvrijedno. Takođe sam hteo da razbijem osvetljenje na kanale kako bih bolje osvetlio prostoriju za razliku
LED lampa aktivirana pokretom na baterije: 4 koraka
LED lampa sa aktiviranjem pokreta na bateriju: Ako želite staviti svjetlo negdje koje se ne može spojiti, ovo je možda upravo ono što vam treba
Prekidač svjetla aktiviran pokretom sa senzorom svjetla: 5 koraka
Prekidač za svjetlo aktiviran pokretom sa senzorom svjetla: Prekidač za svjetlo aktiviran pokretom ima mnogo primjena kako u kući tako i u uredu. Ovo je, međutim, imalo dodatnu prednost uključivanjem svjetlosnog senzora, tako da se ovo svjetlo može aktivirati samo noću