Përmbajtje:
- Hapi 1: Softueri dhe hardueri i kërkuar
- Hapi 2: Kodet (Vivado)
- Hapi 3: Kuptimi se si ata bashkohen (Skemat e Përbërësve VHDL)
- Hapi 4: Kodi (Arduino)
- Hapi 5: Si Komponentët tanë Përshtaten Së bashku
- Hapi 6: Demonstrim
- Hapi 7: Koha për ta provuar
Video: Sensori i lëvizjes/Dritat e kontrolluara kundër: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Ky projekt u krijua si një projekt përfundimtar për një kurs të Dizajnit Dixhital në Cal Poly, San Luis Obispo (CPE 133).
Pse po e bëjmë këtë? Ne duam të ndihmojmë në ruajtjen e burimeve natyrore në botë. Projekti ynë fokusohet në kursimin e energjisë elektrike. Duke kursyer më shumë energji elektrike, ne do të jemi në gjendje të ruajmë burimet natyrore që përdoren për të gjeneruar energji elektrike. Ndërsa fillojmë 2018, burimet natyrore po konsumohen me një ritëm të jashtëzakonshëm. Ne duam të jemi të ndërgjegjshëm për ndikimin tonë në mjedisin tonë dhe të luajmë rolin tonë në ruajtjen e burimeve natyrore. Elektronika mund të zbatohet në mënyra të ndryshme për të kursyer energji e cila ndihmon mjedisin si dhe gjendjen tonë ekonomike.*Ky model u krijua duke përdorur komponentët në dispozicion për ne.
Cili ishte frymëzimi ynë? Njerëzit shpesh harrojnë të fikin dritat e tyre të pushimeve dhe humbin energji duke i lënë ato gjatë natës. Në realitet, ky projekt do të kursejë energji elektrike sepse "dritat e festave" do të ndizen vetëm kur njerëzit janë afër, duke kursyer kështu energji kur askush nuk është përreth. Për më tepër, ne donim të krijonim një kohëmatës në mënyrë që dritat të fiken plotësisht pas një kohe të caktuar për të siguruar që ato të mos ndizen për shkak të lëvizjes së zbuluar në orën 3 të mëngjesit, për shembull.
Si mund ta përdorni këtë dizajn? Ky dizajn mund të zbatohet për të gjitha llojet e dritave, pavarësisht nëse janë dekorative, praktike ose të dyja. Nëse dëshironi që drita e tavolinës tuaj të funksionojë vetëm për 6 orë në të njëjtën kohë, për shembull. Ju do të duhet të vendosni një numërues në 21, 600 sekonda (6 orë x 3, 600 sekonda/orë). Ndërsa numëruesi po rritet në mënyrë aktive, sensori i lëvizjes do të kontrollojë dritën. Kështu, sa herë që fiket gjatë asaj periudhe kohore, ju vetëm duhet të tundni dorën para sensorit të lëvizjes dhe ai do të ndizet përsëri. Nëse flini në tryezën tuaj dhe zgjoheni 7 orë më vonë, lëvizja juaj nuk do ta ndezë atë.
Hapi 1: Softueri dhe hardueri i kërkuar
Softuer:
- Vivado 2016.2 (ose një version më i fundit) mund të gjendet këtu
- Arduino IDE 1.8.3 (ose një version më i fundit) mund të gjendet këtu
Hardware:
- 1 Basys 3 bord
- 1 Arduino Uno
- 2 Tabela Breadboard
- 1 Sensor tejzanor i rangut HC-SR04
- 9 Tela meshkuj me meshkuj
- 1 LED
- 1 Rezistencë 100Ω
Hapi 2: Kodet (Vivado)
Makina me gjendje të fundme (shiko diagramin e gjendjes më lart):
LED kërkonte një makinë me gjendje të fundme. Një LED ka vetëm dy gjendje të ndezjes dhe fikjes. Vetëm dy hyrje kontrollojnë gjendjen e LED, numëruesin dhe sensorin. E vetmja kohë që LED duhet të jetë e ndezur është kur sensori zbulon lëvizjen dhe kur numëruesi numëron nga zero në tridhjetë sekonda. Çdo rast tjetër LED do të fiket.
Emri i skedarit: LEDDES
Counter:
Numëruesi na lejon të kufizojmë kohëzgjatjen gjatë së cilës sensori i lëvizjes mund të aktivizojë LED. Vlera e tij shfaqet në ekranin e shtatë segmenteve të Bordit Basys 3 përmes një kodi burimor ("sseg_dec"). Kur çelësi i Rivendosjes është poshtë (vlera: '0'), numëruesi fillon të rritet çdo sekondë nga 0 në 30. Kur arrin 30, ai ngrin në atë numër. Nuk do të rifillojë nga 0 derisa çelësi Reset të kalohet në '1' dhe përsëri në '1.' Nëse Reset bëhet '1' ndërkohë që numëruesi po shkon, numëruesi do të ngrijë në çfarëdo vlere që kishte arritur. Kur Reset kthehet në '0', numëruesi do të riniset nga 0 në 30. Ky zbatim kërkon gjithashtu përdorimin e një sinjali të orës, kodi i tij jepet më poshtë ("clk_div2").
Emri i skedarit: FinalCounter
DOSJET E PARAQITUR:
Shfaqja e Shtatë Segmenteve:
Ky kod lejon që ekrani me shtatë segmente të shfaq vlerat dhjetore. Një nënmodul vepron si dekodues midis një hyrje binare 8-bit dhe një dhjetore 4-bitëshe të koduar binar. Tjetri ndan sinjalin e orës për të rifreskuar vlerën e tij me një ritëm të caktuar.
Emri i skedarit: sseg_dec
Sinjali i orës:
Ky kod lejon që numëruesi të rritet në rritje prej 1 sekonde. Ai ndan frekuencën e orës hyrëse në një frekuencë më të ngadaltë. Ne u përshtatëm për të siguruar një periudhë prej 1 sekonde duke ndryshuar konstantën max_count: integer: = (3000000)”në“max_count konstante: integer: = (50000000).”
Emri i skedarit: clk_div2
Skedarët e ofruar: sseg_dec, clk_div2 *Këto skedarë burim u siguruan nga profesori Bryan Mealy.
Hapi 3: Kuptimi se si ata bashkohen (Skemat e Përbërësve VHDL)
Skedari kryesor ("MainProjectDES") përmban të gjithë nënfajlet e diskutuar më parë. Ato janë të lidhura në mënyrën e mësipërme. Komponentët e ndryshëm janë të ndërlidhur duke përdorur hartat e portit për të dërguar një sinjal nga një element në tjetrin.
Siç mund ta keni vënë re, FinalCounter siguron një dalje 5-bit ndërsa sseg_dec kërkon një hyrje 8-bit. Për të kompensuar, ne vendosim që sinjali që lidh të dy përbërësit të fillojë me "000" dhe të shtojë daljen 5-bitësh nga sporteli. Duke siguruar kështu një hyrje 8-bit.
Kufizimet:
Për të ekzekutuar këto kode në Tabelën Basys 3, kërkohej një skedar kufizimesh, i cili i tregonte secilit sinjal se ku të shkonte dhe si lidheshin pjesët.
Hapi 4: Kodi (Arduino)
Ne programuam Arduino Uno të përdorte sensorin e lëvizjes për të zbuluar lëvizjen dhe për të siguruar një dalje që sinjalizon që LED të ndizet. Për më tepër, përdorimi i sensorit për të zbuluar lëvizjen kërkon drejtimin e sytheve që kërkojnë vazhdimisht ndryshim në distancë. Në thelb, ajo ka nevojë për një kohëmatës që funksionon njëkohësisht për të nxjerrë një sinjal "të lartë" që LED të ndizet ndërsa kohëmatësi duhet të rivendoset sapo të zbulohet lëvizje e re, e cila është pothuajse e pamundur të zbatohet në Vivado bazuar në fushëveprimin e njohurive të klasës. Për më tepër, ne përdorëm një Arduino sepse nuk do të ishte e mundur të përdornim HC-SR04 me Basys 3 Board pasi bordi furnizon vetëm 3.3V ndërsa sensori kërkon një furnizim me energji 5V. Për zbatimin e lëvizjes zbuluese, është kodimi aktual në krahasim me CAD në VHDL.
Ne përdorëm funksionin e impulsit të ndërtuar për sensorin për të tërhequr kohën e kaluar midis zërit të lëshuar fillimisht nga sensori dhe zërit që kthehet kur godet një objekt. Pastaj ne përdorim shpejtësinë e zërit dhe intervalin kohor për të llogaritur distancën midis objektit dhe sensorit. Nga kjo, ne ruajmë distancën aktuale dhe mbajmë gjurmët e saj. Ne kontrollojmë distancën çdo 150ms. Ne gjithashtu përdorëm bibliotekën elapsedmil për të drejtuar një kohëmatës të brendshëm brenda arduino për të mbajtur gjurmët e kohës së kaluar. Nëse zbulojmë një ndryshim në distancë, i cili korrespondon me një lëvizje, kohëmatësi rivendoset në zero dhe do ta mbajë dritën ndezur derisa të kenë kaluar 3 sekonda. Sa herë që sensori zbulon një lëvizje tjetër, kohëmatësi rivendoset në 0 dhe sinjali për dritën LED do të jetë "i lartë" për 3 sekondat e ardhshme. Ne kemi bashkangjitur një kopje të kodit tonë Arduino më poshtë.
Hapi 5: Si Komponentët tanë Përshtaten Së bashku
Siç mund ta shihni në "Basys3: Pmod Diagram Pin-out*" dhe foton e Arduino Uno Board, ne theksuam dhe etiketuam portet që përdorëm.
1. Tabela LED dhe Basys 3
LED është e lidhur në seri me rezistencën 100Ω. -Teli i bardhë lidh rezistencën me pin PWR të tabelës Basys 3. -Teli i verdhë lidh LED me pin H1 të bordit Basys 3.
2. Sensori i Lëvizjes dhe Arduino Uno
-Teli portokalli lidh Vcc (fuqinë) e sensorit të lëvizjes me pin 5V të bordit Arduino Uno.-Teli i bardhë lidh pin Trig të sensorit të lëvizjes me kunjin 10 të bordit Arduino Uno.-Teli i verdhë lidh pin Echo të sensori i lëvizjes në kunjin 9 të bordit Arduino Uno.-Teli i zi lidh pinin GND të sensorit të lëvizjes me kunjin GND të bordit Arduino Uno.
[Telat që përdorëm ishin shumë të shkurtër për të arritur në përbërës, kështu që ata ishin të ndërlidhur]
3. Bordi Basys 3 dhe Arduino Uno
Teli i verdhë lidh pinin A14 të tabelës Basys 3 me pinin 6 të bordit Arduino Uno.
*Ky diagram është marrë nga manuali i referencës i Digilent "Basys 3 ™ FPGA Board" i cili mund të gjendet këtu.
Hapi 6: Demonstrim
Hapi 7: Koha për ta provuar
Urime! Ju keni arritur në fund të projektit tonë të sensorit të lëvizjes dhe dritës së kontrolluar kundër! Faleminderit shumë që lexuat postimin tonë Instructables. Tani është koha që ju të përpiqeni ta ndërtoni vetë këtë projekt. Nëse ndiqni çdo hap me kujdes, duhet të keni një sensor lëvizjeje dhe një dritë të kontrolluar kundër që funksionon e ngjashme me tonën! Ne ju dëshirojmë fat të mirë në ndërtimin e këtij projekti, dhe shpresojmë se mund të kontribuojë në kursimin e energjisë elektrike, si dhe burimet natyrore!
Recommended:
Dritat e desktopit të kontrolluara nga distanca RGB: 5 hapa
Dritat e desktopit RGB të kontrolluara nga distanca: Ky projekt demonstron përdorimin e bazës së zjarrit si një server për kontrollimin dhe manipulimin e dritave të drejtuara përgjatë pjesës së pasme të tryezës sime
Dritat e kontrolluara nga zëri nga kudo me Jason: 7 hapa
Dritat e kontrolluara me zë nga kudo me Jason: Dritat AC që kontrollohen nga kudo me lidhje interneti duke përdorur NodeMCU (ESP8266) dhe Jason (Aplikacioni Android). Jason është një aplikacion ndihmës i kontrolluar nga zëri që kam koduar për pajisjet Android për të kontrolluar gjendjen elektrike të një Pajisja AC, pa
Kundër dritat e kuzhinës duke përdorur Arduino: 3 hapa
Kuzhina kundër dritave duke përdorur Arduino: Për ca kohë tani kam dashur të zhyt këmbët në automatizimin e shtëpisë. Vendosa të filloja me një projekt të thjeshtë. Fatkeqësisht, unë nuk kam bërë asnjë fotografi gjatë procesit, por kam përdorur një dërrasë për të testuar idetë e mia së pari, dhe vetëm e bashkova atë së bashku
Dritat e kontrolluara të aplikacionit Lego Mini Cooper: 7 hapa (me fotografi)
Lego Mini Cooper Dritat e Kontrolluara: Rrezik, UXB! A është puna juaj e ëndrrave të jeni një ekspert i asgjësimit të bombave, por ju po hezitoni për shkak të pjesës që po vdes? Atëherë ky është projekti për ju! Do të kaloni orë të gjata duke bërë rregullime të vogla në një pajisje shumë të paqëndrueshme, duke djersitur nga brumi juaj
Dritat e brendshme të kontrolluara me Wi -Fi (makinë): 5 hapa (me fotografi)
Dritat e brendshme të kontrolluara Wifi (makinë): Përshëndetje të gjithëve! Në këtë udhëzues, ne do të instalojmë një Rrip LED RGB të kontrolluar nga Wifi për pjesën e brendshme të makinës tuaj. Në këtë projekt, unë do të përdor makinën time (2010 Mitsubishi Lancer GTS) por konfigurimi duhet të funksionojë për shumicën e automjeteve. Aty