Sadržaj:

Svjetla s senzorom pokreta/brojačem: 7 koraka
Svjetla s senzorom pokreta/brojačem: 7 koraka

Video: Svjetla s senzorom pokreta/brojačem: 7 koraka

Video: Svjetla s senzorom pokreta/brojačem: 7 koraka
Video: Kako povezati senzor pokreta/How to connect a motion sensor 2024, Srpanj
Anonim
Svjetla s senzorom pokreta/brojačem
Svjetla s senzorom pokreta/brojačem

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

Potreban softver i hardver
Potreban softver i hardver
Potreban softver i hardver
Potreban softver i hardver
Potreban softver i hardver
Potreban softver i hardver
Potreban softver i hardver
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)

Kodovi (Vivado)
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)

Razumijevanje načina na koji se spajaju (sheme VHDL komponenti)
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

Kako se naše komponente uklapaju zajedno!
Kako se naše komponente uklapaju zajedno!
Kako se naše komponente uklapaju zajedno!
Kako se naše komponente uklapaju zajedno!
Kako se naše komponente uklapaju zajedno!
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: