Talaan ng mga Nilalaman:

Pong Tennis Sa LED Matrix, Arduino at Joysticks: 5 Hakbang (na may Mga Larawan)
Pong Tennis Sa LED Matrix, Arduino at Joysticks: 5 Hakbang (na may Mga Larawan)

Video: Pong Tennis Sa LED Matrix, Arduino at Joysticks: 5 Hakbang (na may Mga Larawan)

Video: Pong Tennis Sa LED Matrix, Arduino at Joysticks: 5 Hakbang (na may Mga Larawan)
Video: PixelPaddle: Creating a DIY Arduino Pong Game on a Tiny 1.3-Inch OLED Display ! @cubityt 2024, Nobyembre
Anonim
Pong Tennis Sa LED Matrix, Arduino at Joysticks
Pong Tennis Sa LED Matrix, Arduino at Joysticks

Ang proyektong ito ay inilaan para sa mga nagsisimula at nakaranas ng mga tinkerer. Sa isang pangunahing antas magagawa ito sa isang breadboard, jumper wires at natigil sa isang piraso ng materyal na scrap (Gumamit ako ng kahoy) na may Blu-Tack at walang paghihinang. Gayunpaman sa isang mas advanced na antas maaari itong solder sa perf board o isang pasadyang PCB.

Dahil ito ay isang proyekto ng lockdown wala akong access sa anumang maraming mga tool o materyales kaya't bakit ito natigil sa isang piraso ng scrap kahoy na medyo masyadong maliit sa Blu-Tack, subalit sa kabila nito ito ay isang masayang proyekto na magkakasama mabilis at binubuo ng mga karaniwang magagamit na mga bahagi na maaaring matagpuan nang murang online.

Hakbang 1: Mga Bahagi

Upang gawin ang Pong Game na kailangan mo;

  • 1x Isang Arduino (gagana ang anumang uri)
  • 4x MAX7219 8x8 LED Matrices
  • 2x Joysticks
  • 1x Piezo Buzzer (Opsyonal)
  • 15x Babae-Babae Jumper Wires (3x pangkat ng 5)
  • 15x Lalaki-Babae Jumper Wires (3x pangkat ng 5)
  • 18x Mga Lalaki-Lalaki na Jumper Wires
  • 1x Breadboard
  • 1x 220Ω Resistor

Sa halip na isang Arduino Uno o Nano board maaari kang gumamit ng isang breadboard batay sa Arduino na may;

  • 1x ATmega328p 28pin IC
  • 1x 16kHz Crystal Oscillator
  • 2x 22pF Ceramic Capacitors
  • 1x USB FTDI UART Converter
  • 1x 100uF Electrolytic Capacitor
  • 1x Micro USB Breakout (Opsyonal)

Mga kasangkapan;

  • PC na may Arduino IDE (at LedControl Library)
  • May-katuturang USB Cable para sa iyong Arduino
  • Power Bank upang mapatakbo ang laro na malayo sa iyong computer

Hakbang 2: Mga kable

Kable
Kable
Kable
Kable

Ang mga kable ay napaka-simple dahil ang kailangan mo lang ay ang mga jumper wires upang ikonekta ang mga header ng Matrices at Joysticks sa Arduino. Ang kumplikasyon lamang ay ang kapangyarihan dahil ang Arduino Uno ay mayroon lamang 3 mga koneksyon sa GND at isang koneksyon na 5v. Dito pumapasok ang breadboard at gumaganap bilang isang pamamahagi ng riles para sa lahat ng mga bahagi, Kung gumagamit ka ng isang NANO ang breadboard ay magsisilbi ng parehong layunin pati na rin pinapayagan kang i-plug ang lahat.

Para sa mga kable sundin ang mga koneksyon na ito.

  • Kaliwa Joystick - GND at 5v sa kani-kanilang mga riles ng kuryente. SW - pin 9, VRx - A0, VRy - A1.
  • Kanan Joystick - GND at 5v sa kani-kanilang mga riles ng kuryente. SW - pin 8, VRx - A2, VRy - A3.
  • Rightest LED Matrix - GND at 5v sa kani-kanilang mga riles ng kuryente. DIN - 13, CS - 11, CLK - 12. (Tulad ng bawat linya 25)
  • Ang lahat ng iba pang mga LED Matrice ay maaaring maging daisy na nakakadena ng output ng unang pupunta sa kanan papunta sa kaliwa upang ang code ay gumagana nang maayos.
  • Opsyonal na Buzzer - Anode (+) hanggang sa 220Ω kasalukuyang paglilimita ng risistor sa pin 10, Cathode (-) - GND.

Hakbang 3: Alternatibong Mga Kable

Alternatibong Mga Kable
Alternatibong Mga Kable
Alternatibong Mga Kable
Alternatibong Mga Kable
Alternatibong Mga Kable
Alternatibong Mga Kable

Matapos ang pag-wire nito sa isang Arduino UNO upang makatipid ng puwang nagpasya akong ilagay ang Arduino IC mula sa UNO sa breadboard na may isang 16Mhz Crystal Oscillator at isang pares ng 22pF capacitors mula sa bawat panig patungo sa lupa. Sa palagay ko ito ay isang kapaki-pakinabang na pagbabago dahil ginagawang mas neater ang proyekto at mas tapos na subalit kailangan mong gumamit ng isang USB FTDI programmer upang mai-update ang programa.

Hakbang 4: Code + Paliwanag

Upang mai-upload ang code sa Arduino i-download ang LedControl library mula sa GitHub dito, github.com/wayoda/LedControl at idagdag ang Zip file o idagdag ito sa pamamagitan ng Library Manager sa loob ng IDE. Pagkatapos nito buksan ang naka-attach na sketch, piliin ang iyong Arduino sa board at mga setting ng port sa ilalim ng mga tool at i-upload ito sa arduino.

Paliwanag

Linya 1: Nagdaragdag ng library

Linya 5-23: Itinatakda ang lahat ng mga variable, pare-pareho at mga numero ng pin.

Linya 25: Itinatakda ang LED Martix at itinatakda ang mga control pin at kung gaano karaming ipinapakita.

Linya 27: Itinatakda ang Pag-reset ng Pag-andar.

Linya 30-35: Ang pagpapaandar ng shutdown upang i-on / i-off ang lahat ng mga pagpapakita nang magkasama.

Linya 38-43: Pag-andar ng SetIntensity upang maitakda nang magkasama ang ningning ng lahat ng mga ipinapakita.

Linya 46-51: I-clear ang Lahat ng pag-andar upang punasan ang lahat ng mga display nang magkasama.

Linya 53-64: joystick Function upang makuha ang posisyon ng mga joystick, i-map ang mga ito sa 7 posibleng posisyon ng paniki para sa pagpindot sa bola at pagkatapos ay ilipat ang paniki sa bagong posisyon.

Linya 67-435: Ang pagpapaandar na gumagalaw ng bola sa kaliwang manlalaro sa tinukoy na taas at bilis, sinusuri kung ang manlalaro ay na-hit ito at alinman sa nagdadala at itinatakda ang katayuan ng pag-crash sa totoo o bounces ang bola pabalik, nagdagdag ng 1 sa iskor at nagdaragdag ng bilis.

Linya 438-811: Ang pagpapaandar na gumagalaw ng bola sa tamang manlalaro sa tinukoy na taas at bilis, sinusuri kung ang manlalaro ay na-hit ito at alinman sa nagdadala at itinatakda ang katayuan ng pag-crash sa totoo o bounces ang bola pabalik, nagdagdag ng 1 sa iskor at nagdaragdag ng bilis.

Linya 813-823: Pag-andar para sa pagpapakita ng isang Smiley Face, Tick, Cross o Tanong ng Tanong sa tinukoy na display (0 sa kanan hanggang 3 sa kaliwa).

Linya 861-979: Pag-andar para sa pagpapakita ng mga numero 0-9 sa tinukoy na display.

Linya 981-1047: Pag-andar para sa pagpapakita ng iskor sa bawat panig ng manlalaro ng screen.

Linya 1049-1064: Pag-andar upang suriin kung handa na ang manlalaro.

Linya 1066-1076: Seksyon ng Pag-set up ng code para sa code na pinapatakbo nang isang beses kapag nagsimula ang programa.

Linya 1078-1136: Seksyon ng Main Loop para sa lohika ng laro kung saan ginagamit ang lahat ng mga pag-andar at kung saan ang nagpapanalo ay napagpasyahan at pagkatapos ay i-restart ang programa pagkatapos ng 5 segundo ng pagpapakita ng iskor.

Hakbang 5: Salamat sa Pagbasa

Salamat sa pagbabasa
Salamat sa pagbabasa

Salamat sa pagbabasa ng Instructable na ito ay isang nakakatuwang proyekto sa lockdown na nagkasama sa loob ng ilang araw habang natutunan ko ang tungkol sa Arduino program. Kung nasiyahan ka huwag mag-atubiling bumoto para dito sa paligsahan ng Arduino.

Inirerekumendang: