Kazalo:
- 1. korak: Potrebna programska in strojna oprema
- 2. korak: Kode (Vivado)
- 3. korak: Razumevanje, kako se združujejo (sheme komponent VHDL)
- 4. korak: Koda (Arduino)
- 5. korak: Kako se naše komponente ujemajo
- 6. korak: demonstracija
- 7. korak: Čas je, da ga preizkusite
Video: Nadzor senzorja gibanja/števca: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Ta projekt je nastal kot končni projekt za tečaj digitalnega oblikovanja na Cal Polyju v San Luis Obispu (CPE 133).
Zakaj to počnemo? Želimo pomagati ohranjati naravne vire v svetu. Naš projekt se osredotoča na varčevanje z električno energijo. Z prihrankom več električne energije bomo lahko ohranili naravne vire, ki se uporabljajo za proizvodnjo električne energije. Na začetku leta 2018 se naravni viri porabljajo z neverjetno hitrostjo. Zavedati se želimo svojega vpliva na okolje in igrati svojo vlogo pri ohranjanju naravnih virov. Elektroniko lahko uporabimo na različne načine za varčevanje z energijo, kar pomaga tako okolju kot tudi našemu gospodarskemu stanju.*Ta model je bil ustvarjen z uporabo komponent, ki so nam na voljo.
Kaj je bil naš navdih? Ljudje pogosto pozabijo ugasniti praznično luč in zapravljajo energijo tako, da jih pustijo prižgane čez noč. V resnici bo ta projekt prihranil električno energijo, ker bi »praznične luči« prižgale le, ko so ljudje v bližini, in tako prihranili energijo, ko ni nikogar v bližini. Poleg tega smo želeli oblikovati časovnik, tako da bi se luči po določenem času popolnoma ugasnile, da bi se zagotovile, da se ne vklopijo zaradi gibanja, na primer ob 3. uri zjutraj.
Kako bi lahko uporabili to zasnovo? To zasnovo je mogoče uporabiti za vse vrste luči, ne glede na to, ali so dekorativne, praktične ali oboje. Če želite, da na primer namizna svetilka deluje le 6 ur naenkrat. Števec bi morali nastaviti na 21, 600 sekund (6 ur x 3, 600 sekund/uro). Medtem ko se števec aktivno povečuje, bi senzor gibanja nadzoroval svetlobo. Zato morate vsakič, ko se v tem času izklopi, samo zamahniti z roko pred senzorjem gibanja in ta se bo znova vklopil. Če zaspite za svojo mizo in se zbudite 7 ur kasneje, ga vaše gibanje ne bo vklopilo.
1. korak: Potrebna programska in strojna oprema
Programska oprema:
- Vivado 2016.2 (ali novejšo različico) najdete tukaj
- Arduino IDE 1.8.3 (ali novejšo različico) najdete tukaj
Strojna oprema:
- 1 Basys 3 deska
- 1 Arduino Uno
- 2 deske
- 1 Ultrazvočni merilni senzor HC-SR04
- 9 Moški žice
- 1 LED
- 1 100Ω upor
2. korak: Kode (Vivado)
Končni stroj (glej zgornji diagram stanja):
LED je zahteval stroj s končnim stanjem. LED ima samo dva stanja vklopa in izklopa. Samo dva vhoda nadzorujeta stanje LED, števec in senzor. LED -lučka mora biti prižgana le, ko senzor zazna gibanje in ko števec šteje od nič do trideset sekund. V vseh drugih primerih LED ne sveti.
Ime datoteke: LEDDES
Števec:
Števec nam omogoča, da omejimo čas, v katerem lahko senzor gibanja aktivira LED. Njegova vrednost je prikazana na sedem segmentnem prikazovalniku Basys 3 Board prek izvorne kode (»sseg_dec«). Ko je stikalo za ponastavitev spuščeno (vrednost: '0'), se začne števec vsako sekundo povečevati z 0 na 30. Ko doseže 30, zamrzne na tej številki. Ne bo se znova zagnal od 0, dokler stikalo za ponastavitev ne preklopite na '1' in nazaj na '1.' Ko se ponastavitev vrne na "0", se bo števec znova zagnal od 0 do 30. Ta izvedba zahteva tudi uporabo signala ure, njegova koda je navedena spodaj ("clk_div2").
Ime datoteke: FinalCounter
DODATNE DATOTEKE:
Prikaz sedmih segmentov:
Ta koda omogoča, da sedmi segmentni zaslon prikaže decimalne vrednosti. En podmodul deluje kot dekoder med 8-bitnim binarnim vhodom in 4-bitno binarno kodirano decimalko. Drugi deli signal ure, da osveži njegovo vrednost z določeno hitrostjo.
Ime datoteke: sseg_dec
Signal ure:
Ta koda omogoča, da se števec poveča za 1 sekundo. Ta razdeli vhodno taktno frekvenco na počasnejšo frekvenco. Prilagodili smo se tako, da zagotovimo obdobje 1 sekunde s spremembo konstante max_count: integer: = (3000000) "v" konstantno max_count: integer: = (50000000)."
Ime datoteke: clk_div2
Predložene datoteke: sseg_dec, clk_div2 *Te izvorne datoteke je posredoval profesor Bryan Mealy.
3. korak: Razumevanje, kako se združujejo (sheme komponent VHDL)
Glavna datoteka ("MainProjectDES") vsebuje vse poddate, o katerih smo govorili prej. Povezani so na zgornji način. Različne komponente so med seboj povezane z zemljevidi vrat za pošiljanje signala iz enega elementa v drugega.
Kot ste morda opazili, FinalCounter zagotavlja 5-bitni izhod, medtem ko sseg_dec zahteva 8-bitni vhod. Za kompenzacijo nastavimo signal, ki povezuje obe komponenti, tako, da se začne z "000" in doda 5-bitni izhod števca. Tako zagotavlja 8-bitni vhod.
Omejitve:
Za izvajanje teh kod na plošči Basys 3 je bila potrebna datoteka omejitev, ki vsakemu signalu pove, kam naj gredo in kako so deli povezani.
4. korak: Koda (Arduino)
Arduino Uno smo programirali za uporabo senzorja gibanja za zaznavanje gibanja in zagotavljanje izhoda, ki signalizira LED, da zasveti. Poleg tega uporaba senzorja za zaznavanje gibanja zahteva tekalne zanke, ki nenehno iščejo spremembo razdalje. V bistvu potrebuje časovnik, ki deluje hkrati, da odda "visok" signal, da LED zasveti, časovnik pa je treba ponastaviti, ko zazna novo gibanje, kar je glede na obseg znanja skoraj nemogoče izvesti na Vivadu razreda. Poleg tega smo uporabili Arduino, ker ne bi bilo mogoče uporabiti HC-SR04 s ploščo Basys 3, ker plošča napaja le 3,3 V, medtem ko senzor potrebuje napajanje 5 V. Za izvajanje gibanja zaznavanja je dejansko kodiranje v nasprotju s CAD v VHDL.
Za vnos vgrajene impulzne funkcije senzorja smo uporabili čas, ki je pretekel med zvokom, ki ga je prvotno oddajal senzor, in zvokom, ki se odbija ob udarcu v predmet. Nato s hitrostjo zvoka in časovnim intervalom izračunamo razdaljo med objektom in senzorjem. Od tega shranimo trenutno razdaljo in jo spremljamo. Vsakih 150 ms preverimo razdaljo. Knjižnico elapsedmil smo uporabili tudi za zagon notranjega časovnika v arduinu za spremljanje pretečenega časa. Če zaznamo spremembo razdalje, ki ustreza gibanju, se časovnik ponastavi na nič in lučka bo svetila, dokler ne minejo 3 sekunde. Kadarkoli senzor zazna drugo gibanje, se časovnik ponastavi na 0 in signal za LED lučko bo v naslednjih 3 sekundah "visok". Spodaj smo priložili kopijo naše kode Arduino.
5. korak: Kako se naše komponente ujemajo
Kot lahko vidite na "Basys3: Pmod Pin-out Diagram*" in fotografiji Arduino Uno Board, smo označili in označili vrata, ki smo jih uporabljali.
1. Plošča LED in podnožja 3
LED je zaporedno priključen na 100Ω upor. -Bela žica poveže upor z pin PWR plošče Basys 3. -Rumena žica povezuje LED z nožico H1 plošče Basys 3.
2. Senzor gibanja in Arduino Uno
-Oranžna žica povezuje Vcc (moč) senzorja gibanja s pin 5V plošče Arduino Uno. -Bela žica povezuje pin Trig senzorja gibanja s pin 10 Arduino Uno plošče. senzor gibanja na nožico 9 plošče Arduino Uno.-Črna žica poveže nož GND senzorja gibanja s čepom GND plošče Arduino Uno.
[Žice, ki smo jih uporabili, so bile prekratke, da bi dosegle komponente, zato so bile med seboj povezane]
3. Deska Basys 3 in Arduino Uno
Rumena žica povezuje pin A14 plošče Basys 3 s pin 6 plošče Arduino Uno.
*Ta diagram je vzet iz Digilentovega "Referenčnega priročnika za ploščo Basys 3 ™ FPGA", ki ga najdete tukaj.
6. korak: demonstracija
7. korak: Čas je, da ga preizkusite
Čestitamo! Prišli ste do konca našega projekta senzorja gibanja in svetlobno nadzorovanega števca! Najlepša hvala za branje naše objave Instructables. Zdaj je čas, da poskusite sami zgraditi ta projekt. Če natančno sledite vsakemu koraku, bi morali imeti senzor gibanja in števec, ki deluje podobno kot pri nas! Pri gradnji tega projekta vam želimo veliko sreče in upamo, da lahko prispeva k varčevanju z električno energijo in naravnimi viri!
Priporočena:
Alarm senzorja gibanja: 5 korakov
Alarm senzorja gibanja: Ali vedno preverjate, kdo je pred vašimi vrati? To je popoln izdelek za vas. Vedno me je zanimalo, če obstajajo ljudje pred mojimi vrati, ne da bi vedeli. Ustvaril sem ta alarm senzorja gibanja z LED lučmi, ki bo pokazal
Zvonec na vratih senzorja gibanja: 5 korakov (s slikami)
Zvonec na vratih senzorja gibanja: Ko sem sinu Jaydenu povedal za izziv, je takoj pomislil, da bi uporabil komplet LEGO WeDo. Z Legosom se je igral že vrsto let, vendar je šele ob začetku lanskega šolskega leta dobil priložnost kodirati z WeDo 2.0
Kako narediti svetlobo senzorja gibanja PIR doma: 7 korakov
Kako narediti svetlobo senzorja gibanja PIR doma: V tem videoposnetku sem pokazal, kako narediti svetlobo pir senzorja gibanja doma. Moj videoposnetek si lahko ogledate na youtube.Naročite se, če vam je moj video všeč in mi pomagajte pri rasti. Https://youtu.be/is7KYNHBSp8
Kdo je pri mojih vratih? Projekt PIR senzorja gibanja/senzorja dosega: 5 korakov
Kdo je pri mojih vratih? Projekt senzorja gibanja PIR/senzorja dosega: Naš projekt je namenjen zaznavanju gibanja prek PIR in senzorjev razdalje. Koda Arduino bo oddajala vizualni in zvočni signal, ki bo uporabniku povedal, da je nekdo v bližini. Koda MATLAB bo poslala e -poštni signal, ki bo uporabnika opozoril, da je nekdo v bližini. Ta naprava
Izhod z nadzorom gibanja - iz luči zaznavanja gibanja: 6 korakov
Izhod z nadzorom gibanja - iz svetlobe zaznavanja gibanja: Predstavljajte si, da ste prevaranti in se odpravite v najbolj strašno hišo v bloku. Ko greste mimo vseh duhov, duhov in pokopališč, končno pridete na zadnjo pot. Pred vami je sladica v posodi! A potem nenadoma gho