Obsah:

Svetlá ovládané snímačom pohybu/počítadlom: 7 krokov
Svetlá ovládané snímačom pohybu/počítadlom: 7 krokov

Video: Svetlá ovládané snímačom pohybu/počítadlom: 7 krokov

Video: Svetlá ovládané snímačom pohybu/počítadlom: 7 krokov
Video: R7S светодиодная лампа | Распаковка и разборка светодиодной лампы R7S 2024, Júl
Anonim
Svetlá ovládané snímačom pohybu/počítadlom
Svetlá ovládané snímačom pohybu/počítadlom

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

Požadovaný softvér a hardvér
Požadovaný softvér a hardvér
Požadovaný softvér a hardvér
Požadovaný softvér a hardvér
Požadovaný softvér a hardvér
Požadovaný softvér a hardvér
Požadovaný softvér a hardvér
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)

Kódy (Vivado)
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)

Pochopenie toho, ako sa spájajú (schémy komponentov VHDL)
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 do seba zapadajú naše komponenty!
Ako do seba zapadajú naše komponenty!
Ako do seba zapadajú naše komponenty!
Ako do seba zapadajú naše komponenty!
Ako do seba zapadajú naše komponenty!
Ako do seba zapadajú naše komponenty!

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: