Innehållsförteckning:

Pongtennis med LED -matris, Arduino och joysticks: 5 steg (med bilder)
Pongtennis med LED -matris, Arduino och joysticks: 5 steg (med bilder)

Video: Pongtennis med LED -matris, Arduino och joysticks: 5 steg (med bilder)

Video: Pongtennis med LED -matris, Arduino och joysticks: 5 steg (med bilder)
Video: Fastest 100 meters by a bipedal robot - 24.73 seconds 🤖 2024, November
Anonim
Pongtennis med LED -matris, Arduino och joysticks
Pongtennis med LED -matris, Arduino och joysticks

Detta projekt är avsett för nybörjare och erfarna pysselare. På en grundläggande nivå kan det göras med en brödbräda, bygelkablar och fastna vid en bit skrot (jag använde trä) med Blu-Tack och utan lödning. Men på en mer avancerad nivå kan den lödas till perf board eller en anpassad PCB.

Eftersom detta var ett låsningsprojekt hade jag inte tillgång till många verktyg eller material, varför det fastnade för en bit trä som är lite för liten med Blu-Tack, men trots detta är det ett roligt projekt som går ihop snabbt och består av vanligt tillgängliga delar som kan hittas billigt online.

Steg 1: Delar

För att göra Pong -spelet behöver du;

  • 1x en Arduino (vilken typ som helst fungerar)
  • 4x MAX7219 8x8 LED -matriser
  • 2x styrspakar
  • 1x Piezo -summer (tillval)
  • 15x kvinnliga-kvinnliga bygeltrådar (3x grupper om 5)
  • 15x man-kvinnliga bygelkablar (3x grupper om 5)
  • 18x tröjor för man-han
  • 1x brödbräda
  • 1x 220Ω motstånd

Istället för en Arduino Uno eller Nano bräda kan du använda en breadboard baserad Arduino med;

  • 1x ATmega328p 28pin IC
  • 1x 16kHz kristalloscillator
  • 2x 22pF keramiska kondensatorer
  • 1x USB FTDI UART -omvandlare
  • 1x 100uF elektrolytkondensator
  • 1x Micro USB Breakout (tillval)

Verktyg;

  • PC med Arduino IDE (och LedControl Library)
  • Relevant USB -kabel för din Arduino
  • Power Bank för att driva spelet bort från din dator

Steg 2: Kabeldragning

Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning

Ledningarna är mycket enkla eftersom allt du behöver är bygelkablar för att ansluta rubrikerna på matriserna och joystickarna till Arduino. Den enda komplikationen är ström eftersom Arduino Uno bara har 3 GND -anslutningar och en 5v -anslutning. Det är här brödbrädan kommer in och fungerar som en kraftfördelningsskena för alla komponenter. Om du använder en NANO kommer brödbrädet att tjäna samma syfte och låta dig ansluta allt.

Följ dessa anslutningar för kabeldragning.

  • Vänster joystick - GND och 5v till sina respektive strömskenor. SW - stift 9, VRx - A0, VRy - A1.
  • Höger joystick - GND och 5v till sina respektive strömskenor. SW - stift 8, VRx - A2, VRy - A3.
  • LED -matris längst till höger - GND och 5v till sina respektive strömskenor. DIN - 13, CS - 11, CLK - 12. (enligt rad 25)
  • Alla andra LED -matriser kan kopplas bort från den första från höger till vänster så att koden fungerar korrekt.
  • Valfri summer - Anod (+) genom 220Ω strömbegränsande motstånd till stift 10, katod (-) - GND.

Steg 3: Alternativ kabeldragning

Alternativ ledning
Alternativ ledning
Alternativ ledning
Alternativ ledning
Alternativ ledning
Alternativ ledning

Efter att ha anslutit den med en Arduino UNO för att spara utrymme bestämde jag mig för att lägga Arduino IC från UNO på brödbrädet med en 16Mhz Crystal Oscillator och ett par 22pF kondensatorer från varje sida till marken. Jag tycker att detta var en värdefull modifiering eftersom det får projektet att se snyggare och mer färdigt ut, men du måste använda en USB FTDI -programmerare för att uppdatera programmet.

Steg 4: Kod + Förklaring

För att ladda upp koden till Arduino ladda ner LedControl -biblioteket från GitHub här, github.com/wayoda/LedControl och lägg till Zip -filen eller lägg till den via Library Manager inom IDE. Efter att öppna den bifogade skissen, välj din Arduino i styrelsen och portinställningar under verktyg och ladda upp den till arduino.

Förklaring

Rad 1: Lägger till biblioteket

Rad 5-23: Ställer in alla variabler, konstanter och pin-nummer.

Linje 25: Ställer in LED Martix och ställer in kontrollnålarna och hur många displayer.

Rad 27: Ställer in återställningsfunktionen.

Rad 30-35: Avstängningsfunktion för att slå på/av alla skärmar tillsammans.

Rad 38-43: SetIntensity-funktion för att ställa in ljusstyrkan på alla skärmar tillsammans.

Rad 46-51: ClearAll-funktion för att torka ihop alla skärmar.

Linje 53-64: joystick Funktion för att få joystickarnas position, kartlägga dem till de 7 möjliga fladdermuslägena för att slå bollen och flyttar sedan slagträet till det nya läget.

Linje 67-435: Funktion som flyttar bollen till vänster spelare med angiven höjd och hastighet, kontrollerar om spelaren träffade den och antingen fortsätter och sätter kraschstatusen till true eller studsar tillbaka bollen, lägger till 1 till poängen och ökar hastigheten.

Linje 438-811: Funktion som flyttar bollen till rätt spelare vid angiven höjd och hastighet, kontrollerar om spelaren träffade den och antingen fortsätter och sätter kraschstatusen till sann eller studsar tillbaka bollen, lägger till 1 till poängen och ökar hastigheten.

Linje 813-823: Funktion för att visa ett Smiley Face, Tick, Cross eller frågetecken till den angivna displayen (0 till höger till 3 till vänster).

Rad 861-979: Funktion för att visa siffrorna 0-9 till den angivna displayen.

Rad 981-1047: Funktion för att visa poängen för varje spelares sida av skärmen.

Rad 1049-1064: Funktion för att kontrollera om spelaren är redo.

Rad 1066-1076: Inställningsavsnitt av koden för koden som körs en gång när programmet startar.

Rad 1078-1136: Main Loop-sektion för spellogik där alla funktioner används och där vem som avgörs och sedan startar det om programmet efter 5 sekunder efter att poängen visats.

Steg 5: Tack för att du läste

Tack för att du läser
Tack för att du läser

Tack för att du läste detta Instructable det var ett roligt lockdown -projekt som kom ihop under ett par dagar när jag lärde mig mer om Arduino -programmering. Om du gillade det kan du rösta på det i Arduino -tävlingen.

Rekommenderad: