Taula de continguts:

Tennis de taula amb LED Matrix, Arduino i Joysticks: 5 passos (amb imatges)
Tennis de taula amb LED Matrix, Arduino i Joysticks: 5 passos (amb imatges)

Vídeo: Tennis de taula amb LED Matrix, Arduino i Joysticks: 5 passos (amb imatges)

Vídeo: Tennis de taula amb LED Matrix, Arduino i Joysticks: 5 passos (amb imatges)
Vídeo: Ping-Pong amb Arduino 2024, Desembre
Anonim
Tennis de taula amb LED Matrix, Arduino i Joysticks
Tennis de taula amb LED Matrix, Arduino i Joysticks

Aquest projecte està pensat per a principiants i jugadors experimentats. A un nivell bàsic es pot fer amb una taula de tallar, cables de pont i adherir-se a un tros de material de rebuig (he utilitzat fusta) amb Blu-Tack i sense soldar. Tanmateix, a un nivell més avançat, es pot soldar a un tauler de perfils o un PCB personalitzat.

Com que es tractava d’un projecte de bloqueig, no tenia accés a cap eina ni material, per això s’enganxa a un tros de fusta lleugerament massa petit amb Blu-Tack, tot i que és un projecte divertit que s’uneix ràpidament i es compon de peces disponibles habitualment que es poden trobar a baix preu en línia.

Pas 1: parts

Per fer el joc de Pong que necessites;

  • 1x Arduino (qualsevol tipus funcionarà)
  • 4x MAX7219 Matrius LED 8x8
  • 2x Joysticks
  • 1 x Piezo Buzzer (opcional)
  • 15 cables de pont femení-femení (grups de 3 x de 5)
  • 15 cables de pont masculí-femení (grups de 3 x de 5)
  • 18x cables de pont masculí-masculí
  • 1x tauler de pa
  • 1x 220Ω resistència

En lloc d'una placa Arduino Uno o Nano, podeu utilitzar una placa basada en Arduino amb;

  • 1 x ATmega328p 28pin IC
  • 1 oscil·lador de cristall de 16 kHz
  • Condensadors de ceràmica 2x 22pF
  • 1x convertidor USB FTDI UART
  • 1x condensador electrolític 100uF
  • 1x Micro USB Breakout (opcional)

Eines;

  • PC amb Arduino IDE (i biblioteca LedControl)
  • Cable USB rellevant per al vostre Arduino
  • Power Bank per allunyar el joc de l'ordinador

Pas 2: cablejat

Cablejat
Cablejat
Cablejat
Cablejat

El cablejat és molt senzill, ja que tot el que necessiteu són cables de pont per connectar les capçaleres de les matrius i els joysticks a l’Arduino. L’única complicació és la potència, ja que l’Arduino Uno només té 3 connexions GND i una connexió de 5v. Allà on entra la taula de treball i actua com un carril de distribució d’energia per a tots els components, si utilitzeu un NANO, la taula de treball tindrà el mateix propòsit i us permetrà connectar-ho tot.

Seguiu aquestes connexions per al cablejat.

  • Joystick esquerre: GND i 5v als seus respectius rails de potència. SW - pin 9, VRx - A0, VRy - A1.
  • Joystick dret: GND i 5v als seus respectius rails de potència. SW - pin 8, VRx - A2, VRy - A3.
  • Matriu LED situada més a la dreta: GND i 5v als seus respectius rails de potència. DIN - 13, CS - 11, CLK - 12. (Segons la línia 25)
  • Totes les altres matrius LED es poden encadenar en forma de margarida a la sortida del primer que va de dreta a esquerra perquè el codi funcioni correctament.
  • Buzzer opcional: ànode (+) a través de la resistència de limitació de corrent de 220Ω al pin 10, càtode (-) - GND.

Pas 3: cablejat alternatiu

Cablejat alternatiu
Cablejat alternatiu
Cablejat alternatiu
Cablejat alternatiu
Cablejat alternatiu
Cablejat alternatiu

Després de connectar-lo amb un Arduino UNO per estalviar espai, vaig decidir posar l'Arduino IC de la UNO a la placa amb un oscil·lador de cristall de 16 MHz i un parell de condensadors de 22pF de cada costat a terra. Crec que va ser una modificació que val la pena, ja que fa que el projecte sembli més net i acabat, però cal fer servir un programador USB FTDI per actualitzar el programa.

Pas 4: Codi + Explicació

Per carregar el codi a Arduino, descarregueu aquí la biblioteca LedControl de GitHub, github.com/wayoda/LedControl i afegiu el fitxer Zip o afegiu-lo a través del gestor de biblioteques de l'IDE. Després obriu l'esbós adjunt, seleccioneu el vostre Arduino a la configuració de la placa i del port a sota d'eines i pengeu-lo a l'arduino.

Explicació

Línia 1: afegeix la biblioteca

Línia 5-23: estableix totes les variables, constants i números de pin.

Línia 25: configura el LED Martix i estableix els pins de control i quantes pantalles.

Línia 27: estableix la funció de reinici.

Línia 30-35: Funció d'apagada per activar / apagar totes les pantalles juntes.

Línia 38-43: funció SetIntensity per configurar la brillantor de totes les pantalles juntes.

Línia 46-51: funció ClearAll per netejar totes les pantalles.

Línia 53-64: Funció del joystick per obtenir la posició dels joysticks, assignar-los a les 7 posicions possibles de bat per colpejar la pilota i després moure el bat a la nova posició.

Línia 67-435: funció que mou la pilota cap al jugador esquerre a l’alçada i la velocitat especificades, comprova si el jugador l’ha colpejat i continua i estableix l’estat de xoc a cert o fa rebotar la pilota cap enrere, afegeix 1 a la puntuació i augmenta la velocitat.

Línia 438-811: funció que mou la pilota cap al jugador adequat a l’alçada i la velocitat especificades, comprova si el jugador l’ha colpejat i continua i estableix l’estat de xoc a cert o fa rebotar la pilota cap enrere, afegeix 1 a la puntuació i augmenta la velocitat.

Línia 813-823: funció per mostrar una cara somrient, un tick, una creu o un signe d'interrogació a la pantalla especificada (0 a la dreta a 3 a l'esquerra).

Línia 861-979: funció per mostrar els números 0-9 a la pantalla especificada.

Línia 981-1047: funció per mostrar la puntuació a cada costat dels jugadors de la pantalla.

Línia 1049-1064: funció per comprovar si el reproductor està preparat.

Línia 1066-1076: Secció d'instal·lació del codi per al codi que s'executa una vegada quan s'inicia el programa.

Línia 1078-1136: secció de bucle principal per a la lògica del joc on s’utilitzen totes les funcions i on es decideix qui guanya i després reinicia el programa després de 5 segons de mostrar la puntuació.

Pas 5: gràcies per llegir

Gràcies per llegir
Gràcies per llegir

Gràcies per llegir aquest Instructable, va ser un divertit projecte de bloqueig que es va reunir durant un parell de dies mentre vaig aprendre més sobre la programació Arduino. Si us ha agradat, no dubteu a votar-lo al concurs Arduino.

Recomanat: