Obsah:

Konzole Arduino VGA s pěti hrami: 4 kroky
Konzole Arduino VGA s pěti hrami: 4 kroky

Video: Konzole Arduino VGA s pěti hrami: 4 kroky

Video: Konzole Arduino VGA s pěti hrami: 4 kroky
Video: Модуль TTGO VGA32 2024, Červenec
Anonim
Image
Image
Konzole Arduino VGA s pěti hrami
Konzole Arduino VGA s pěti hrami
Konzole Arduino VGA s pěti hrami
Konzole Arduino VGA s pěti hrami

Ve svých předchozích Instructables jsem reprodukoval zjednodušené verze některých z nejpopulárnějších klasických arkádových her pomocí holého Arduina a několika dalších komponent. Později jsem pět z nich spojil do jednoho náčrtu. Zde ukážu, jak můžete postavit jednoduchou konzoli, která může hrát Pong, Breakout, Bomber, Tetris a kreslicí hračku inspirovanou Etch-a-Sketch. Tuto konzoli lze také použít ke hře Snake a dalších dvou her od jiných autorů: Bit Ninja od Sandra Maffioda aka „Smaffer“a Stacker od Nikity Kuryleva.

Hlavní funkcí je generování signálu VGA, díky knihovně VGAx, takže konzola potřebuje monitor VGA. Mým cílem, jako obvykle, je vyhnout se jakékoli „speciální komponentě“k jejímu vybudování, nepotřebujete tedy žádné podpůrné integrované obvody ani štíty! Jedinými součástmi jsou dva potenciometry, pět tlačítek, několik odporů a konektor DSUB15 (VGA). Piezo reproduktor je volitelný. Jak tyto hry vypadají, můžete vidět na obrázcích na této stránce.

Knihovna VGAx umožňuje používat čtyři barvy s rozlišením 120 x 60 pixelů, což není mnoho, ale pro tuto retro herní konzoli to stačí. Grafika je surová, ale díky použití potenciometrů běží hry hladce. K dispozici jsou také jednoduché zvukové efekty.

Krok 1: Jak si vytvořit vlastní konzolu Arduino VGA

Jak si sestavit vlastní konzolu Arduino VGA
Jak si sestavit vlastní konzolu Arduino VGA
Jak si vytvořit vlastní konzolu Arduino VGA
Jak si vytvořit vlastní konzolu Arduino VGA

Nejprve si ve spodní části této stránky stáhněte kódy ArduinoVGAgame.ino a/nebo Snake.ino a zkopírujte je do počítače do adresáře se stejným názvem. Stáhněte si knihovnu VGAx z tohoto odkazu na GitHub. Nejjednodušší je zkopírovat jej do podsložky softwaru Arduino s názvem „knihovny“, aby byla okamžitě rozpoznána.

DŮLEŽITÉ: tato knihovna funguje pro Arduno IDE 1.6.4, ale není plně kompatibilní se staršími nebo novějšími verzemi.

Nahrajte kód na desku Arduino (testoval jsem Uno i Nano). Upozornění na nedostatek dostupné paměti je normální. Pokud nemáte další chyby, je vše v pořádku a můžete okamžitě začít stavět vlastní konzolu.

K tomu potřebujete:

  • Arduino Uno Rev.3 nebo Arduino Nano 3.x (ATmega328)
  • konektor DSUB15, tj. konektor VGA samice nebo kabel VGA, který je třeba odříznout.
  • odpory: 2 x 68 Ohm a 2 x 470 Ohm a 5 x 1 až 2 kOhm
  • dva lineární potenciometry 10 kOhm (podobné hodnoty jsou také v pořádku)
  • pět tlačítek
  • nějaký kus kabelu
  • jeden nebo dva pěkné boxy pro uložení všech komponent.

Fakultativní:

  • prkénko nebo pásové prkénko
  • piezo reproduktor

Schéma je uvedeno v horní části tohoto kroku spolu s příkladem hotové „konzoly“.

schéma ukazuje, jak připojit tlačítko a potenciometr. Přesněji řečeno, musíte připojit pět tlačítek k pinům 5, 10, 11, 12 a 13. Akce provedená každým tlačítkem je popsána v pravé horní tabulce ve schématu. Vlevo je ukázáno, jak připojit potenciometr (na piny A1 a A2 potřebujete dva potenciometry). Reproduktor musí být připojen k analogovému pinu A0.

Desku Arduino s konektorem VGA jsem umístil do dřevěného boxu, který pojme také potenciometr prvního hráče a čtyři tlačítka, zatímco potenciometr druhého hráče a jeho startovací tlačítko jsou v samostatném a menším boxu.

Pokud se vám tato hračka líbí a rozhodnete se ji reprodukovat, ocením, pokud napíšete komentář nebo pošlete obrázek v sekci komentáře níže.

Krok 2: Hry od jiných autorů

Sandro Maffiodo nedávno publikoval hru BitNinja. Více informací naleznete zde a kód si můžete stáhnout zde.

