Sisukord:

Liikumisanduri/loenduriga juhitavad tuled: 7 sammu
Liikumisanduri/loenduriga juhitavad tuled: 7 sammu

Video: Liikumisanduri/loenduriga juhitavad tuled: 7 sammu

Video: Liikumisanduri/loenduriga juhitavad tuled: 7 sammu
Video: Полуночная охота Иннистрада: Открытие колоды заказов на изготовление конгрегационного маркера 2024, November
Anonim
Liikumisanduri/loenduriga juhitavad tuled
Liikumisanduri/loenduriga juhitavad tuled

See projekt loodi lõpliku projektina digitaalse disaini kursusele Cal Poly, San Luis Obispo (CPE 133).

Miks me seda teeme? Tahame aidata kaitsta maailma loodusvarasid. Meie projekt keskendub elektri säästmisele. Säästes rohkem elektrit, saame säästa elektrienergia tootmiseks kasutatavaid loodusressursse. 2018. aasta alguses tarbime loodusressursse uskumatult kiiresti. Tahame olla teadlikud oma mõjust keskkonnale ja mängida oma osa loodusvarade säilitamisel. Elektroonikat saab rakendada mitmel viisil, et säästa energiat, mis aitab nii keskkonda kui ka meie majanduslikku seisundit.*See mudel loodi meile kättesaadavate komponentide abil.

Mis oli meie inspiratsioon? Inimesed unustavad sageli puhkusetuled välja lülitada ja raiskasid energiat, jättes need üleöö põlema. Tegelikkuses säästab see projekt elektrienergiat, sest puhkusetuled süttiksid ainult siis, kui inimesed on läheduses, säästes seega energiat, kui kedagi pole läheduses. Lisaks tahtsime kujundada taimerit, et tuled kustuksid teatud aja pärast täielikult, et tagada, et need ei lülitu sisse näiteks kella 3 ajal tuvastatud liikumise tõttu.

Kuidas saaksite seda disaini kasutada? Seda disaini saab rakendada igasuguste tulede jaoks, olenemata sellest, kas need on dekoratiivsed, praktilised või mõlemad. Kui soovite, et teie laualamp toimiks näiteks ainult 6 tundi korraga. Peate loenduri seadistama 21 600 sekundile (6 tundi x 3, 600 sekundit tunnis). Kuigi loendur aktiivselt suureneb, juhib liikumisandur valgust. Seega, iga kord, kui see selle aja jooksul välja lülitub, peate lihtsalt käega liikumisanduri ees vehkima ja see lülitub uuesti sisse. Kui jääte laua taha magama ja ärkate 7 tundi hiljem, ei lülita teie liigutus seda sisse.

Samm: nõutav tarkvara ja riistvara

Vajalik tarkvara ja riistvara
Vajalik tarkvara ja riistvara
Vajalik tarkvara ja riistvara
Vajalik tarkvara ja riistvara
Vajalik tarkvara ja riistvara
Vajalik tarkvara ja riistvara
Vajalik tarkvara ja riistvara
Vajalik tarkvara ja riistvara

Tarkvara:

  • Vivado 2016.2 (või uuema versiooni) leiate siit
  • Arduino IDE 1.8.3 (või uuema versiooni) leiate siit

Riistvara:

  • 1 Basys 3 pardal
  • 1 Arduino Uno
  • 2 leiba
  • 1 ultraheli vahemiku andur HC-SR04
  • 9 isast-meheni juhtmed
  • 1 LED
  • 1 100Ω takisti

2. samm: koodid (Vivado)

Koodid (Vivado)
Koodid (Vivado)

Piiratud olekuga masin (vt ülaltoodud olekuskeemi):

LED nõudis piiratud olekuga masinat. Valgusdioodil on ainult kaks oleku olekut: sisse ja välja. Ainult kaks sisendit juhivad LED -i olekut, loendurit ja andurit. LED -tuli peaks põlema ainult siis, kui andur tuvastab liikumise ja loendur loendab nullist kolmekümne sekundini. Muudel juhtudel kustub LED.

Faili nimi: LEDDES

Loendur:

Loendur võimaldab meil piirata ajavahemikku, mille jooksul liikumisandur saab LED -i aktiveerida. Selle väärtus kuvatakse Basys 3 Boardi seitsme segmendi ekraanil lähtekoodi („sseg_dec”) kaudu. Kui lähtestuslüliti on all (väärtus: '0'), hakkab loendur iga sekundi järel tõusma 0 -lt 30. Kui see jõuab 30 -ni, külmutab see selle numbri. See ei taaskäivitu nullist enne, kui lähtestamise lüliti on lülitatud asendisse 1 ja tagasi asendisse 1. Kui lähtestamine läheb tagasi väärtusele „0”, taaskäivitatakse loendur vahemikus 0–30. See rakendus nõuab ka kella signaali kasutamist, selle kood on toodud allpool („clk_div2”).

Faili nimi: FinalCounter

Pakutud failid:

Seitsme segmendi kuva:

See kood võimaldab seitsme segmendi ekraanil kuvada kümnendväärtusi. Üks alammoodul toimib dekooderina 8-bitise binaarsisendi ja 4-bitise binaarkodeeritud kümnendkoha vahel. Teine jagab kella signaali, et värskendada selle väärtust teatud kiirusega.

Faili nimi: sseg_dec

Kella signaal:

See kood võimaldab loenduril kasvada 1 sekundi kaupa. See jagab sisestatud taktsageduse aeglasemaks. Muutsime pakkuda 1 -sekundilist perioodi, muutes konstantse max_count: integer: = (3000000)”väärtuseks„ konstant max_count: integer: = (50000000)”.

Faili nimi: clk_div2

Pakutavad failid: sseg_dec, clk_div2 *Need lähtefailid pakkus professor Bryan Mealy.

3. samm: mõistke, kuidas nad kokku tulevad (VHDL -komponentide skeemid)

Mõistmine, kuidas nad kokku tulevad (VHDL -komponentide skeemid)
Mõistmine, kuidas nad kokku tulevad (VHDL -komponentide skeemid)

Põhifail ("MainProjectDES") sisaldab kõiki eelnevalt arutatud alamfaile. Need on ühendatud ülaltoodud viisil. Erinevad komponendid on omavahel ühendatud, kasutades pordikaarte, et saata signaal ühelt elemendilt teisele.

Nagu olete juba märganud, pakub FinalCounter 5-bitist väljundit, samas kui sseg_dec nõuab 8-bitist sisendit. Kompenseerimiseks seadsime mõlemat komponenti ühendava signaali alguseks "000" ja lisame loenduri 5-bitise väljundi. See tagab 8-bitise sisendi.

Piirangud:

Nende koodide käivitamiseks Basys 3 pardal oli vaja piirangute faili, mis rääkis igale signaalile, kuhu minna ja kuidas osad ühendada.

4. samm: kood (Arduino)

Programmeerisime Arduino Uno kasutama liikumisandurit liikumise tuvastamiseks ja väljundi andmiseks, mis annab märku LED -i süttimisest. Lisaks nõuab anduri kasutamine liikumise tuvastamiseks jooksuahelaid, mis otsivad pidevalt vahemaa muutusi. Põhimõtteliselt vajab see taimerit, mis töötab samaaegselt LED -i süttimiseks "kõrge" signaali väljastamiseks, samal ajal kui taimer tuleb uue liikumise tuvastamisel lähtestada, mida teadmiste ulatuse põhjal on Vivados peaaegu võimatu rakendada klassist. Lisaks kasutasime Arduino, kuna pole võimalik kasutada HC-SR04 koos Basys 3 plaadiga, kuna plaat toidab ainult 3,3 V, samas kui andur vajab 5 V toiteallikat. Avastamisliikumise rakendamiseks on see tegelik kodeerimine erinevalt CAD -st VHDL -is.

Me kasutasime andurile sisseehitatud sisseehitatud funktsiooni, et saada aega, mis kulus andurilt algselt eralduva heli ja objekti tabamisel tagasilöögi vahel. Seejärel kasutame objekti ja anduri vahelise kauguse arvutamiseks heli kiirust ja ajavahemikku. Sellest alates salvestame praeguse vahemaa ja jälgime seda. Kontrollime kaugust iga 150 ms järel. Kasutasime ka elapsedmil raamatukogu, et käivitada arduino sisemine taimer, et jälgida kulunud aega. Kui tuvastame liikumisele vastava kauguse muutuse, lähtestatakse taimer nulli ja see hoiab valgust põlemas kuni 3 sekundi möödumiseni. Kui andur tuvastab mõne muu liikumise, lähtestatakse taimer väärtuseks 0 ja LED -tule signaal on järgmise 3 sekundi jooksul "kõrge". Lisasime allpool meie Arduino koodi koopia.

5. samm: kuidas meie komponendid omavahel sobivad

Kuidas meie komponendid kokku sobivad!
Kuidas meie komponendid kokku sobivad!
Kuidas meie komponendid kokku sobivad!
Kuidas meie komponendid kokku sobivad!
Kuidas meie komponendid kokku sobivad!
Kuidas meie komponendid kokku sobivad!

Nagu näete "Basys3: Pmod Pin-out Diagramm*" ja Arduino Uno Boardi foto, tõstsime esile ja sildistasime kasutatavad pordid.

1. LED ja Basys 3 tahvel

LED on järjestikku ühendatud 100Ω takistiga. -Valge juhe ühendab takisti Basys 3 tahvli PWR -ga. -Kollane juhe ühendab LED -i Basys 3 plaadi tihvtiga H1.

2. Liikumisandur ja Arduino Uno

-Oranž juhe ühendab liikumisanduri Vcc (toide) Arduino Uno plaadi tihvtiga 5V.-Valge juhe ühendab liikumisanduri tihvti Arduino Uno tahvli 10. tihvtiga. liikumisandur Arduino Uno plaadi tihvtiga 9.-Must juhe ühendab liikumisanduri tihvti GND Arduino Uno plaadi GND tihvtiga.

[Meie kasutatavad juhtmed olid komponentide juurde jõudmiseks liiga lühikesed, seega olid need omavahel ühendatud]

3. Basys 3 juhatus ja Arduino Uno

Kollane juhe ühendab Basys 3 tahvli tihvti A14 Arduino Uno plaadi tihvtiga 6.

*See skeem on võetud Digilent'i "Basys 3 ™ FPGA plaadi kasutusjuhendist", mille leiate siit.

6. samm: tutvustamine

Samm: aeg seda katsetada

Palju õnne! Olete jõudnud meie liikumisanduri ja loenduriga juhitava valguse projekti lõpuni! Täname teid väga, et lugesite meie Instructables postitust. Nüüd on aeg proovida seda projekti ise üles ehitada. Kui järgite hoolikalt kõiki samme, peaks teil olema liikumisandur ja loenduriga juhitav valgus, mis töötab sarnaselt meie omaga! Soovime teile edu selle projekti ehitamisel ja loodame, et see võib aidata kaasa nii elektri kui ka loodusvarade säästmisele!

Soovitan: