Obsah:

Pong Tennis s LED maticí, Arduino a joysticky: 5 kroků (s obrázky)
Pong Tennis s LED maticí, Arduino a joysticky: 5 kroků (s obrázky)

Video: Pong Tennis s LED maticí, Arduino a joysticky: 5 kroků (s obrázky)

Video: Pong Tennis s LED maticí, Arduino a joysticky: 5 kroků (s obrázky)
Video: 🏓 Hoy vamos a hacer un juego que se llama : PING PONG de LEDS 🎮 [VIVOS] todos los miércoles 🦾 2024, Červenec
Anonim
Pong Tennis s LED maticí, Arduino a joysticky
Pong Tennis s LED maticí, Arduino a joysticky

Tento projekt je určen začátečníkům i zkušeným drotářům. Na základní úrovni to lze provést pomocí prkénka, propojovacích drátů a přilepit na kus šrotu (použil jsem dřevo) pomocí Blu-Tack a bez pájení. Na pokročilejší úrovni však může být připájen k desce perf nebo na vlastní desku plošných spojů.

Protože se jednalo o projekt uzamčení, neměl jsem přístup k mnoha nástrojům nebo materiálům, a proto se zasekl na kusu šrotu, který je u Blu-Tack příliš malý, ale přesto je to zábavný projekt, který se spojuje rychle a skládá se z běžně dostupných dílů, které lze levně sehnat na internetu.

Krok 1: Díly

K výrobě hry Pong potřebujete;

  • 1x Arduino (jakýkoli typ bude fungovat)
  • 4x LED matice MAX7219 8x8
  • 2x joysticky
  • 1x Piezo bzučák (volitelně)
  • 15x propojovací vodiče žena-žena (3x skupiny po 5)
  • 15x propojovací kabel pro muže a ženu (3x skupiny po 5)
  • 18x propojovací kabel muž-muž
  • 1x prkénko
  • 1x odpor 220Ω

Místo desky Arduino Uno nebo Nano můžete použít Arduino na bázi breadboardu s;

  • 1x ATmega328p 28pin IC
  • 1x 16kHz krystalový oscilátor
  • 2x 22pF keramické kondenzátory
  • 1x převodník USB FTDI UART
  • 1x 100uF elektrolytický kondenzátor
  • 1x Micro USB Breakout (volitelně)

Nástroje;

  • PC s Arduino IDE (a knihovnou LedControl)
  • Příslušný kabel USB pro vaše Arduino
  • Power Bank pro napájení hry mimo váš počítač

Krok 2: Zapojení

Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení

Zapojení je velmi jednoduché, protože vše, co potřebujete, jsou propojovací vodiče pro připojení hlavic matic a joysticků k Arduinu. Jedinou komplikací je napájení, protože Arduino Uno má pouze 3 GND připojení a jedno 5V připojení. To je místo, kde přichází prkénko a funguje jako napájecí rozvodná lišta pro všechny součásti. Pokud používáte NANO, bude prkénko sloužit ke stejnému účelu a také vám umožní zapojit vše.

Při zapojování postupujte podle těchto zapojení.

  • Levý joystick - GND a 5v na příslušné napájecí lišty. SW - pin 9, VRx - A0, VRy - A1.
  • Pravý joystick - GND a 5v na příslušné napájecí lišty. SW - pin 8, VRx - A2, VRy - A3.
  • Pravá matice LED - GND a 5v k jejich příslušným napájecím lištám. DIN - 13, CS - 11, CLK - 12. (Podle řádku 25)
  • Všechny ostatní LED matice lze řetězit z výstupu prvního z nich zleva doprava, aby kód fungoval správně.
  • Volitelný bzučák - anoda (+) přes 220Ω odpor omezující proud na pin 10, katoda (-) - GND.

Krok 3: Alternativní zapojení

Alternativní zapojení
Alternativní zapojení
Alternativní zapojení
Alternativní zapojení
Alternativní zapojení
Alternativní zapojení

Poté, co jsem to zapojil pomocí Arduino UNO, abych ušetřil místo, rozhodl jsem se umístit Arduino IC od UNO na prkénko s 16Mhz krystalovým oscilátorem a dvojicí 22pF kondenzátorů z každé strany na zem. Mám pocit, že to byla užitečná úprava, protože díky tomu vypadá projekt hezčí a dokončenější, k aktualizaci programu však musíte použít programátor USB FTDI.

Krok 4: Kód + vysvětlení

Chcete -li nahrát kód do Arduina, stáhněte si knihovnu LedControl z GitHub zde, github.com/wayoda/LedControl a přidejte soubor Zip nebo jej přidejte pomocí Správce knihoven v IDE. Poté otevřete přiložený náčrt, vyberte své Arduino v nastavení desky a portu pod nástroji a nahrajte jej do arduina.

Vysvětlení

Řádek 1: Přidá knihovnu

Řádek 5-23: Nastaví všechny proměnné, konstanty a čísla pinů.

Řádek 25: Nastaví LED Martix a nastaví ovládací piny a počet displejů.

Řádek 27: Nastaví funkci Reset.

Řádek 30-35: Funkce vypnutí pro zapnutí/vypnutí všech displejů současně.

Řádek 38-43: Funkce SetIntensity pro nastavení jasu všech displejů dohromady.

Řádek 46-51: Funkce ClearAll pro vymazání všech displejů dohromady.

Řádek 53-64: joystick Funkce k získání polohy joysticků, jejich namapování na 7 možných pozic pálky pro odpálení míče a poté přesunutí pálky do nové polohy.

Řádek 67-435: Funkce, která pohybuje míčem levému hráči ve stanovené výšce a rychlosti, kontroluje, zda jej hráč zasáhl a buď pokračuje a nastaví stav havárie na hodnotu true nebo odrazí míč zpět, přidá 1 ke skóre a zvyšuje rychlost.

Řádek 438-811: Funkce, která přesune míč správnému hráči ve stanovené výšce a rychlosti, zkontroluje, zda jej hráč zasáhl a buď pokračuje a nastaví stav srážky na hodnotu true, nebo odrazí míč zpět, přidá 1 ke skóre a zvyšuje rychlost.

Řádek 813-823: Funkce pro zobrazení smajlíka, zaškrtnutí, křížku nebo otazníku na zadaný displej (0 vpravo až 3 vlevo).

Řádek 861-979: Funkce pro zobrazení čísel 0-9 na zadaném displeji.

Řádek 981-1047: Funkce pro zobrazení skóre na každé straně obrazovky hráče.

Řádek 1049-1064: Funkce pro kontrolu, zda je hráč připraven.

Řádek 1066-1076: Část nastavení kódu pro kód, který je spuštěn jednou při spuštění programu.

Řádek 1078-1136: Sekce hlavní smyčky pro logiku hry, kde jsou použity všechny funkce a kde se vyhrává, je rozhodnuto a poté restartuje program po 5 sekundách zobrazení skóre.

Krok 5: Děkujeme za čtení

Děkuji za přečtení
Děkuji za přečtení

Děkujeme, že jste si přečetli tento Instructable, byl to zábavný projekt uzamčení, který se spojil během několika dní, když jsem se dozvěděl více o programování Arduino. Pokud vás to bavilo, klidně pro něj hlasujte v soutěži Arduino.

Doporučuje: