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: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Novembar
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 osnovnom nivou, to se može učiniti pomoću oplate, žica za kratkospojnike i zalijepiti za komad otpadnog materijala (koristio sam drvo) sa Blu-Tackom i bez lemljenja. Međutim, na naprednijem nivou 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 dolazi zajedno brzo i sastoji se od općenito dostupnih dijelova koji se jeftino mogu pronaći na internetu.

Korak 1: Dijelovi

Za izradu igre Pong potrebno vam je;

  • 1x Arduino (bilo koja vrsta će raditi)
  • 4x MAX7219 8x8 LED matrice
  • 2x Joysticks
  • 1x Piezo zujalica (opcionalno)
  • 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 zasnovan na matičnoj ploči;

  • 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 prekidač (opcionalno)

Alati;

  • PC sa Arduino IDE (i LedControl bibliotekom)
  • Relevantan USB kabel za vaš Arduino
  • Power Bank za napajanje igre dalje od vašeg računara

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 vam je potrebno su kratkospojne žice za povezivanje zaglavlja matrica i džojstika na Arduino. 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 šina 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.

  • Lijevi joystick - GND i 5v do odgovarajućih vodova za napajanje. SW - pin 9, VRx - A0, VRy - A1.
  • Desna ručica za upravljanje - GND i 5v na odgovarajuće razvodnike. 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 redu 25)
  • Sve ostale LED matrice mogu se vezati nizom izlaza prve, s desna na lijevo, tako da kôd 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 matičnu ploču sa 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, međutim za ažuriranje programa morate koristiti USB FTDI programer.

Korak 4: Kôd + objašnjenje

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

Objašnjenje

Red 1: Dodaje biblioteku

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

Linija 25: Postavlja LED Martix i postavlja kontrolne pinove i broj prikaza.

Red 27: Postavlja funkciju poništavanja.

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

Red 38-43: SetIntensity funkcija za postavljanje svjetline svih ekrana zajedno.

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

Linija 53-64: joystick Funkcija za dobivanje položaja joysticka, mapiranje na 7 mogućih položaja palica za udaranje lopte, a zatim premještanje palice na novu poziciju.

Linija 67-435: Funkcija koja pomiče loptu lijevom igraču na navedenoj visini i brzini, provjerava je li je igrač udario i nastavlja li i postavlja status sudara na true ili odbija loptu, dodaje 1 u rezultat i povećava brzinu.

Linija 438-811: Funkcija koja pomiče loptu do desnog igrača na navedenoj visini i brzini, provjerava je li je igrač udario te nastavlja ili 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 ekranu (0 s desne strane na 3 s lijeve strane).

Red 861-979: Funkcija za prikaz brojeva 0-9 na navedenom ekranu.

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

Red 1049-1064: Funkcija za provjeru je li igrač spreman.

Red 1066-1076: Setup odjeljak koda koji se pokreće jednom pri pokretanju programa.

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

Korak 5: Hvala vam na čitanju

Hvala na čitanju
Hvala na čitanju

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

Preporučuje se: