Hızlı Tepki v1, Mete Hoca Panda için hazırlanmış 2 oyunculu tepki yarışı oyunudur.
2 oyunculudur. Sırayla yanan tüm ışıklar sönünce rakibinden erken basan kazanır.
START butonuna basılarak başlanır. Tüm ışıklar söndüğünde iki oyuncu da butonuna
basar. Önce basan kazanır ve kendi tarafındaki 3 LED yanar. Işıklar sönmeden
basan olursa kendi tarafındaki 1 LED yanarak gösterilir.
Arduino Nano
Hızlı Tepki 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 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 |
/* LED Hızlı Tepki v1 (Nano) | Mete Hoca Panda için tepki yarışı 2 oyunculudur. Sırayla yanan tüm ışıklar sönünce rakibinden erken basan kazanır. START butonuna basılarak başlanır. Tüm ışıklar söndüğünde iki oyuncu da butonuna basar. Önce basan kazanır ve kendi tarafındaki 3 LED yanar. Işıklar sönmeden basan olursa kendi tarafındaki 1 LED yanarak gösterilir. LED Hızlı Tepki 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, BitirA, BitirB, Bekle; byte ButonA_Basildi, ButonB_Basildi; void setup() { Kurulum(); // LED ve Butonları ayarlar AnahtarOku(); // Anahtar konumlarını okur for (int x = 4; x < 13; x++) digitalWrite(LED[x], HIGH); } void loop() { BitirA = 0; BitirB = 0; while (!digitalRead(ButonS)); // Başlamak için START butonuna bas for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); digitalWrite(LED[8], HIGH); // 1. adım tone(Buzzer,600); delay(300); noTone(Buzzer); delay(700); digitalWrite(LED[7], HIGH); // 2. adım digitalWrite(LED[9], HIGH); tone(Buzzer,600); delay(300); noTone(Buzzer); delay(700); digitalWrite(LED[6], HIGH); // 3. adım digitalWrite(LED[10], HIGH); tone(Buzzer,600); delay(300); noTone(Buzzer); delay(700); digitalWrite(LED[5], HIGH); // 4. adım digitalWrite(LED[11], HIGH); tone(Buzzer,600); delay(300); noTone(Buzzer); delay(700); digitalWrite(LED[4], HIGH); // 5. adım digitalWrite(LED[12], HIGH); tone(Buzzer,600); delay(300); noTone(Buzzer); Bekle = random(500,5000); // Son ışıklar yanıkken rastgele bir süre bekle for (int x = 0; x < Bekle; x++) { // Erken basan olursa... if (digitalRead(ButonA) == 1) { ButonA_Basildi = true; BitirA = 1; break; } if (digitalRead(ButonB) == 1) { ButonB_Basildi = true; BitirB = 1; break; } delay(1); } for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); // Tüm LED'ler sönsün if (BitirA == 1 || BitirB == 1) { // Herhangi bir oyuncu erken bastıysa... if (BitirA == 1) digitalWrite(LED[12], HIGH); if (BitirB == 1) digitalWrite(LED[4], HIGH); tone(Buzzer,500); delay(500); noTone(Buzzer); while (!digitalRead(ButonS)); loop(); } int basla = millis(); // Erken basan yok, basmaları bekle... for (int x = 0; x < 500; x++) { if (digitalRead(ButonA) == 1) { ButonA_Basildi = true; BitirA = millis(); } if (digitalRead(ButonB) == 1) { ButonB_Basildi = true; BitirB = millis(); } delay(1); } if (BitirA != 0 && BitirB != 0) { // Herkes basmış. Bakalım kim önce basmış... if (BitirA == BitirB) { // AYNI ANDA BASMIŞLAR!!!!1!1! while (!digitalRead(ButonS)) { for (int x = 0; x < sizeof(LED); x+=2) digitalWrite(LED[x], HIGH); tone(Buzzer,1000); delay(50); noTone(Buzzer); delay(50); for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); for (int x = 1; x < sizeof(LED); x+=2) digitalWrite(LED[x], HIGH); tone(Buzzer,700); delay(50); noTone(Buzzer); delay(50); for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); } } if (BitirA < BitirB) { // Farklı zamanda basmışlar... 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); } else { 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); } } else if (BitirA == 0 && BitirB == 0) { // Kimse basmamış. Uyudular herhalde! tone(Buzzer,500); delay(500); noTone(Buzzer); BitirA = 0; BitirB = 0; for (int x = 4; x < 13; x++) digitalWrite(LED[x], HIGH); } else { // Bir oyuncu basmamış. Bakalım kim! if (BitirA == 0) { 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); } if (BitirB == 0) { 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); } } } 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
Hızlı Tepki 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 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
/* LED Hızlı Tepki v1 (Pi Pico) | Mete Hoca Panda için tepki yarışı 2 oyunculudur. Sırayla yanan tüm ışıklar sönünce rakibinden erken basan kazanır. START butonuna basılarak başlanır. Tüm ışıklar söndüğünde iki oyuncu da butonuna basar. Önce basan kazanır ve kendi tarafındaki 3 LED yanar. Işıklar sönmeden basan olursa kendi tarafındaki 1 LED yanarak gösterilir. LED Hızlı Tepki 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, BitirA, BitirB, Bekle; byte ButonA_Basildi, ButonB_Basildi; void setup() { Kurulum(); // LED ve Butonları ayarlar //AnahtarOku(); // Anahtar konumlarını okur for (int x = 4; x < 13; x++) digitalWrite(LED[x], HIGH); } void loop() { BitirA = 0; BitirB = 0; while (!digitalRead(ButonS)); // Başlamak için START butonuna bas for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); digitalWrite(LED[8], HIGH); // 1. adım tone(Buzzer,600); delay(300); noTone(Buzzer); digitalWrite(Buzzer, LOW); delay(700); digitalWrite(LED[7], HIGH); // 2. adım digitalWrite(LED[9], HIGH); tone(Buzzer,600); delay(300); noTone(Buzzer); digitalWrite(Buzzer, LOW); delay(700); digitalWrite(LED[6], HIGH); // 3. adım digitalWrite(LED[10], HIGH); tone(Buzzer,600); delay(300); noTone(Buzzer); digitalWrite(Buzzer, LOW); delay(700); digitalWrite(LED[5], HIGH); // 4. adım digitalWrite(LED[11], HIGH); tone(Buzzer,600); delay(300); noTone(Buzzer); digitalWrite(Buzzer, LOW); delay(700); digitalWrite(LED[4], HIGH); // 5. adım digitalWrite(LED[12], HIGH); tone(Buzzer,600); delay(300); noTone(Buzzer); digitalWrite(Buzzer, LOW); Bekle = random(500,5000); // Son ışıklar yanıkken rastgele bir süre bekle for (int x = 0; x < Bekle; x++) { // Erken basan olursa... if (digitalRead(ButonA) == 1) { ButonA_Basildi = true; BitirA = 1; break; } if (digitalRead(ButonB) == 1) { ButonB_Basildi = true; BitirB = 1; break; } delay(1); } for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); // Tüm LED'ler sönsün if (BitirA == 1 || BitirB == 1) { // Herhangi bir oyuncu erken bastıysa... if (BitirA == 1) digitalWrite(LED[12], HIGH); if (BitirB == 1) digitalWrite(LED[4], HIGH); tone(Buzzer,500); delay(500); noTone(Buzzer); digitalWrite(Buzzer, LOW); while (!digitalRead(ButonS)); loop(); } int basla = millis(); // Erken basan yok, basmaları bekle... for (int x = 0; x < 500; x++) { if (digitalRead(ButonA) == 1) { ButonA_Basildi = true; BitirA = millis(); } if (digitalRead(ButonB) == 1) { ButonB_Basildi = true; BitirB = millis(); } delay(1); } if (BitirA != 0 && BitirB != 0) { // Herkes basmış. Bakalım kim önce basmış... if (BitirA == BitirB) { // AYNI ANDA BASMIŞLAR!!!!1!1! while (!digitalRead(ButonS)) { for (int x = 0; x < sizeof(LED); x+=2) digitalWrite(LED[x], HIGH); tone(Buzzer,1000); delay(50); noTone(Buzzer); digitalWrite(Buzzer, LOW); delay(50); for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); for (int x = 1; x < sizeof(LED); x+=2) digitalWrite(LED[x], HIGH); tone(Buzzer,700); delay(50); noTone(Buzzer); digitalWrite(Buzzer, LOW); delay(50); for (int x = 0; x < sizeof(LED); x++) digitalWrite(LED[x], LOW); } } if (BitirA < BitirB) { // Farklı zamanda basmışlar... 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); } else { 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); } } else if (BitirA == 0 && BitirB == 0) { // Kimse basmamış. Uyudular herhalde! tone(Buzzer,500); delay(500); noTone(Buzzer); digitalWrite(Buzzer, LOW); BitirA = 0; BitirB = 0; for (int x = 4; x < 13; x++) digitalWrite(LED[x], HIGH); } else { // Bir oyuncu basmamış. Bakalım kim! if (BitirA == 0) { 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); } if (BitirB == 0) { 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); } } } //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.