Arduino ile Pin Pon Oyunu
Arduino ile p10 led grafik panel kullanarak yapılmış çift kişilik bir oyun projesi Devrenin arduino kodları ve diagramı aşağıda mevcuttur. Dilerseniz tüm malzemeleri SEPETE EKLE yaparak satın alabilir yada malzeme listesinden ihtiyacınız olan ürüne ulaşabilirsiniz.
P10 Led paneli sorunsuz bir şekilde çalıştırabilmeniz için 5Volt 5A bir adaptör gerekmektedir.
Devrede kullanılan malzemeler;
ve kodlarımız;
////Düzenleme,derleme HobiDevre
////Raul Barreto Quinteros
////BAGLANTI
/// ARDUINO P10 PANEL
//// D7 ----------------> OE
//// D6 ----------------> A
//// D5 ----------------> B
//// D4 ----------------> SC
//// D3 ----------------> LA
//// D2 ----------------> R
#include <DMD.h> // DMD kütüphanesini ekliyoruz. https://github.com/freetronics/DMD
#include <TimerOne.h> //TimerOne kütüphanesini ekliyoruz. https://www.arduinolibraries.info/libraries/timer-one
#include "SystemFont5x7.h"
int width=31,height=15; //OYUN ALANI BOYUTU
int x1=width/2,y1=height/2,speedx=1,speedy=1; // TOPUN KONUMU VE HIZI
int paddlex=2,paddley=height/2,paddleh=3,paddles=1;
DMD display(1,1);
void ScanDMD()
{
display.scanDisplayBySPI();
}
void setup() {
Timer1.initialize( 3000 );
Timer1.attachInterrupt(ScanDMD);
pinMode(5, OUTPUT); //buzzer
}
void loop(){
delay(50);
display.clearScreen(true);
analogWrite(5, 0);
display.writePixel(x1,y1,GRAPHICS_NORMAL,1);
x1=x1+speedx; //x yonunde hareket
y1=y1+speedy; //y yonunde hareket
if(x1>=width){
speedx=-speedx;
analogWrite(5, 20);
}else if(x1<=0){
speedx=-speedx;
analogWrite(5, 20);
}
if(y1>=height){
speedy=-speedy;
analogWrite(5, 20);
}else if(y1<=0){
speedy=-speedy;
analogWrite(5, 20);
}
paddley=map(analogRead(A0),0,1023,0,12);
// POTANSİYOMETRE
display.drawLine(paddlex,paddley,paddlex,paddley+paddleh,GRAPHICS_NORMAL);
if(x1==paddlex && y1<=paddley+paddleh && y1>paddley-paddleh/3){
speedx=-speedx;
speedy=-speedy;
analogWrite(5, 20);
} else if(x1==0){
analogWrite(5, 0);
display.clearScreen(true);
display.selectFont(System5x7);
display.drawString(5,0,"OYUN",4, GRAPHICS_NORMAL);
display.drawString(3,9,"BITTI",5, GRAPHICS_NORMAL);
delay( 2000 );
// DEĞİŞKENLERİ SIFIRLA
x1=width/2;
y1=height/2;
paddlex=2;
paddley=height/2;
display.clearScreen(true);
//Oyun Adını Yaz
display.drawString(5,0,"PING",4, GRAPHICS_NORMAL);
display.drawString(1,9,"PONG",5, GRAPHICS_NORMAL);
delay(2000);
display.clearScreen(true);
display.drawString(2,4,"HAZIR",5, GRAPHICS_NORMAL);
delay(2000);
display.clearScreen(true);
display.drawString(2,4,"BASLA",5, GRAPHICS_NORMAL);
delay(500);
}
}
p10 panel baglantısı