Chcete -li používat moji konzolu, stačí přemapovat tlačítko v jeho kódu následujícím způsobem:

#define BTN_UP 11 (namísto 13)

#define BTN_LEFT 10 (namísto 12)

#define BTN_RIGHT 12 (namísto 11)

Stacker od Nikity Kuryleva je k dispozici zde. Více informací zde.

Opět musíte přemapovat jedno tlačítko v jiné části kódu: stačí nahradit digitalRead (2) za digitalRead (13)

Krok 3: Dodatek 1: Další podrobnosti o tom, jak vytvořit ovladače

Dodatek 1: Další podrobnosti o tom, jak vytvořit ovladače
Dodatek 1: Další podrobnosti o tom, jak vytvořit ovladače
Dodatek 1: Další podrobnosti o tom, jak vytvořit ovladače
Dodatek 1: Další podrobnosti o tom, jak vytvořit ovladače
Dodatek 1: Další podrobnosti o tom, jak vytvořit ovladače
Dodatek 1: Další podrobnosti o tom, jak vytvořit ovladače
Dodatek 1: Další podrobnosti o tom, jak vytvořit ovladače
Dodatek 1: Další podrobnosti o tom, jak vytvořit ovladače

Ovladač můžete realizovat mnoha různými způsoby, v závislosti na dostupném materiálu a vašem vkusu.

Rád je realizuji pomocí dřevěných beden (viz obrázky na této stránce). Hlavní box pro Arduino, VGA konektor a tlačítka prvního hráče a potenziometr; druhý (menší) jen pro tlačítko a kolečko druhého hráče (potřebné pro Ponga a kreslící hračku). Další možností je dát vše do jedné větší krabice.

Nejprve doporučuji připojit port VGA. Na prvním a druhém obrázku můžete vidět některé detaily: všimněte si dvou 470 ohmových rezistorů pro červený a zelený připojených k pinům 6 a 7, respektive dvou 68 ohmů k pinům 3 a 9 pro horizontální a vertikální synchronizační signál.

Můžete si vybrat různé barevné kombinace v závislosti na tom, které piny připojíte ke konektoru VGA DSUB15, piny 1, 2 a 3 představují červenou, zelenou, modrou (RGB). Spojil jsem piny 1 a 2, takže mám následující barevnou kombinaci: (0, 0) = černá; (1, 0) = červená; (0, 1) = zelená; (1, 1) = žlutá.

Pro všechny různé možnosti doporučuji přečíst si podrobnosti na stránce, kde stahujete knihovny VGAx.

Jakmile je konektor VGA připraven, můžete připravit všechny ostatní kabely pro tlačítka, kolečka a reproduktor (viz obrázek 2).

Nyní vše spojte dohromady: nezapomeňte, že každý kolík tlačítka musí být připojen k zemi přes odpor 1 nebo 2 kOhm, jinak když je tlačítko otevřené, stav kolíku může být nedefinovaný. To znamená, že pokud je pin ponechán odpojený, můžete na něm mít náhodné (statické) napětí, které jej může aktivovat. Další detektory najdete ve druhém kroku tohoto instruktážního schématu.

Posledním krokem je opravit vše na svém místě. Použil jsem horkou lepicí pistoli, ale můžete použít vámi preferovanou metodu.

Krok 4: Dodatek 2: Několik úvah o mezích paměti

Je úžasné, že jednoduché Arduino dokáže generovat signál VGA a všechny tyto hry dohromady. Skutečným hrdlem láhve je nedostatek SRAM. Mikrokontrolér AVR má k dispozici pouze 2048 bajtů k ukládání a manipulaci s proměnnými a knihovna VGAx ukládá proměnné obrazovky do framebufferu 120 x 60 pixelů, kde každý pixel potřebuje 2 bity (4 barvy), tedy celkem 1 800 bajtů. To znamená, že zbývá pouze 248 bajtů pro proměnné skici. Podle mých zkušeností by měl člověk nechat alespoň 100 bajtů volných, aby se vyhnul nestabilitě. Při použití více než 1950 bajtů dynamické paměti začne mikrokontrolér vykazovat liché a nepředvídatelné chování.

To znamená, že všechny proměnné musí být sdíleny mezi různými hrami, a to dělá kód docela nečitelným a těžko laditelným. Nejde jen o to „přidat novou hru“do předchozího náčrtu, ale celý kód musí být hluboce upraven a optimalizován.

Kromě toho jsem musel použít minimální možný proměnný formát: například pro všechny souřadnice jsem musel použít „byte“namísto „int“nebo v jiných případech jsem musel upřednostnit „int“před „float“.

Nakonec můj souhlas patří Sandru Maffiodoovi alias Smafferovi, tvůrci knihovny VGAx a úžasné hry BitNinja. Bez této knihovny by tento projekt nemohl být realizován.

Děkuji také Nikitě Kurylevovi za jednoduchou, ale zábavnou hru Stacker.

Doporučuje: