Obsah:

Pong tenis s LED maticou, Arduino a joysticky: 5 krokov (s obrázkami)
Pong tenis s LED maticou, Arduino a joysticky: 5 krokov (s obrázkami)

Video: Pong tenis s LED maticou, Arduino a joysticky: 5 krokov (s obrázkami)

Video: Pong tenis s LED maticou, Arduino a joysticky: 5 krokov (s obrázkami)
Video: Ping Pong Game with Arduino | SdevElectronics 2024, November
Anonim
Pong tenis s LED maticou, Arduino a joysticky
Pong tenis s LED maticou, Arduino a joysticky

Tento projekt je určený začiatočníkom aj skúseným majstrom. Na základnej úrovni to možno vykonať pomocou nepájivej dosky, prepojovacích drôtov a prilepiť na kus šrotového materiálu (použil som drevo) pomocou technológie Blu-Tack a bez spájkovania. Na pokročilejšej úrovni však môže byť spájkovaný s doskou perfper alebo s vlastnou doskou plošných spojov.

Keďže išlo o projekt uzamknutia, nemal som prístup k žiadnemu množstvu nástrojov alebo materiálov, a preto je prilepený na kus šrotu, ktorý je s Blu-Tack príliš malý, napriek tomu je to zábavný projekt, ktorý sa spája rýchlo a pozostáva z bežne dostupných dielov, ktoré je možné lacno nájsť na internete.

Krok 1: Diely

Na výrobu hry Pong potrebujete;

  • 1x Arduino (akýkoľvek typ bude fungovať)
  • 4x LED matice MAX7219 8x8
  • 2x joysticky
  • 1x Piezo bzučiak (voliteľné)
  • 15x prepojovacie lanko žena-žena (3x skupina po 5)
  • 15x prepojovacie lanko muž-žena (3x skupina po 5)
  • 18x prepojovacie lanko muž-muž
  • 1x Breadboard
  • 1x 220Ω odpor

Namiesto dosky Arduino Uno alebo Nano môžete použiť nepájivú dosku Arduino s;

  • 1x ATmega328p 28pin IC
  • 1x 16kHz kryštálový oscilátor
  • 2x 22pF keramické kondenzátory
  • 1x USB FTDI UART prevodník
  • 1x 100uF elektrolytický kondenzátor
  • 1x Micro USB Breakout (voliteľné)

Náradie;

  • PC s Arduino IDE (a knižnicou LedControl)
  • Príslušný kábel USB pre vaše Arduino
  • Power Bank na napájanie hry mimo počítača

Krok 2: Zapojenie

Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie

Zapojenie je veľmi jednoduché, pretože potrebujete iba prepojovacie vodiče na pripojenie hlavičiek matíc a joystickov k Arduinu. Jedinou komplikáciou je napájanie, pretože Arduino Uno má iba 3 pripojenia GND a jedno pripojenie 5 V. Toto je miesto, kde prichádza nepájivá doska a slúži ako koľajnica na distribúciu energie pre všetky súčasti. Ak používate NANO, nepájivá doska bude slúžiť rovnakému účelu a tiež vám umožní pripojiť všetko.

Pri zapojovaní postupujte podľa týchto zapojení.

  • Ľavý joystick - GND a 5v na príslušné napájacie lišty. SW - kolík 9, VRx - A0, VRy - A1.
  • Pravý joystick - GND a 5v k príslušným napájacím lištám. SW - kolík 8, VRx - A2, VRy - A3.
  • Úplne vpravo LED matica - GND a 5v k príslušným napájacím lištám. DIN - 13, CS - 11, CLK - 12. (Podľa riadka 25)
  • Všetky ostatné matice LED je možné sériovo zapojiť z výstupu prvého smerujúceho sprava doľava, aby kód fungoval správne.
  • Voliteľný bzučiak - anóda (+) cez rezistor obmedzujúci prúd 220Ω na pin 10, katóda (-) - GND.

Krok 3: Alternatívne zapojenie

Alternatívne zapojenie
Alternatívne zapojenie
Alternatívne zapojenie
Alternatívne zapojenie
Alternatívne zapojenie
Alternatívne zapojenie

Po zapojení do Arduino UNO, aby som ušetril miesto, som sa rozhodol umiestniť Arduino IC od UNO na dosku s 16MHz kryštálovým oscilátorom a dvojicou 22pF kondenzátorov z každej strany na zem. Mám pocit, že to bola hodnotná úprava, pretože robí projekt krajším a dokončenejším, na aktualizáciu programu však musíte použiť programátor USB FTDI.

Krok 4: Kód + vysvetlenie

Ak chcete nahrať kód do Arduina, stiahnite si knižnicu LedControl z GitHub tu, github.com/wayoda/LedControl a pridajte súbor Zip alebo ho pridajte pomocou Správcu knižníc v rámci IDE. Potom otvorte priloženú skicu, vyberte svoje Arduino v nastaveniach dosky a portu pod nástrojmi a nahrajte ho do arduina.

Vysvetlenie

Riadok 1: Pridá knižnicu

Riadok 5-23: Nastaví všetky premenné, konštanty a čísla pinov.

Riadok 25: Nastavuje LED Martix a nastavuje ovládacie piny a počet displejov.

Riadok 27: Nastavuje funkciu Reset.

Riadok 30-35: Funkcia vypnutia na zapnutie/vypnutie všetkých displejov súčasne.

Riadok 38-43: Funkcia SetIntensity slúži na nastavenie jasu všetkých displejov súčasne.

Riadok 46-51: funkcia ClearAll na vymazanie všetkých displejov dohromady.

Riadok 53-64: joystick Funkcia na zistenie polohy joystickov, ich mapovanie na 7 možných pozícií pálkou pre odpálenie lopty a potom palicu presunie do novej polohy.

Riadok 67-435: Funkcia, ktorá pohybuje loptou ľavému hráčovi v určenej výške a rýchlosti, kontroluje, či ho hráč trafil a buď pokračuje a nastaví stav zrážky na hodnotu true alebo odrazí loptu späť, pridá 1 k skóre a zvyšuje rýchlosť.

Riadok 438-811: Funkcia, ktorá posúva loptičku správnemu hráčovi v určenej výške a rýchlosti, kontroluje, či ju hráč trafil a buď pokračuje a nastaví stav zrážky na hodnotu true alebo odrazí loptu späť, pridá 1 k skóre a zvyšuje rýchlosť.

Riadok 813-823: Funkcia na zobrazenie smajlíka, kliešťa, krížika alebo otáznika na zadanom displeji (0 napravo až 3 naľavo).

Riadok 861-979: Funkcia na zobrazenie čísel 0-9 na zadanom displeji.

Riadok 981-1047: Funkcia na zobrazenie skóre na strane každého hráča na obrazovke.

Riadok 1049-1064: Funkcia na kontrolu, či je hráč pripravený.

Riadok 1066-1076: Inštalácia Časť kódu pre kód, ktorý sa spustí raz pri spustení programu.

Riadok 1078-1136: Sekcia hlavnej slučky pre logiku hry, kde sa používajú všetky funkcie a kde sa vyhrá, sa rozhodne a potom sa program reštartuje po 5 sekundách zobrazenia skóre.

Krok 5: Ďakujem za čítanie

Vďaka za prečítanie
Vďaka za prečítanie

Ďakujem, že ste si prečítali tento návod, bol to zábavný projekt uzamknutia, ktorý sa spojil počas niekoľkých dní, keď som sa dozvedel viac o programovaní Arduino. Ak vás to bavilo, pokojne zaň hlasujte v súťaži Arduino.

Odporúča: