Halat Çekme v1, Mete Hoca Panda için hazırlanmış 2 oyunculu halat çekme oyunudur.
2 kişilik bu oyunda çemberin alt kısmında yanan LED çizgisini kendi tarafında en tepeye
getiren oyunu kazanır. Kazanmak için tuşuna rakibinden hızlı bas!
Arduino Nano
Halat Çekme v1’in Arduino Nano için Arduino IDE sketch kodunu aşağıda görebilir ve buraya tıklayarak indirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
/* Halat Çekme v1 (Nano) | Mete Hoca Panda için halat çekme oyunu 2 kişilik bu oyunda çemberin alt kısmında yanan LED çizgisini kendi tarafında en tepeye getiren oyunu kazanır. Kazanmak için tuşuna rakibinden hızlı bas! Halat Çekme v1 Web Sayfası: https://www.metehoca.com/ -------------------------------------------------------------------------------- Mete Hoca Panda | Eğlendirerek Arduino Kodlama Öğreten Mini Oyun Konsolu Mete Hoca Panda, Arduino Nano veya Raspberry Pi Pico ile kullanılan ve herkesin kendi basit oyunlarını tasarlayıp uygulayabileceği kolay ve esnek bir oyun platformudur. 1 veya 2 kişilik oyunlar geliştirilmesine açık olan Panda, üzerinde barındırdığı 3 programlanabilir buton, 16 LED, 2 anahtar ve 1 buzzer ile biz Arduino ve Raspberry Pi Pico tutkunlarına hayal gücümüz ile sınırlı pek çok eğlence sunuyor. Panda'nın detaylı açıklaması ve örnek oyunlarını web sitemizde bulabilirsiniz. Mete Hoca https://www.metehoca.com/ */ const byte LED[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,A0,A1}; // LED'lerin pinleri byte ButonA = A2, ButonB = A3, ButonS = A4; // Buton pinleri byte SwitchX = A6, SwitchY = A7; // Anahtar pinleri byte Buzzer = A5; // Buzzer pini int AnahtarX, AnahtarY; byte ButonA_Basildi, ButonB_Basildi, Basildi; byte Durum = 5; byte Basla = true; int BasmaA, BasmaB; void setup() { Kurulum(); // LED ve Butonları ayarlar //AnahtarOku(); // Anahtar konumlarını okur } void loop() { if (Basla == true) { // Oyuna baştan başlıyoruz Durum = 5; // Değişkenleri sıfırlayalım BasmaA = 0; BasmaB = 0; Basildi = false; ButonA_Basildi = false; ButonB_Basildi = false; Basla = false; tone(Buzzer,500); // Başlama animasyonu digitalWrite(LED[8], HIGH); delay(500); noTone(Buzzer); delay(500); tone(Buzzer,500); digitalWrite(LED[7], HIGH); digitalWrite(LED[9], HIGH); delay(500); noTone(Buzzer); delay(500); tone(Buzzer,500); digitalWrite(LED[6], HIGH); digitalWrite(LED[10], HIGH); delay(500); noTone(Buzzer); delay(500); tone(Buzzer,750); digitalWrite(LED[5], HIGH); digitalWrite(LED[11], HIGH); delay(500); noTone(Buzzer); } for (int x = Durum; x < Durum + 7; x++) digitalWrite(LED[x], HIGH); // Gerekli LED'ler yakılıp söndürülüyor for (int x = 0; x < Durum; x++) digitalWrite(LED[x], LOW); for (int x = Durum + 7; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); if (digitalRead(ButonA) == 1) ButonA_Basildi = true; // A butonuna basılmış if (digitalRead(ButonA) == 0 && ButonA_Basildi == true) { BasmaA++; ButonA_Basildi = false; Basildi = true; } if (digitalRead(ButonB) == 1) ButonB_Basildi = true; // B butonuna basılmış if (digitalRead(ButonB) == 0 && ButonB_Basildi == true) { BasmaB++; ButonB_Basildi = false; Basildi = true; } if (Basildi == true) { // Butonlardan birine basılmış, halat konumunu hesapla Durum = (BasmaA - BasmaB) + 5; Basildi = false; } if (Durum == 10) { // A oyuncusu kazanmış! digitalWrite(LED[Durum - 1], LOW); tone(Buzzer,500); for (int x = 0; x < 3; x++) { for (int x = 10; x < 16; x++) digitalWrite(LED[x], LOW); digitalWrite(LED[0], LOW); delay(100); for (int x = 10; x < 16; x++) digitalWrite(LED[x], HIGH); digitalWrite(LED[0], HIGH); delay(100); } for (int x = 10; x < 16; x++) digitalWrite(LED[x], LOW); noTone(Buzzer); for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); for (int x = 11; x < 14; x++) digitalWrite(LED[x], HIGH); while (!digitalRead(ButonS)); for (int x = 11; x < 14; x++) digitalWrite(LED[x], LOW); Basla = true; } if (Durum == 0) { // B oyuncusu kazanmış! digitalWrite(LED[Durum + 7], LOW); tone(Buzzer,500); for (int x = 0; x < 3; x++) { for (int x = 0; x < 7; x++) digitalWrite(LED[x], LOW); delay(100); for (int x = 0; x < 7; x++) digitalWrite(LED[x], HIGH); delay(100); } for (int x = 0; x < 7; x++) digitalWrite(LED[x], LOW); noTone(Buzzer); for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); for (int x = 3; x < 6; x++) digitalWrite(LED[x], HIGH); while (!digitalRead(ButonS)); for (int x = 3; x < 6; x++) digitalWrite(LED[x], LOW); Basla = true; } delay(10); } //void AnahtarOku() { // AnahtarX = analogRead(SwitchX); // Analog değeri oku // if (AnahtarX > 900) AnahtarX = 1; else if (AnahtarX < 50) AnahtarX = 2; // 1 veya 2 olarak ayarla // AnahtarY = analogRead(SwitchY); // Analog değeri oku // if (AnahtarY > 900) AnahtarY = 1; else if (AnahtarY < 50) AnahtarY = 2; // 1 veya 2 olarak ayarla //} void Kurulum() { for (int x = 0; x < sizeof(LED); x++) pinMode(LED[x], OUTPUT); // LED'leri çıkış yapıyoruz pinMode(ButonA, INPUT); // Buton pinlerini giriş olarak ayarlıyoruz pinMode(ButonB, INPUT); pinMode(ButonS, INPUT); pinMode(Buzzer, OUTPUT); // Buzzer pinini çıkış olarak ayarlıyoruz for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], HIGH); // Test: Tüm LED'leri yakalım delay(500); for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); // LED'leri söndürelim delay(500); // Ana kod öncesinde biraz bekleyelim } |
Raspberry Pi Pico
Halat Çekme v1’in Raspberry Pi Pico için Arduino IDE sketch kodunu aşağıda görebilir ve buraya tıklayarak indirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
/* Halat Çekme v1 (Pi Pico) | Mete Hoca Panda için halat çekme oyunu 2 kişilik bu oyunda çemberin alt kısmında yanan LED çizgisini kendi tarafında en tepeye getiren oyunu kazanır. Kazanmak için tuşuna rakibinden hızlı bas! Halat Çekme v1 Web Sayfası: https://www.metehoca.com/ -------------------------------------------------------------------------------- Mete Hoca Panda | Eğlendirerek Arduino Kodlama Öğreten Mini Oyun Konsolu Mete Hoca Panda, Arduino Nano veya Raspberry Pi Pico ile kullanılan ve herkesin kendi basit oyunlarını tasarlayıp uygulayabileceği kolay ve esnek bir oyun platformudur. 1 veya 2 kişilik oyunlar geliştirilmesine açık olan Panda, üzerinde barındırdığı 3 programlanabilir buton, 16 LED, 2 anahtar ve 1 buzzer ile biz Arduino ve Raspberry Pi Pico tutkunlarına hayal gücümüz ile sınırlı pek çok eğlence sunuyor. Panda'nın detaylı açıklaması ve örnek oyunlarını web sitemizde bulabilirsiniz. Mete Hoca https://www.metehoca.com/ */ const byte LED[16] = {17,16,18,19,20,21,22,15,14,13,12,11,10,0,1,2}; // LED'lerin pinleri byte ButonA = 3, ButonB = 4, ButonS = 5; // Buton pinleri byte SwitchX = 7, SwitchY = 8; // Anahtar pinleri byte Buzzer = 6; // Buzzer pini int AnahtarX, AnahtarY; byte ButonA_Basildi, ButonB_Basildi, Basildi; byte Durum = 5; byte Basla = true; int BasmaA, BasmaB; void setup() { Kurulum(); // LED ve Butonları ayarlar //AnahtarOku(); // Anahtar konumlarını okur } void loop() { if (Basla == true) { // Oyuna baştan başlıyoruz Durum = 5; // Değişkenleri sıfırlayalım BasmaA = 0; BasmaB = 0; Basildi = false; ButonA_Basildi = false; ButonB_Basildi = false; Basla = false; tone(Buzzer,500); // Başlama animasyonu digitalWrite(LED[8], HIGH); delay(500); noTone(Buzzer); digitalWrite(Buzzer, LOW); delay(500); tone(Buzzer,500); digitalWrite(LED[7], HIGH); digitalWrite(LED[9], HIGH); delay(500); noTone(Buzzer); digitalWrite(Buzzer, LOW); delay(500); tone(Buzzer,500); digitalWrite(LED[6], HIGH); digitalWrite(LED[10], HIGH); delay(500); noTone(Buzzer); digitalWrite(Buzzer, LOW); delay(500); tone(Buzzer,750); digitalWrite(LED[5], HIGH); digitalWrite(LED[11], HIGH); delay(500); noTone(Buzzer); digitalWrite(Buzzer, LOW); } for (int x = Durum; x < Durum + 7; x++) digitalWrite(LED[x], HIGH); // Gerekli LED'ler yakılıp söndürülüyor for (int x = 0; x < Durum; x++) digitalWrite(LED[x], LOW); for (int x = Durum + 7; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); if (digitalRead(ButonA) == 1) ButonA_Basildi = true; // A butonuna basılmış if (digitalRead(ButonA) == 0 && ButonA_Basildi == true) { BasmaA++; ButonA_Basildi = false; Basildi = true; } if (digitalRead(ButonB) == 1) ButonB_Basildi = true; // B butonuna basılmış if (digitalRead(ButonB) == 0 && ButonB_Basildi == true) { BasmaB++; ButonB_Basildi = false; Basildi = true; } if (Basildi == true) { // Butonlardan birine basılmış, halat konumunu hesapla Durum = (BasmaA - BasmaB) + 5; Basildi = false; } if (Durum == 10) { // A oyuncusu kazanmış! digitalWrite(LED[Durum - 1], LOW); tone(Buzzer,500); for (int x = 0; x < 3; x++) { for (int x = 10; x < 16; x++) digitalWrite(LED[x], LOW); digitalWrite(LED[0], LOW); delay(100); for (int x = 10; x < 16; x++) digitalWrite(LED[x], HIGH); digitalWrite(LED[0], HIGH); delay(100); } for (int x = 10; x < 16; x++) digitalWrite(LED[x], LOW); noTone(Buzzer); digitalWrite(Buzzer, LOW); for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); for (int x = 11; x < 14; x++) digitalWrite(LED[x], HIGH); while (!digitalRead(ButonS)); for (int x = 11; x < 14; x++) digitalWrite(LED[x], LOW); Basla = true; } if (Durum == 0) { // B oyuncusu kazanmış! digitalWrite(LED[Durum + 7], LOW); tone(Buzzer,500); for (int x = 0; x < 3; x++) { for (int x = 0; x < 7; x++) digitalWrite(LED[x], LOW); delay(100); for (int x = 0; x < 7; x++) digitalWrite(LED[x], HIGH); delay(100); } for (int x = 0; x < 7; x++) digitalWrite(LED[x], LOW); noTone(Buzzer); digitalWrite(Buzzer, LOW); for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); for (int x = 3; x < 6; x++) digitalWrite(LED[x], HIGH); while (!digitalRead(ButonS)); for (int x = 3; x < 6; x++) digitalWrite(LED[x], LOW); Basla = true; } delay(10); } //void AnahtarOku() { // pinMode(SwitchX, INPUT); // pinMode(SwitchY, INPUT); // AnahtarX = digitalRead(SwitchX); // Analog değeri oku // if (AnahtarX == HIGH) AnahtarX = 1; else AnahtarX = 2; // 1 veya 2 olarak ayarla // AnahtarY = digitalRead(SwitchY); // Analog değeri oku // if (AnahtarY == HIGH) AnahtarY = 1; else AnahtarY = 2; // 1 veya 2 olarak ayarla //} void Kurulum() { for (int x = 0; x < sizeof(LED); x++) pinMode(LED[x], OUTPUT); // LED'leri çıkış yapıyoruz pinMode(ButonA, INPUT); // Buton pinlerini giriş olarak ayarlıyoruz pinMode(ButonB, INPUT); pinMode(ButonS, INPUT); pinMode(Buzzer, OUTPUT); // Buzzer pinini çıkış olarak ayarlıyoruz for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], HIGH); // Test: Tüm LED'leri yakalım delay(500); for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); // LED'leri söndürelim delay(500); // Ana kod öncesinde biraz bekleyelim } |
Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!
ÖZGÜN ve KULLANIŞLI projeler yapabilmek için ARDUINO’yu doğru öğrenmek gerekir. Arduino’ya güçlü başlamanın en iyi yolu ARDUINO’YA GÜÇLÜ BAŞLANGIÇ EĞİTİM VE PROJE SETİ‘dir. Arduino Uno üzerine kurulu olan set ile bu müthiş geliştirme platformunu tüm detaylarıyla anlayacak, başka hiçbir yerde bulamayacağınız inceliklerini öğrenecek ve en sık kullanılan Arduino sensör ve modüllerine aşina olacaksınız.