Sadržaj:

Tenis za tenis sa LED matricom, Arduinom i džojstikom: 5 koraka (sa slikama)
Tenis za tenis sa LED matricom, Arduinom i džojstikom: 5 koraka (sa slikama)

Video: Tenis za tenis sa LED matricom, Arduinom i džojstikom: 5 koraka (sa slikama)

Video: Tenis za tenis sa LED matricom, Arduinom i džojstikom: 5 koraka (sa slikama)
Video: Timelapse Final Fantasy Gunblade Printed on a CR-30 2024, Studeni
Anonim
Tenis za tenis sa LED matricom, Arduinom i džojstikom
Tenis za tenis sa LED matricom, Arduinom i džojstikom

Ovaj je projekt namijenjen početnicima i iskusnim majstorima. Na osnovnoj razini to se može učiniti pomoću ploče, žica za kratkospojnike i zalijepiti za komad otpadnog materijala (koristio sam drvo) s Blu-Tackom i bez lemljenja. Međutim, na naprednijoj razini može se lemiti na perf ploču ili prilagođenu PCB.

Budući da je ovo bio projekt zaključavanja, nisam imao pristup mnogim alatima ili materijalima pa se zato zaglavio na komadu starog drveta koji je malo premali s Blu-Tackom, no unatoč tome to je zabavan projekt koji se sastaje brzo i sastoji se od općenito dostupnih dijelova koji se jeftino mogu pronaći na internetu.

Korak 1: Dijelovi

Za izradu Pong igre trebate;

  • 1x Arduino (bilo koja vrsta će raditi)
  • 4x MAX7219 8x8 LED matrice
  • 2x Joysticks
  • 1x Piezo zujalica (izborno)
  • 15x žensko-ženskih kratkospojnika (3x grupe po 5)
  • 15x muško-ženskih kratkospojnika (3x grupe po 5)
  • 18x muško-muške kratkospojne žice
  • 1x Oglasna ploča
  • 1x 220Ω otpornik

Umjesto Arduino Uno ili Nano ploče možete koristiti Arduino na bazi matične ploče;

  • 1x ATmega328p 28pin IC
  • 1x 16kHz kristalni oscilator
  • 2x 22pF keramički kondenzatori
  • 1x USB FTDI UART pretvarač
  • 1x 100uF elektrolitički kondenzator
  • 1x mikro USB izboj (opcionalno)

Alati;

  • Računalo s Arduino IDE -om (i knjižnicom LedControl)
  • Relevantan USB kabel za vaš Arduino
  • Power Bank za napajanje igre izvan vašeg računala

Korak 2: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje

Ožičenje je vrlo jednostavno jer sve što trebate su kratkospojne žice za povezivanje zaglavlja matrica i palica za upravljanje s Arduinom. Jedina komplikacija je napajanje jer Arduino Uno ima samo 3 GND veze i jednu 5v vezu. Ovdje dolazi matična ploča i djeluje kao razvodna traka za sve komponente. Ako koristite NANO, ploča će služiti istoj namjeni i omogućiti vam da sve uključite.

Za ožičenje slijedite ove veze.

  • Lijeva ručica za upravljanje - GND i 5v na odgovarajuće razvodnike. SW - pin 9, VRx - A0, VRy - A1.
  • Desna joystick - GND i 5v na njihove odgovarajuće vodilice. SW - pin 8, VRx - A2, VRy - A3.
  • Krajnja desna LED matrica - GND i 5v na njihove odgovarajuće vodilice. DIN - 13, CS - 11, CLK - 12. (prema retku 25)
  • Sve ostale LED matrice mogu se povezati s izlazom prve, idući zdesna nalijevo, tako da kod radi ispravno.
  • Opcijski zujalica - Anoda (+) kroz otpornik za ograničavanje struje od 220Ω na pin 10, katoda (-) - GND.

Korak 3: Alternativno ožičenje

Alternativno ožičenje
Alternativno ožičenje
Alternativno ožičenje
Alternativno ožičenje
Alternativno ožičenje
Alternativno ožičenje

Nakon što sam ga spojio s Arduino UNO -om radi uštede prostora, odlučio sam staviti Arduino IC iz UNO -a na ploču s 16MHz kristalnim oscilatorom i parom kondenzatora od 22 pF sa svake strane do zemlje. Smatram da je ovo bila vrijedna izmjena jer projekt izgleda urednije i dovršenije, no za ažuriranje programa morate koristiti USB FTDI programer.

Korak 4: Kôd + objašnjenje

Da biste učitali kôd na Arduino, preuzmite biblioteku LedControl s GitHub -a ovdje, github.com/wayoda/LedControl i dodajte Zip datoteku ili je dodajte putem Upravitelja knjižnice u IDE -u. Nakon toga otvorite priloženu skicu, odaberite svoj Arduino u postavkama ploče i porta pod alatima i prenesite ga na arduino.

Obrazloženje

1. redak: dodaje biblioteku

Redak 5-23: Postavlja sve varijable, konstante i brojeve pinova.

Redak 25: Postavlja LED Martix i postavlja kontrolne pinove i koliko prikaza.

Redak 27: Postavlja funkciju resetiranja.

Redak 30-35: Funkcija isključivanja za uključivanje/isključivanje svih zaslona zajedno.

Redak 38-43: SetIntensity funkcija za postavljanje svjetline svih zaslona zajedno.

Redak 46-51: funkcija ClearAll za brisanje svih zaslona zajedno.

Redak 53-64: joystick Funkcija za dobivanje položaja joysticka, mapiranje na 7 mogućih položaja šišmiša za udaranje lopte, a zatim premještanje palice na novi položaj.

Redak 67-435: Funkcija koja pomiče loptu lijevom igraču na određenoj visini i brzini, provjerava je li je igrač pogodio te nastavlja li i postavlja status rušenja na true ili odbija loptu, dodaje 1 u rezultat i povećava brzinu.

Redak 438-811: Funkcija koja pomiče loptu do desnog igrača na navedenoj visini i brzini, provjerava je li je igrač pogodio te nastavlja li i postavlja status rušenja na true ili odbija loptu, dodaje 1 u rezultat i povećava brzinu.

Red 813-823: Funkcija za prikazivanje nasmijanog lica, oznaka, križa ili znaka pitanja na navedenom zaslonu (0 s desne strane na 3 s lijeve strane).

Redak 861-979: Funkcija za prikaz brojeva 0-9 na navedenom zaslonu.

Redak 981-1047: Funkcija za prikaz rezultata na svakoj strani ekrana za sve igrače.

Red 1049-1064: Funkcija provjere je li player spreman.

Redak 1066-1076: odjeljak za postavljanje koda koji se pokreće jednom pri pokretanju programa.

Redak 1078-1136: Odjeljak glavne petlje za logiku igre gdje se koriste sve funkcije i gdje se odlučuje tko će pobijediti, a zatim ponovno pokreće program nakon 5 sekundi od prikaza rezultata.

5. korak: Hvala vam na čitanju

Hvala na čitanju
Hvala na čitanju

Hvala vam što ste pročitali ovaj Instructable. Bio je to zabavan projekt zaključavanja koji se okupio nekoliko dana dok sam saznao više o Arduino programiranju. Ako vam se svidjelo, glasajte za njega na Arduino natjecanju.

Preporučeni: