Obsah:
- Krok 1: Požadovaný software a hardware
- Krok 2: Kódy (Vivado)
- Krok 3: Pochopení toho, jak se spojují (schémata komponent VHDL)
- Krok 4: Kód (Arduino)
- Krok 5: Jak do sebe zapadají naše součásti
- Krok 6: Ukázka
- Krok 7: Čas to vyzkoušet
Video: Světla ovládaná snímačem pohybu/čítačem: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Tento projekt byl vytvořen jako závěrečný projekt kurzu digitálního designu na Cal Poly, San Luis Obispo (CPE 133).
Proč to děláme? Chceme pomáhat chránit přírodní zdroje ve světě. Náš projekt se zaměřuje na úsporu elektřiny. Ušetřením většího množství elektřiny budeme schopni šetřit přírodní zdroje, které se používají k výrobě elektřiny. Na začátku roku 2018 se přírodní zdroje spotřebovávají neuvěřitelnou rychlostí. Chceme si být vědomi svého dopadu na životní prostředí a hrát svou roli při ochraně přírodních zdrojů. Elektroniku lze implementovat různými způsoby, abychom šetřili energii, což pomáhá životnímu prostředí i našemu ekonomickému stavu.*Tento model byl vytvořen pomocí komponent, které máme k dispozici.
Jaká byla naše inspirace? Lidé často zapomínají zhasnout sváteční světla a plýtvali energií tím, že je nechali přes noc. Ve skutečnosti bude tento projekt šetřit elektřinu, protože „sváteční světla“by se rozsvítila pouze tehdy, když jsou lidé poblíž, čímž by se šetřila energie, když nikdo není poblíž. Kromě toho jsme chtěli navrhnout časovač, aby se světla po určité době úplně vypnula, aby se zajistilo, že se nezapnou kvůli pohybu detekovanému například ve 3 hodiny ráno.
Jak byste mohli použít tento design? Tento design lze implementovat pro všechny druhy světel, ať už jsou dekorativní, praktické nebo obojí. Pokud chcete, aby vaše stolní světlo fungovalo například jen 6 hodin v kuse. Budete muset nastavit počítadlo na 21 600 sekund (6 hodin x 3 600 sekund/hodinu). Zatímco se počítadlo aktivně zvyšuje, pohybové čidlo by ovládalo světlo. Pokaždé, když se během této doby vypne, stačí mávnout rukou před pohybovým senzorem a znovu se zapne. Pokud usnete u stolu a probudíte se o 7 hodin později, váš pohyb jej nezapne.
Krok 1: Požadovaný software a hardware
Software:
- Vivado 2016.2 (nebo novější verzi) najdete zde
- Arduino IDE 1.8.3 (nebo novější verzi) najdete zde
Hardware:
- 1 základna 3 deska
- 1 Arduino Uno
- 2 prkénka
- 1 Ultrazvukový snímač rozsahu HC-SR04
- 9 kabelů typu male-to-male
- 1 LED
- 1 100Ω odpor
Krok 2: Kódy (Vivado)
Konečný stavový stroj (viz stavový diagram výše):
LED dioda vyžadovala konečný automat. LED má pouze dva stavy zapnutí a vypnutí. Pouze dva vstupy řídí stav LED, čítače a senzoru. LED by měla svítit pouze tehdy, když senzor detekuje pohyb a když počítadlo počítá od nuly do třiceti sekund. V ostatních případech LED zhasne.
Název souboru: LEDDES
Čelit:
Počitadlo nám umožňuje omezit dobu, po kterou může snímač pohybu aktivovat LED. Jeho hodnota je zobrazena na sedmi segmentovém displeji desky Basys 3 prostřednictvím zdrojového kódu („sseg_dec“). Když je spínač Reset dole (hodnota: '0'), počitadlo se začne zvyšovat každou sekundu od 0 do 30. Když dosáhne 30, na tomto čísle zamrzne. Nebude se restartovat od 0, dokud nebude přepínač Reset přepnut na „1“a zpět na „1“. Pokud se reset stane „1“, zatímco čítač pokračuje, čítač zamrzne na jakékoli hodnotě, které dosáhl. Když se Reset vrátí na ‘0‘, čítač se restartuje od 0 do 30. Tato implementace také vyžaduje použití hodinového signálu, jeho kód je uveden níže („clk_div2“).
Název souboru: FinalCounter
POSKYTNUTÉ SOUBORY:
Sedm segmentový displej:
Tento kód umožňuje sedmisegmentovému displeji zobrazovat desetinné hodnoty. Jeden submodul funguje jako dekodér mezi 8bitovým binárním vstupem a 4bitovým binárním kódovaným desetinným místem. Druhý rozděluje hodinový signál, aby obnovil jeho hodnotu určitou rychlostí.
Název souboru: sseg_dec
Hodinový signál:
Tento kód umožňuje čítači zvyšovat v krocích po 1 sekundě. Rozděluje vstupní hodinovou frekvenci na pomalejší frekvenci. Přizpůsobili jsme se tak, aby poskytovali období 1 sekundy změnou konstanty max_count: integer: = (3000000) “na„ konstantní max_count: integer: = (50000000) “.
Název souboru: clk_div2
Poskytnuté soubory: sseg_dec, clk_div2 *Tyto zdrojové soubory poskytl profesor Bryan Mealy.
Krok 3: Pochopení toho, jak se spojují (schémata komponent VHDL)
Hlavní soubor („MainProjectDES“) obsahuje všechny dílčí soubory, o nichž jsme hovořili dříve. Jsou spojeny výše uvedeným způsobem. Různé komponenty jsou propojeny pomocí map portů k odeslání signálu z jednoho prvku do druhého.
Jak jste si možná všimli, FinalCounter poskytuje 5bitový výstup, zatímco sseg_dec vyžaduje 8bitový vstup. Abychom to kompenzovali, nastavíme signál spojující obě komponenty tak, aby začínal „000“a přidal 5bitový výstup z čítače. Poskytuje tedy 8bitový vstup.
Omezení:
Aby bylo možné spouštět tyto kódy na desce Basys 3, byl vyžadován soubor omezení, který každému signálu sděluje, kam jít a jak byly části spojeny.
Krok 4: Kód (Arduino)
Arduino Uno jsme naprogramovali tak, aby používalo pohybový senzor k detekci pohybu a poskytovalo výstup, který signalizuje rozsvícení LED. Použití senzoru k detekci pohybu navíc vyžaduje běžící smyčky, které neustále hledají změnu vzdálenosti. V zásadě potřebuje časovač, který běží souběžně k výstupu „vysokého“signálu, aby se LED rozsvítila, zatímco časovač je třeba resetovat, jakmile je detekován nový pohyb, což je téměř nemožné implementovat na Vivado na základě rozsahu znalostí třídy. Kromě toho jsme použili Arduino, protože by nebylo možné použít HC-SR04 s deskou Basys 3, protože deska dodává pouze 3,3 V, zatímco snímač vyžaduje napájení 5 V. Pro implementaci detekce pohybu je to skutečné kódování na rozdíl od CAD ve VHDL.
Použili jsme vestavěnou funkci pulsu pro snímač, abychom získali čas, který uplynul mezi zvukem původně vycházejícím ze snímače a zvukem, který se odráží zpět při nárazu na předmět. Poté pomocí rychlosti zvuku a časového intervalu vypočítáme vzdálenost mezi objektem a senzorem. Z toho uložíme aktuální vzdálenost a sledujeme ji. Vzdálenost kontrolujeme každých 150 ms. Také jsme použili knihovnu elapsedmil ke spuštění interního časovače uvnitř arduina, abychom měli přehled o uplynulém čase. Pokud zjistíme změnu vzdálenosti, která odpovídá pohybu, časovač se vynuluje a ponechá světlo zapnuté, dokud neuplynou 3 sekundy. Kdykoli senzor detekuje další pohyb, časovač se resetuje na 0 a signál pro LED světlo bude po dobu dalších 3 sekund „vysoký“. Níže jsme připojili kopii našeho kódu Arduino.
Krok 5: Jak do sebe zapadají naše součásti
Jak vidíte na „Basys3: Pmod Pin-out Diagram*“a fotografii desky Arduino Uno Board, zvýraznili jsme a označili porty, které jsme použili.
1. Deska LED a Basys 3
LED je zapojena do série s odporem 100Ω. -Bílý vodič spojuje rezistor s pinem PWR desky Basys 3. -Žlutý vodič spojuje LED s pinem H1 desky Basys 3.
2. Senzor pohybu a Arduino Uno
-Oranžový vodič připojuje Vcc (napájení) snímače pohybu na pin 5V desky Arduino Uno.-Bílý vodič spojuje pin Trig snímače pohybu na pin 10 desky Arduino Uno. -Žlutý vodič spojuje pin Echo snímač pohybu na pin 9 desky Arduino Uno.-Černý vodič spojuje pin GND snímače pohybu s pinem GND desky Arduino Uno.
[Dráty, které jsme použili, byly příliš krátké na to, aby dosáhly na součásti, a proto byly propojeny]
3. Deska Basys 3 a Arduino Uno
Žlutý vodič spojuje pin A14 desky Basys 3 s pinem 6 desky Arduino Uno.
*Tento diagram byl převzat z „Referenční příručky k desce Basys 3 ™ FPGA rady společnosti Digilent“, kterou najdete zde.
Krok 6: Ukázka
Krok 7: Čas to vyzkoušet
Gratulujeme! Dostali jste se na konec našeho projektu pohybového senzoru a pultem řízeného světla! Mnohokrát vám děkujeme za přečtení našeho příspěvku Instructables. Nyní je načase, abyste se pokusili postavit tento projekt sami. Pokud pečlivě sledujete každý krok, měli byste mít pohybové čidlo a světlo ovládané pultem, které funguje podobně jako naše! Přejeme vám hodně štěstí při stavbě tohoto projektu a doufáme, že může přispět k úspoře elektřiny i přírodních zdrojů!
Doporučuje:
Dálkově ovládaná stolní světla RGB: 5 kroků
Dálkově ovládaná RGB stolní světla: Tento projekt ukazuje použití firebase jako serveru pro ovládání a manipulaci s LED diodami na zadní straně mého stolu
Světla na koloběžce ovládaná hlasem a garážová vrata: 6 kroků
Hlasem ovládaná světla koloběžek a garážová vrata: Ahoj všichni! Nedávno jsem si koupil elektrickou koloběžku, ale neměla zadní světlo ani vestavěný otvírač garážových vrat … PŘEKVAPENÍ !! (ノ ゚ 0 ゚) ノ ~ Tak jsem se rozhodl, že si místo jejich nákupu vyrobím vlastní dálková a zadní světla garážových vrat. Co je
Hlasem ovládaná světla odkudkoli s Jasonem: 7 kroků
Hlasem ovládaná světla odkudkoli s Jasonem: AC světla, která jsou ovládána odkudkoli s připojením k internetu pomocí NodeMCU (ESP8266) a Jason (Android App). Jason je aplikace ovládaná hlasem, kterou jsem kódoval pro zařízení Android pro ovládání elektrického stavu AC spotřebič
Světla snímače pohybu Základní 3: 8 kroků
Motion Sensor Lights Basys3: Pro náš konečný projekt v digitálním designu jsme se rozhodli simulovat světla pohybových senzorů. Aktivují se nejen v blízkosti objektu, ale také se aktivují pouze v určitou denní dobu. Jsme schopni to modelovat pomocí FPGA (deska Basys3)
Světla ovládaná aplikací Lego Mini Cooper: 7 kroků (s obrázky)
Lego Mini Cooper App Controlled Lights: Danger, UXB! Je vaše vysněná práce odborníkem na likvidaci bomb, ale kvůli umírající části váháte? Pak je toto projekt pro vás! Strávíte dlouhé hodiny drobnými úpravami vysoce nestabilního zařízení, potíte se potem z vašeho br