Satura rādītājs:

Kustības sensora/skaitītāja kontrolētas gaismas: 7 soļi
Kustības sensora/skaitītāja kontrolētas gaismas: 7 soļi

Video: Kustības sensora/skaitītāja kontrolētas gaismas: 7 soļi

Video: Kustības sensora/skaitītāja kontrolētas gaismas: 7 soļi
Video: ОНИ ВЫЗВАЛИ ПРИЗРАКА, НО БОЛЬШЕ НЕКОГДА … THEY CALLED THE GHOST, BUT THERE'S NO TIME ANYMORE … 2024, Novembris
Anonim
Kustības sensora/skaitītāja kontrolētas gaismas
Kustības sensora/skaitītāja kontrolētas gaismas

Šis projekts tika izveidots kā noslēguma projekts digitālā dizaina kursam Cal Poly, San Luis Obispo (CPE 133).

Kāpēc mēs to darām? Mēs vēlamies palīdzēt saglabāt dabas resursus pasaulē. Mūsu projekts koncentrējas uz elektroenerģijas taupīšanu. Ietaupot vairāk elektroenerģijas, mēs varēsim saglabāt dabas resursus, kas tiek izmantoti elektroenerģijas ražošanai. Sākot 2018. gadu, dabas resursi tiek patērēti neticamā ātrumā. Mēs vēlamies apzināties savu ietekmi uz vidi un piedalīties dabas resursu saglabāšanā. Elektroniku var ieviest dažādos veidos, lai taupītu enerģiju, kas palīdz videi un mūsu ekonomiskajam stāvoklim.*Šis modelis tika izveidots, izmantojot mums pieejamās sastāvdaļas.

Kāds bija mūsu iedvesmas avots? Cilvēki bieži aizmirst izslēgt svētku gaismu un izšķērdēja enerģiju, atstājot tos ieslēgtus naktī. Patiesībā šis projekts ietaupīs elektroenerģiju, jo “svētku gaismas” iedegtos tikai tad, kad cilvēki atrodas tuvumā, tādējādi ietaupot enerģiju, kad neviena nav tuvumā. Turklāt mēs vēlējāmies izveidot taimeri, lai gaismas pēc noteikta laika pilnībā izslēgtos, lai nodrošinātu, ka tās neieslēdzas, piemēram, kustības dēļ, kas tika konstatēta pulksten 3:00.

Kā jūs varētu izmantot šo dizainu? Šo dizainu var īstenot visu veidu gaismām neatkarīgi no tā, vai tās ir dekoratīvas, praktiskas vai abas. Ja vēlaties, lai, piemēram, jūsu galda gaisma darbotos tikai 6 stundas vienlaikus. Jums vajadzētu iestatīt skaitītāju uz 21, 600 sekundēm (6 stundas x 3, 600 sekundes/stundā). Kamēr skaitītājs aktīvi palielinās, kustības sensors kontrolētu gaismu. Tādējādi katru reizi, kad tas izslēdzas šajā laika periodā, jums vienkārši jānovicina rokas kustības sensora priekšā, un tas atkal ieslēgsies. Ja aizmigsi pie sava galda un pamosties pēc 7 stundām, tava kustība to neieslēgs.

1. darbība. Nepieciešamā programmatūra un aparatūra

Nepieciešamā programmatūra un aparatūra
Nepieciešamā programmatūra un aparatūra
Nepieciešamā programmatūra un aparatūra
Nepieciešamā programmatūra un aparatūra
Nepieciešamā programmatūra un aparatūra
Nepieciešamā programmatūra un aparatūra
Nepieciešamā programmatūra un aparatūra
Nepieciešamā programmatūra un aparatūra

Programmatūra:

  • Vivado 2016.2 (vai jaunāku versiju) var atrast šeit
  • Arduino IDE 1.8.3 (vai jaunāku versiju) var atrast šeit

Aparatūra:

  • 1 Basys 3 dēlis
  • 1 Arduino Uno
  • 2 maizes dēļi
  • 1 ultraskaņas diapazona sensors HC-SR04
  • 9 vadi no vīriešu līdz vīriešiem
  • 1 LED
  • 1 100Ω rezistors

2. darbība: kodi (Vivado)

Kodi (Vivado)
Kodi (Vivado)

Galīgā stāvokļa mašīna (skat. Stāvokļa diagrammu iepriekš):

Gaismas diodei bija nepieciešama ierobežota stāvokļa mašīna. LED ir tikai divi ieslēgšanas un izslēgšanas stāvokļi. Tikai divas ieejas kontrolē gaismas diodes, skaitītāja un sensora stāvokli. Vienīgais laiks, kad gaismas diodei vajadzētu iedegties, ir tad, kad sensors nosaka kustību un skaitītājs skaita no nulles līdz trīsdesmit sekundēm. Jebkurā citā gadījumā gaismas diode būs izslēgta.

Faila nosaukums: LEDDES

Skaitītājs:

Skaitītājs ļauj ierobežot laiku, kurā kustības sensors var aktivizēt gaismas diodi. Tās vērtība tiek parādīta Basys 3 Board septiņu segmentu displejā, izmantojot avota kodu (“sseg_dec”). Kad Reset slēdzis ir uz leju (vērtība: '0'), skaitītājs sāk palielināties katru sekundi no 0 līdz 30. Kad tas sasniedz 30, tas sasalst pie šī skaitļa. Tas netiks atsākts no 0, kamēr slēdzis Atiestatīt nav pārslēgts uz “1” un atpakaļ uz “1.”. Ja atiestatīšana skaitītāja darbības laikā kļūst par “1”, skaitītājs sasalst, sasniedzot sasniegto vērtību. Kad atiestatīšana atgriezīsies uz “0”, skaitītājs tiks restartēts no 0 līdz 30. Šī ieviešana prasa arī pulksteņa signāla izmantošanu, tā kods ir norādīts zemāk ("clk_div2").

Faila nosaukums: FinalCounter

Sniegtie faili:

Septiņu segmentu displejs:

Šis kods ļauj septiņu segmentu displejā parādīt decimālās vērtības. Viens apakšmodulis darbojas kā dekodētājs starp 8 bitu bināro ieeju un 4 bitu bināro kodēto decimāldaļu. Otrs sadala pulksteņa signālu, lai atsvaidzinātu tā vērtību ar noteiktu ātrumu.

Faila nosaukums: sseg_dec

Pulksteņa signāls:

Šis kods ļauj skaitītājam palielināties par 1 sekundi. Tas sadala ieejas pulksteņa frekvenci lēnākā frekvencē. Mēs pielāgojāmies nodrošināt 1 sekundes periodu, mainot konstantu max_count: integer: = (3000000)”uz“konstante max_count: integer: = (50000000)”.

Faila nosaukums: clk_div2

Sniegtie faili: sseg_dec, clk_div2 *Šos avota failus nodrošināja profesors Braiens Mīlijs.

3. darbība. Izpratne par to, kā viņi sanāk kopā (VHDL komponentu shēmas)

Izpratne par to, kā viņi sanāk kopā (VHDL komponentu shēmas)
Izpratne par to, kā viņi sanāk kopā (VHDL komponentu shēmas)

Galvenais fails ("MainProjectDES") satur visus iepriekš apskatītos apakšfailus. Tie ir savienoti iepriekš minētajā veidā. Dažādas sastāvdaļas ir savstarpēji savienotas, izmantojot portu kartes, lai nosūtītu signālu no viena elementa uz otru.

Kā jūs, iespējams, pamanījāt, FinalCounter nodrošina 5 bitu izvadi, savukārt sseg_dec ir nepieciešama 8 bitu ievade. Lai to kompensētu, mēs iestatījām signālu, kas savieno abus komponentus, lai sāktu ar "000" un pievienotu 5 bitu izeju no skaitītāja. Tādējādi nodrošinot 8 bitu ievadi.

Ierobežojumi:

Lai šos kodus darbinātu Basys 3 panelī, bija nepieciešams ierobežojumu fails, kurā katram signālam tika norādīts, kurp doties un kā detaļas ir savienotas.

4. darbība: kods (Arduino)

Mēs ieprogrammējām Arduino Uno izmantot kustības sensoru, lai noteiktu kustību un nodrošinātu izvadi, kas signalizē par gaismas diodes iedegšanos. Turklāt, lai izmantotu sensoru kustības noteikšanai, ir nepieciešamas skriešanas cilpas, kas pastāvīgi meklē attāluma izmaiņas. Būtībā tam ir nepieciešams taimeris, kas darbojas vienlaicīgi, lai izvadītu “augstu” signālu, lai gaismas diode iedegtos, bet taimeris ir jāatiestata, tiklīdz tiek konstatēta jauna kustība, ko gandrīz nav iespējams ieviest Vivado, pamatojoties uz zināšanu apjomu klasē. Turklāt mēs izmantojām Arduino, jo nebūtu iespējams izmantot HC-SR04 kopā ar Basys 3 plati, jo tā nodrošina tikai 3,3 V barošanu, bet sensoram ir nepieciešams 5 V barošanas avots. Noteikšanas kustības īstenošanai tā ir faktiskā kodēšana pretstatā CAD VHDL.

Mēs izmantojām iebūvēto impulsa funkciju sensoram, lai iegūtu laiku, kas pagājis starp skaņu, kas sākotnēji tika emitēta no sensora, un skaņu, kas atsitās, atsitoties pret kādu objektu. Tad mēs izmantojam skaņas ātrumu un laika intervālu, lai aprēķinātu attālumu starp objektu un sensoru. No tā mēs saglabājam pašreizējo attālumu un sekojam tam. Mēs pārbaudām attālumu ik pēc 150 ms. Mēs arī izmantojām elapsedmil bibliotēku, lai palaistu iekšējo taimeri arduino iekšpusē, lai izsekotu pagājušajam laikam. Ja mēs konstatējam attāluma izmaiņas, kas atbilst kustībai, taimeris tiek atiestatīts uz nulli, un tas turpinās ieslēgt gaismu, līdz būs pagājušas 3 sekundes. Ikreiz, kad sensors konstatē citu kustību, taimeris tiek atiestatīts uz 0 un LED gaismas signāls nākamajās 3 sekundēs būs "augsts". Tālāk ir pievienota mūsu Arduino koda kopija.

5. solis: kā mūsu komponenti sader kopā

Kā mūsu komponenti sader kopā!
Kā mūsu komponenti sader kopā!
Kā mūsu komponenti sader kopā!
Kā mūsu komponenti sader kopā!
Kā mūsu komponenti sader kopā!
Kā mūsu komponenti sader kopā!

Kā redzat "Basys3: Pmod Pin-out Diagramma*" un Arduino Uno dēļa fotoattēlā, mēs izcēlām un marķējām izmantotās ostas.

1. LED un Basys 3 padome

LED ir savienots virknē ar 100Ω rezistoru. -Baltais vads savieno rezistoru ar Basys 3 plates PWR tapu. -Dzeltenais vads savieno LED ar Basys 3 plates H1 tapu.

2. Kustības sensors un Arduino Uno

-Oranžais vads savieno kustības sensora Vcc (jauda) ar Arduino Uno plates 5V tapu.-Baltais vads savieno kustības sensora tapu ar Arduino Uno plates 10. tapu. kustības sensoru līdz Arduino Uno plates 9. tapai.-Melnais vads savieno kustības sensora GND tapu ar Arduino Uno plates GND tapu.

[Mūsu izmantotie vadi bija pārāk īsi, lai sasniegtu komponentus, tāpēc tie bija savstarpēji savienoti]

3. Basys 3 padome un Arduino Uno

Dzeltenais vads savieno Basys 3 plates A14 tapu ar Arduino Uno plates 6. tapu.

*Šī diagramma ir ņemta no Digilent "Basys 3 FPGA Board Reference Manual", kas atrodama šeit.

6. solis: demonstrācija

7. solis: laiks to pārbaudīt

Apsveicam! Jūs esat sasniedzis mūsu kustības sensora un skaitītāja kontrolētās gaismas projekta beigas! Liels paldies, ka izlasījāt mūsu rakstu Instructables. Tagad ir pienācis laiks jums pašiem mēģināt izveidot šo projektu. Ja jūs uzmanīgi sekojat katram solim, jums vajadzētu būt kustības sensoram un pret kontrolētu gaismu, kas darbojas līdzīgi kā mūsējais! Novēlam veiksmi šī projekta veidošanā un ceram, ka tas var palīdzēt ietaupīt elektroenerģiju un dabas resursus!

Ieteicams: