Obsah:

Třídění koše CPE 133: 14 kroků
Třídění koše CPE 133: 14 kroků

Video: Třídění koše CPE 133: 14 kroků

Video: Třídění koše CPE 133: 14 kroků
Video: Programming - Computer Science for Business Leaders 2016 2024, Listopad
Anonim
Třídění odpadu CPE 133
Třídění odpadu CPE 133

Pro naši třídu CPE 133 v Cal Poly nám bylo řečeno, abychom vytvořili projekt VHDL/Basys 3, který by pomohl životnímu prostředí a byl dostatečně jednoduchý, abychom jej mohli implementovat pomocí našich nových znalostí digitálního designu. Myšlenka našeho projektu, že lidé obecně nepřemýšlejí o tom, kam vyhodí odpadky. Rozhodli jsme se vytvořit stroj, který by přinutil lidi přemýšlet, kam ukládají své odpadky. Náš třídič odpadu přebírá vstup uživatele prostřednictvím tří přepínačů, z nichž každý představuje buď koš, recyklaci nebo kompost. Jakmile si uživatel vybere typ odpadu, kterého by se chtěl zbavit, stiskne tlačítko. Toto tlačítko způsobí otevření odpovídajících víček kontejnerů. Stroj také pomocí displeje na základnách 3 indikoval, zda jsou některá víka aktuálně otevřená. Po uvolnění tlačítka se víčka opět zavřou, takže stroj bude připraven pro dalšího uživatele.

Krok 1: Materiály

Materiály
Materiály
Materiály
Materiály
Materiály
Materiály

Materiály potřebné pro tento projekt jsou:

Základní deska 3

Počítač s nainstalovaným Vivado

3x servo*

3 stopy měděného drátu

Řezačka/odizolovač drátu

Páječka a pájka

*protože serva jsou drahá a jsme vysokoškoláci, nahradili jsme 68 ohmový odpor a LED pro každé servo jako prototyp (kód funguje stejně)

Krok 2: Začněte s kódováním

Začátek kódování
Začátek kódování
Začátek kódování
Začátek kódování
Začátek kódování
Začátek kódování

Pro tento projekt je třeba napsat spoustu kódu. Budeme používat kód VHDL napsaný ve Vivado. Pro začátek budeme chtít vytvořit nový projekt. Nejprve pojmenujete projekt a zadáte typ projektu. Ujistěte se, že jste vybrali stejná nastavení jako na obrázku. Když se dostanete na obrazovku zdrojů, budete chtít přidat šest zdrojů s názvem „top“, „flip_flop“, „segmenty“, „servo_top“, „servo_sig“a „clk_div“. Ujistěte se, že jste vybrali VHDL pro jazyk každého souboru, ne pro Verilog. Na obrazovce omezení byste měli vytvořit jeden soubor pro přiřazení pinů. Název tohoto souboru není důležitý. Poté budete vyzváni k výběru desky, kterou budete používat. Ujistěte se, že jste vybrali ten správný. Referenční fotografie pro správný výběr. Poslední krok vás vyzve k zadání vstupů a výstupů každého zdrojového souboru. Tento krok lze kódovat později, takže klikněte na další.

Krok 3: Soubor omezení

Soubor omezení
Soubor omezení
Soubor omezení
Soubor omezení

V tomto kroku napíšeme soubor omezení. To říká Vivadovi, které piny budou odesílat/přijímat které signály z obvodů. Budeme potřebovat hodiny, tři přepínače, sedmisegmentový displej (sedm katod a čtyři anody), tlačítko a tři výstupní piny PMOD, které bude servo/LED používat. Referenční fotografie, jak by měl kód vypadat.

Krok 4: Flip Flop File

Flip Flop File
Flip Flop File

Další soubor, který budeme psát, je zdrojový soubor flip_flip. Toto bude implementace VHDL D flip flopu. Jinými slovy, bude procházet pouze jeho vstup na výstup na stoupající hraně hodinového signálu a při stisknutí tlačítka. Bude to trvat hodiny, D a tlačítko jako vstup a výstup Q. bude odkazovat na fotografie pro kód. Účelem tohoto souboru je umožnit, aby se přihrádky otevíraly pouze při stisknutí tlačítka, nikoli přímo otevírat pokaždé, když je přepínač otočen, a zavírat se pouze při přepnutí přepínače zpět.

Krok 5: Soubor segmentů

Soubor segmentů
Soubor segmentů

Dalším zapisovaným souborem je soubor segmentů. To bude mít tlačítko jako vstupní a výstupní hodnoty pro sedm katod a čtyři anody sedmi segmentového displeje Basys 3. Tento soubor způsobí, že sedmisegmentový displej zobrazí "C", když jsou koše zavřené, a "O", když jsou koše otevřené. Kód viz přiložená fotka.

Krok 6: Soubor oddělovače hodin

Soubor oddělovače hodin
Soubor oddělovače hodin

Serva fungují tak, že odebírají signál PWM s frekvencí 64 kHz, zatímco hodiny zabudované v Basys 3 fungují při 50 MHz. Soubor děliče hodin převede výchozí hodiny na přátelskou frekvenci pro servo. Soubor převezme hodiny a resetovací signál jako vstup a vydá nový hodinový signál. Kód najdete na přiložené fotografii.

Krok 7: Soubor signálu servo

Soubor signálu servo
Soubor signálu servo

Soubor signálu serva bude mít hodinový vstup, resetovací vstup a vstup požadované polohy. Bude vysílat signál PWM, který přivede servo do požadované polohy. Tento soubor používá hodinový signál vytvořený v posledním souboru k vytvoření signálu PWM pro servo s různými pracovními cykly v závislosti na požadované poloze. To nám umožňuje otáčet servy, která ovládají víka popelnic. Kód najdete na přiložené fotografii.

Krok 8: Hlavní soubor servo

Servo Top File
Servo Top File

Účelem tohoto souboru je zkompilovat poslední dva soubory do funkčního ovladače servo. Jako vstup to bude vyžadovat hodiny, reset a polohu a výstup bude vysílat signál PWM serva. Jako komponenty bude používat dělič hodin i soubor signálu serva a bude obsahovat interní signál hodin pro přenos upravených hodin z děliče hodin do souboru signálu signálu. Viz fotografie na

Krok 9: Horní soubor

Horní soubor
Horní soubor
Horní soubor
Horní soubor
Horní soubor
Horní soubor
Horní soubor
Horní soubor

Toto je nejdůležitější soubor projektu, protože obaluje vše, co jsme společně vytvořili. Jako vstupy to bude vyžadovat tlačítko, tři přepínače a hodiny. Jako výstup poskytne sedm katod, čtyři anody a tři signály servo/LED. Jako komponenty použije klopný obvod, segmenty a soubory servo_top a bude mít interní přepínač a interní signál servo.

Krok 10: Testování ve Vivado

Spusťte syntézu, implementaci a zapište bitsream ve Vivado. Pokud narazíte na jakékoli chybové zprávy, vyhledejte místo chyby a poté porovnejte s daným kódem. Zpracujte všechny chyby, dokud všechny tyto běhy nedokončí úspěšně.

Krok 11: Úvod do hardwaru

V tomto kroku vytvoříte hardware LED, který jsme použili v našem prototypu. Pokud používáte serva, projekt by měl být připraven k provozu, pokud jsou použity správné kolíky. Pokud používáte diody LED, postupujte podle následujících pokynů.

Krok 12: Příprava

Drát nastříhejte na šest stejných kousků. Konce každého kusu drátu dostatečně odizolujte, aby mohlo dojít k pájení. Rozdělte LED diody, odpory a vodiče do tří skupin. Zahřejte páječku.

Krok 13: Pájení

Pájení
Pájení
Pájení
Pájení

Připájejte každý z 68 ohmových odporů na zápornou stranu jejich odpovídající LED. Připájejte vodič na kladnou stranu LED a další vodič na stranu rezistoru, který není připájen k LED. Měli byste mít tři z LED vyobrazení výše.

Krok 14: Finále

Finále
Finále

Vložte každý kladný vodič do odpovídajícího pinu PMOD a každý záporný do uzemněného pinu PMOD. Volitelně můžete přidat kartónové přihrádky, které budou představovat popelnice a skryjí váš pájecí nepořádek. Jakmile jsou kabely správně zapojeny a kód je správně nahrán na desku bez chyb, stroj by měl fungovat tak, jak měl. Pokud se něco pokazí, vraťte se k předchozím krokům k řešení potíží. Bavte se se svým novým „třídičem odpadu“.

Doporučuje: