Obsah:
- Krok 1: Požadovaný softvér a hardvér
- Krok 2: Kódy (Vivado)
- Krok 3: Pochopenie toho, ako sa spájajú (schémy komponentov VHDL)
- Krok 4: Kód (Arduino)
- Krok 5: Ako do seba zapadajú naše súčasti
- Krok 6: Ukážka
- Krok 7: Čas to otestovať
Video: Svetlá ovládané snímačom pohybu/počítadlom: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Tento projekt bol vytvorený ako záverečný projekt pre kurz digitálneho dizajnu na Cal Poly, San Luis Obispo (CPE 133).
Prečo to robíme? Chceme pomôcť zachovať prírodné zdroje vo svete. Náš projekt sa zameriava na úsporu elektrickej energie. Úsporou väčšej elektrickej energie budeme môcť šetriť prírodné zdroje, ktoré sa používajú na výrobu elektriny. Na začiatku roku 2018 sa prírodné zdroje spotrebúvajú neuveriteľnou rýchlosťou. Chceme si byť vedomí svojho vplyvu na životné prostredie a podieľať sa na ochrane prírodných zdrojov. Elektroniku je možné implementovať rôznymi spôsobmi, aby sa šetrila energia, čo pomáha životnému prostrediu i nášmu ekonomickému stavu.*Tento model bol vytvorený pomocou komponentov, ktoré máme k dispozícii.
Čo bolo našou inšpiráciou? Ľudia často zabúdajú zhasínať sviatočné svetlá a plytvajú energiou tým, že ich nechajú cez noc zapnuté. V skutočnosti tento projekt ušetrí elektrickú energiu, pretože „sviatočné svetlá“by svietili iba vtedy, ak sú ľudia nablízku, čím by sa šetrila energia, keď nikto nie je nablízku. Okrem toho sme chceli navrhnúť časovač, aby sa svetlá po určitom čase úplne vypli, aby sa zaistilo, že sa nezapnú napríklad v dôsledku pohybu zaznamenaného o 3:00 hod.
Ako by ste mohli použiť tento dizajn? Tento dizajn je možné implementovať pre všetky druhy svetiel, či už sú dekoratívne, praktické alebo oboje. Ak napríklad chcete, aby vaše osvetlenie stola fungovalo iba 6 hodín. Budete musieť nastaviť počítadlo na 21 600 sekúnd (6 hodín x 3 600 sekúnd/hodinu). Kým sa počítadlo aktívne zvyšuje, snímač pohybu by riadil svetlo. Preto zakaždým, keď sa vypne počas tohto časového obdobia, stačí mávnuť rukou pred snímačom pohybu a znova sa zapne. Ak zaspíte pri stole a zobudíte sa o 7 hodín neskôr, váš pohyb ho nezapne.
Krok 1: Požadovaný softvér a hardvér
Softvér:
- Vivado 2016.2 (alebo novšiu verziu) nájdete tu
- Arduino IDE 1.8.3 (alebo novšiu verziu) nájdete tu
Hardvér:
- 1 základňa 3 doska
- 1 Arduino Uno
- 2 chlebové dosky
- 1 Ultrazvukový snímač rozsahu HC-SR04
- 9 káblov muž-muž
- 1 LED dióda
- 1 100Ω odpor
Krok 2: Kódy (Vivado)
Konečný stavový stroj (pozri stavový diagram vyššie):
LED dióda vyžadovala stroj s konečným stavom. LED dióda má iba dva stavy zapnutia a vypnutia. Iba dva vstupy riadia stav LED diódy, počítadla a senzora. LED dióda by mala svietiť iba vtedy, keď snímač detekuje pohyb a keď počítadlo počíta od nuly do tridsať sekúnd. V každom inom prípade LED dióda zhasne.
Názov súboru: LEDDES
Počítadlo:
Počítadlo nám umožňuje obmedziť dobu, počas ktorej môže snímač pohybu aktivovať LED diódu. Jeho hodnota sa zobrazuje na sedemsegmentovom displeji rady Basys 3 prostredníctvom zdrojového kódu („sseg_dec“). Keď je vypínač resetovaný (hodnota: „0“), počítadlo sa začne zvyšovať každú sekundu od 0 do 30. Keď dosiahne 30, na tomto čísle zamrzne. Reštartovať sa nebude od 0, kým sa prepínač Reset neprepne na „1“a späť na „1“. Ak sa počas behu počítadla reset stane „1“, počítadlo zamrzne pri akejkoľvek hodnote, ktorú dosiahlo. Keď sa Reset vráti na „0“, počítadlo sa reštartuje od 0 do 30. Táto implementácia tiež vyžaduje použitie hodinového signálu, jeho kód je uvedený nižšie („clk_div2“).
Názov súboru: FinalCounter
POSKYTNUTÉ SÚBORY:
Sedemsegmentový displej:
Tento kód umožňuje na sedemsegmentovom displeji zobrazovať desatinné hodnoty. Jeden submodul funguje ako dekodér medzi 8-bitovým binárnym vstupom a 4-bitovým binárnym kódovaným desatinným miestom. Druhý rozdeľuje hodinový signál, aby obnovil jeho hodnotu určitou rýchlosťou.
Názov súboru: sseg_dec
Hodinový signál:
Tento kód umožňuje počítadlu zvyšovať o 1 sekundu. Rozdeľuje vstupnú hodinovú frekvenciu na pomalšiu frekvenciu. Prispôsobili sme sa na poskytnutie periódy 1 sekundy zmenou konštanty max_count: integer: = (3000000) “na„ konštantný max_count: integer: = (50000000) “.
Názov súboru: clk_div2
Poskytnuté súbory: sseg_dec, clk_div2 *Tieto zdrojové súbory poskytol profesor Bryan Mealy.
Krok 3: Pochopenie toho, ako sa spájajú (schémy komponentov VHDL)
Hlavný súbor („MainProjectDES“) obsahuje všetky čiastkové súbory, o ktorých sa hovorilo predtým. Sú spojené vyššie uvedeným spôsobom. Rôzne komponenty sú prepojené pomocou máp portov na odoslanie signálu z jedného prvku do druhého.
Ako ste si mohli všimnúť, FinalCounter poskytuje 5-bitový výstup, zatiaľ čo sseg_dec vyžaduje 8-bitový vstup. Aby sme to vykompenzovali, nastavíme signál spájajúci obidva komponenty na začiatok „000“a prídavok na 5-bitový výstup z počítadla. Poskytuje teda 8-bitový vstup.
Obmedzenia:
Na spustenie týchto kódov na doske Basys 3 bol potrebný súbor obmedzení, ktorý každému signálu povedal, kam má ísť a ako sú diely prepojené.
Krok 4: Kód (Arduino)
Arduino Uno sme naprogramovali tak, aby používalo snímač pohybu na detekciu pohybu a poskytnutie výstupu, ktorý signalizuje rozsvietenie LED diódy. Použitie senzora na detekciu pohybu navyše vyžaduje spustené slučky, ktoré neustále hľadajú zmenu vzdialenosti. V zásade potrebuje časovač, ktorý beží súbežne a vydáva „vysoký“signál, aby sa dióda LED rozsvietila, zatiaľ čo časovač je potrebné resetovať, keď je detekovaný nový pohyb, čo je na základe znalostí takmer nemožné implementovať na Vivado triedy. Navyše sme použili Arduino, pretože by nebolo možné použiť HC-SR04 s doskou Basys 3, pretože doska dodáva iba 3,3 V, zatiaľ čo snímač vyžaduje napájanie 5 V. Na implementáciu detekčného pohybu je to skutočné kódovanie na rozdiel od CAD vo VHDL.
Použili sme vstavanú funkciu impulzu pre senzor, aby sme získali čas, ktorý uplynie medzi zvukom, ktorý pôvodne vychádzal zo senzora, a zvukom, ktorý sa odrazí späť pri náraze na predmet. Potom pomocou rýchlosti zvuku a časového intervalu vypočítame vzdialenosť medzi predmetom a senzorom. Z toho uložíme aktuálnu vzdialenosť a budeme ju sledovať. Vzdialenosť kontrolujeme každých 150 ms. Knižnicu elapsedmil sme tiež použili na spustenie vnútorného časovača vo vnútri arduina, aby sme sledovali uplynulý čas. Ak zistíme zmenu vzdialenosti, ktorá zodpovedá pohybu, časovač sa vynuluje a svetlo zostane rozsvietené, kým neuplynú 3 sekundy. Kedykoľvek senzor zaznamená ďalší pohyb, časovač sa vynuluje a signál pre LED svetlo bude počas nasledujúcich 3 sekúnd „vysoký“. Kópiu nášho kódu Arduino sme pripojili nižšie.
Krok 5: Ako do seba zapadajú naše súčasti
Ako vidíte na „Schéme zapojenia Basys3: Pmod*“a na fotografii dosky Arduino Uno, zvýraznili sme a označili porty, ktoré sme použili.
1. Doska LED a základne 3
LED dióda je zapojená do série s odporom 100Ω. -Biely vodič spája odpor s pinom PWR dosky Basys 3. -Žltý vodič spája LED diódu s pinom H1 dosky Basys 3.
2. Senzor pohybu a Arduino Uno
-Oranžový vodič spája Vcc (výkon) snímača pohybu s kolíkom 5 V na doske Arduino Uno.-Biely vodič spája kolík Trig snímača pohybu s kolíkom 10 dosky Arduino Uno.-Žltý vodič spája kolík Echo snímač pohybu na kolík 9 dosky Arduino Uno.-Čierny vodič spája pin GND snímača pohybu s kolíkom GND dosky Arduino Uno.
[Káble, ktoré sme použili, boli príliš krátke na to, aby sa dostali ku komponentom, a preto boli prepojené]
3. Doska Basys 3 a Arduino Uno
Žltý vodič spája pin A14 dosky Basys 3 s kolíkom 6 dosky Arduino Uno.
*Tento diagram bol prevzatý z referenčného manuálu spoločnosti Digilent „Basys 3 ™ FPGA Board Reference Manual“, ktorý nájdete tu.
Krok 6: Ukážka
Krok 7: Čas to otestovať
Gratulujem Dostali ste sa na koniec nášho projektu pohybového senzora a pultom riadeného svetla! Ďakujem vám veľmi pekne za prečítanie nášho príspevku s pokynmi. Teraz je načase, aby ste sa pokúsili postaviť tento projekt sami. Ak pozorne sledujete každý krok, mali by ste mať snímač pohybu a svetlo ovládané pultom, ktoré funguje podobne ako naše! Prajeme vám veľa šťastia pri budovaní tohto projektu a dúfame, že môže prispieť k úspore elektrickej energie i prírodných zdrojov!
Odporúča:
Automatické ovládanie izbového svetla a ventilátora s obojsmerným počítadlom návštevníkov: 3 kroky
Automatické ovládanie osvetlenia miestnosti a ventilátora s obojsmerným návštevníkom: Často vidíme počítadlá návštevníkov na štadióne, v nákupnom centre, v kanceláriách, v triedach atď. Ako počítajú ľudí a zapínajú alebo vypínajú svetlo, keď nikto nie je vo vnútri? Dnes sme tu s projektom automatického izbového regulátora svetla s obojsmerným pultom návštevníkov
DIY: Stropný mini senzorový box so zaostriteľným snímačom pohybu: 4 kroky
DIY: Mini senzorový box namontovaný na strop so zaostriteľným snímačom pohybu: Dobrý deň. Pred nejakým časom som pomáhal svojmu priateľovi s konceptom inteligentnej domácnosti a vytvoril som mini senzorový box s vlastným dizajnom, ktorý bolo možné namontovať na strop do otvoru 40 x 65 mm. Tento box pomáha: • merať intenzitu svetla • merať vlhké
Vylepšite svojpomocný zavlažovací hrniec pomocou WiFi na kutilský detektor pohybu s detekciou pohybu a sadbovačom: 17 krokov
Vylepšite svojpomocný zavlažovací kvetináč pomocou WiFi na kutilský detektor pohybu detektora pohybu : V tomto článku vám ukážeme, ako upgradovať svoj vlastný zavlažovací kvetináč s WiFi na samonavlažovací kvetináč s WiFi a alarmom detekcie pohybu. nečítali ste článok o tom, ako si postaviť svojpomocný zavlažovací hrniec pomocou WiFi, môžete
Automatické osvetlenie miestností s počítadlom návštevníkov!: 7 krokov
Automatické osvetlenie miestností s počítadlom návštevníkov !: Hej! Ak sa chcete zbaviť nudných vypínačov a lacno zautomatizovať osvetlenie miestnosti, ste na správnom mieste! Postavenie tohto projektu bude veľmi jednoduché. Nesledujte to kvôli jednoduchosti, bude to naozaj super a 100% práca
Časovač 555 s počítadlom desaťročí, diódami LED a piezoelektrickým bzučiakom; základný popis obvodu: 6 krokov
Časovač 555 s počítadlom desaťročí, diódami LED a piezoelektrickým bzučiakom; základný popis obvodu: Tento obvod sa skladá z troch častí. Jedná sa o piezový bzučiak, ktorý vydáva zvuk. Kód (program) zahrá " všetko najlepšie k narodeninám " Arduino prostredníctvom piezo. Ďalším krokom je časovač 555, ktorý bude vytvárať impulzy, ktoré fungujú ako hodiny