Sadržaj:
- Korak 1: Potreban softver i hardver
- Korak 2: Kodovi (Vivado)
- Korak 3: Razumijevanje načina na koji se spajaju (sheme VHDL komponenti)
- Korak 4: Kôd (Arduino)
- Korak 5: Kako se naše komponente uklapaju zajedno
- Korak 6: Demonstracija
- Korak 7: Vrijeme je da to isprobate
Video: Svjetla s senzorom pokreta/brojačem: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Ovaj je projekt nastao kao završni projekt za tečaj digitalnog dizajna u Cal Polyu, San Luis Obispo (CPE 133).
Zašto to radimo? Želimo pomoći očuvanju prirodnih resursa u svijetu. Naš projekt usredotočen je na uštedu električne energije. Uštedom više električne energije moći ćemo očuvati prirodne resurse koji se koriste za proizvodnju električne energije. Na početku 2018. godine prirodni resursi se troše nevjerojatnom brzinom. Želimo biti svjesni svog utjecaja na okoliš i odigrati svoju ulogu u očuvanju prirodnih resursa. Elektronika se može implementirati na različite načine radi uštede energije koja pomaže okolišu, ali i našem ekonomskom stanju.*Ovaj model je nastao korištenjem komponenti koje su nam dostupne.
Što nam je bila inspiracija? Ljudi često zaborave ugasiti svjetla za blagdane i rasipaju energiju ostavljajući ih uključene preko noći. U stvarnosti, ovaj će projekt uštedjeti električnu energiju jer bi se “blagdansko svjetlo” palilo samo kad su ljudi u blizini, čime bi se očuvala energija kada nema nikoga u blizini. Štoviše, htjeli smo dizajnirati mjerač vremena kako bi se svjetla potpuno ugasila nakon određenog vremena kako bismo osigurali da se ne upale zbog kretanja, na primjer, u 3 sata ujutro.
Kako biste mogli koristiti ovaj dizajn? Ovaj se dizajn može primijeniti na sve vrste svjetala, bilo da su ukrasna, praktična ili oboje. Na primjer, ako želite da vam stolno svjetlo radi samo 6 sati. Morali biste postaviti brojač na 21, 600 sekundi (6 sati x 3, 600 sekundi/sat). Dok se brojač aktivno povećava, senzor pokreta će kontrolirati svjetlo. Stoga, svaki put kad se isključi u tom razdoblju, samo trebate odmahnuti rukom ispred senzora pokreta i on će se ponovno uključiti. Ako zaspite za svojim stolom i probudite se 7 sati kasnije, vaš pokret ga neće uključiti.
Korak 1: Potreban softver i hardver
Softver:
- Vivado 2016.2 (ili noviju verziju) možete pronaći ovdje
- Arduino IDE 1.8.3 (ili noviju verziju) možete pronaći ovdje
Hardver:
- 1 Basys 3 ploča
- 1 Arduino Uno
- 2 Oglasne ploče
- 1 Ultrazvučni senzor dometa HC-SR04
- 9 Žice muško-muški
- 1 LED
- 1 100Ω otpornik
Korak 2: Kodovi (Vivado)
Mašina konačnih stanja (vidi gornji dijagram stanja):
LED je zahtijevao stroj konačnih stanja. LED ima samo dva stanja uključenosti i isključenosti. Samo dva ulaza kontroliraju stanje LED -a, brojač i senzor. LED dioda bi trebala biti uključena samo kada senzor detektira kretanje i kada brojač broji od nule do trideset sekundi. U svakom drugom slučaju LED će biti isključen.
Naziv datoteke: LEDDES
Brojač:
Brojač nam omogućuje ograničenje vremena tijekom kojeg senzor pokreta može aktivirati LED. Njegova vrijednost prikazana je na sedmosegmentnom zaslonu Basys 3 Board -a putem izvornog koda ("sseg_dec"). Kad je prekidač za poništavanje postavljen (vrijednost: '0'), brojač se svake sekunde povećava s 0 na 30. Kad dosegne 30, smrzava se na tom broju. Neće se ponovno pokrenuti od 0 sve dok se prekidač za poništavanje ne prebaci na "1" i natrag na "1." Ako resetiranje postane "1" dok je brojač u tijeku, brojač će se zamrznuti na bilo koju vrijednost koju je dosegao. Kad se reset vrati na "0", brojač će se ponovno pokrenuti od 0 do 30. Ova implementacija također zahtijeva upotrebu takta, njegov kôd je naveden ispod ("clk_div2").
Naziv datoteke: FinalCounter
DOSTAVLJENE DATOTEKE:
Prikaz u sedam segmenata:
Ovaj kôd omogućuje da sedmosegmentni zaslon prikazuje decimalne vrijednosti. Jedan podmodul djeluje kao dekoder između 8-bitnog binarnog ulaza i 4-bitne binarno kodirane decimale. Drugi dijeli signal sata kako bi osvježio svoju vrijednost određenom brzinom.
Naziv datoteke: sseg_dec
Signal sata:
Ovaj kod omogućuje brojaču povećanje u koracima od 1 sekunde. On dijeli ulaznu frekvenciju takta na sporiju frekvenciju. Prilagodili smo se tako da osiguramo razdoblje od 1 sekunde promjenom konstante max_count: integer: = (3000000)”na“konstanta max_count: integer: = (50000000)”.
Naziv datoteke: clk_div2
Dostavljene datoteke: sseg_dec, clk_div2 *Ove izvorne datoteke dao je profesor Bryan Mealy.
Korak 3: Razumijevanje načina na koji se spajaju (sheme VHDL komponenti)
Glavna datoteka ("MainProjectDES") sadrži sve poddatoteke o kojima je ranije bilo riječi. Oni su povezani na gornji način. Različite komponente međusobno su povezane pomoću mapa portova za slanje signala s jednog elementa na drugi.
Kao što ste možda primijetili, FinalCounter pruža 5-bitni izlaz, dok sseg_dec zahtijeva 8-bitni ulaz. Kako bismo kompenzirali, postavili smo signal koji povezuje obje komponente za početak s "000" i dodatak na 5-bitni izlaz iz brojača. Time se osigurava 8-bitni ulaz.
Ograničenja:
Za izvođenje ovih kodova na Basys 3 ploči bila je potrebna datoteka ograničenja koja svakom signalu govori kamo treba ići i kako su dijelovi povezani.
Korak 4: Kôd (Arduino)
Arduino Uno smo programirali da koristi senzor pokreta za detekciju kretanja i daje izlaz koji signalizira LED da zasvijetli. Osim toga, korištenje senzora za otkrivanje pokreta zahtijeva pokretanje petlji koje stalno traže promjenu udaljenosti. U biti, potreban mu je mjerač vremena koji se istodobno pokreće za izlaz "visokog" signala kako bi LED zasvijetlila, dok se mjerač mora resetirati kad se otkrije novo kretanje, što je gotovo nemoguće implementirati na Vivadu na temelju opsega znanja razreda. Štoviše, koristili smo Arduino jer ne bi bilo moguće koristiti HC-SR04 s Basys 3 pločom jer ploča napaja samo 3,3 V, dok senzor zahtijeva napajanje od 5 V. Za implementaciju detekcijskog kretanja, to je stvarno kodiranje za razliku od CAD -a u VHDL -u.
Koristili smo ugrađenu funkciju impulsa za senzor kako bismo dohvatili vrijeme koje je prošlo između zvuka koji je inicijalno emitiran iz senzora i zvuka koji se odbija pri udarcu u objekt. Zatim koristimo brzinu zvuka i vremenski interval za izračun udaljenosti između objekta i senzora. Od toga pohranjujemo trenutnu udaljenost i pratimo je. Svakih 150 ms provjeravamo udaljenost. Također smo koristili biblioteku elapsedmil za pokretanje internog mjerača vremena unutar arduina kako bismo pratili proteklo vrijeme. Ako otkrijemo promjenu udaljenosti, što odgovara kretanju, mjerač vremena vraća se na nulu i svjetlo će ostati upaljeno sve dok ne prođu 3 sekunde. Kad god senzor otkrije drugi pokret, mjerač vremena se resetira na 0 i signal za LED svjetlo bit će "visok" sljedeće 3 sekunde. Dolje smo priložili kopiju našeg Arduino koda.
Korak 5: Kako se naše komponente uklapaju zajedno
Kao što možete vidjeti na "Basys3: Pmod Pin-out Diagram*" i fotografiji Arduino Uno ploče, istaknuli smo i označili portove koje smo koristili.
1. Ploča za LED diode i ležišta 3
LED je serijski spojen sa 100Ω otpornikom. -Bijela žica povezuje otpornik s pin PWR -om Basys 3 ploče. -Žuta žica spaja LED diodu na pin H1 ploče Basys 3.
2. Senzor pokreta i Arduino Uno
-Narančasta žica povezuje Vcc (napajanje) senzora pokreta s pinom 5V ploče Arduino Uno.-Bijela žica povezuje pin Trig osjetnika pokreta s pinom 10 Arduino Uno ploče.-Žuta žica povezuje pin Echo senzor pokreta na pin 9 Arduino Uno ploče.-Crna žica povezuje pin GND senzora pokreta s pin GND Arduino Uno ploče.
[Žice koje smo koristili bile su prekratke da bi došle do komponenti, pa su bile međusobno povezane]
3. Ploča Basys 3 i Arduino Uno
Žuta žica spaja pin A14 ploče Basys 3 s pinom 6 ploče Arduino Uno.
*Ovaj dijagram je preuzet iz Digilentovog "Referentnog priručnika za Basys 3 ™ FPGA ploču" koji se nalazi ovdje.
Korak 6: Demonstracija
Korak 7: Vrijeme je da to isprobate
Čestitamo! Došli ste do kraja našeg projekta senzora pokreta i svjetlosnog brojača! Hvala vam puno što ste pročitali naš post Instructables. Sada je vrijeme da sami pokušate izgraditi ovaj projekt. Pažljivo pratite svaki korak, trebali biste imati senzor pokreta i svjetlo s brojačem koje radi slično kao i naše! Želimo vam svu sreću u izgradnji ovog projekta i nadamo se da može doprinijeti uštedi električne energije, ali i prirodnih resursa!
Preporučeni:
Automatski sobni regulator svjetla i ventilatora s dvosmjernim brojačem posjetitelja: 3 koraka
Automatski regulator svjetla u sobi i ventilator s dvosmjernim brojačem posjetitelja: Često vidimo šaltere posjetitelja na stadionu, u trgovačkom centru, uredima, učionicama itd. Kako broje ljude i pale ili pale svjetlo kad nema nikoga unutra? Danas smo ovdje s projektom automatskog kontrolera sobne rasvjete s dvosmjernim brojačem posjetitelja
Uradi sam: Mini -senzorska kutija na stropu sa fokusiranim senzorom pokreta: 4 koraka
Uradi sam: Mini -senzorska kutija na stropu sa fokusiranim senzorom pokreta: Pozdrav. Prije nekog vremena pomogao sam svom prijatelju s konceptom pametne kuće i stvorio mini kutiju senzora prilagođenog dizajna koja se može montirati na strop u rupu 40x65 mm. Ovaj okvir pomaže u: • mjerenju intenziteta svjetla • mjerenju vlažnog
Prekidač svjetla aktiviran pokretom sa senzorom svjetla: 5 koraka
Prekidač svjetla aktiviran pokretom sa senzorom svjetla: Prekidač svjetla 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
Svjetla senzora pokreta Basys3: 8 koraka
Svjetla senzora pokreta Basys3: Za naš završni projekt u digitalnom dizajnu, odlučili smo se simulirati svjetla senzora pokreta. Oni se aktiviraju ne samo kada je objekt u njegovoj blizini, već se aktiviraju i samo u određeno doba dana. To možemo modelirati pomoću FPGA (Basys3 ploča)
LED traka aktivirana senzorom pokreta s timerom: 6 koraka (sa slikama)
LED traka aktivirana senzorom pokreta s timerom: Pozdrav svima! Zaista sam sretan što sada pišem još jednu pouku. Ovaj je projekt nastao kad me prije nekoliko mjeseci kontaktirao kolega s instrukcijama (?!) (David @dducic) tražeći pomoć u dizajnu. Dakle, ovdje je originalna specifikacija: & q