LED Yakala v1, Mete Hoca Panda için hazırlanmış LED yakalama oyunudur.
1 oyunculu oyunda çemberde dönen LED ile sabit yanan hedef LED’i yakalamaya çalışırız. Dönen LED tam hedef LED’in üzerine geldiğinde A veya B butonuna basar ve hedefi yakalamış oluruz.
Oyunun daha kapsamlı sürümü için LED Yakala v2‘yi inceleyin.
Arduino Nano
LED Yakala 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 |
/* LED Yakala v1 (Nano) | Mete Hoca Panda için LED yakalama oyunu Çemberde dönen LED ile sabit yanan hedef LED'i yakalamaya çalışırız. Dönen LED tam hedef LED'in üzerine geldiğinde A veya B butonuna basar ve hedefi yakalamış oluruz. Oyunun daha kapsamlı sürümü için LED Yakala v2'yi inceleyin. LED Yakala 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, YananLED; byte HedefLED = 8; // Oyuna başlarken ilk hedef olacak LED byte Hiz = 50; // Oyun hızı (Ne kadar düşük o kadar hızlı!) void setup() { Kurulum(); // LED ve Butonları ayarlar //AnahtarOku(); // Anahtar konumlarını okur } void loop() { digitalWrite(LED[YananLED], HIGH); // Döngüde o an yanacak LED yakılıyor if (YananLED == HedefLED) digitalWrite(LED[HedefLED], LOW); else digitalWrite(LED[HedefLED], HIGH); for (int x = 0; x < Hiz; x++) { // Döngüdeki LED yanarken buton kontrolü yapılıyor if (digitalRead(ButonA) == 1) ButonA_Basildi = true; if (digitalRead(ButonB) == 1) ButonB_Basildi = true; delay(1); } if (ButonA_Basildi == true || ButonB_Basildi == true) { // Butonlardan birine basılmış! if (YananLED == HedefLED) Yakaladi(); else Yakalayamadi(); ButonA_Basildi = false; ButonB_Basildi = false; YananLED = 0; } digitalWrite(LED[YananLED], LOW); // Döngüde sıradaki LED'e geçiyoruz YananLED++; // Sıradaki LED if (YananLED == sizeof(LED)) YananLED = 0; // Son LED'e geldik. Başa dönüyoruz. } void Yakaladi() { for (int x = 0; x < 3; x++) { // Yakalanan LED'i 3 kere yak söndür ve 3 kere biple tone(Buzzer,500); digitalWrite(LED[HedefLED], LOW); delay(50); noTone(Buzzer); digitalWrite(LED[HedefLED], HIGH); delay(50); } } void Yakalayamadi() { tone(Buzzer,250); for (int x = 0; x < 3; x++) { // Döngüdeki LED'i 3 kere yak söndür digitalWrite(LED[YananLED], LOW); delay(100); digitalWrite(LED[YananLED], HIGH); delay(100); } digitalWrite(LED[YananLED], LOW); noTone(Buzzer); } //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
LED Yakala 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 |
/* LED Yakala v1 (Pi Pico) | Mete Hoca Panda için LED yakalama oyunu Çemberde dönen LED ile sabit yanan hedef LED'i yakalamaya çalışırız. Dönen LED tam hedef LED'in üzerine geldiğinde A veya B butonuna basar ve hedefi yakalamış oluruz. Oyunun daha kapsamlı sürümü için LED Yakala v2'yi inceleyin. LED Yakala 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; int AnahtarX, AnahtarY; byte ButonA_Basildi, ButonB_Basildi, YananLED; byte HedefLED = 8; // Oyuna başlarken ilk hedef olacak LED byte Hiz = 50; // Oyun hızı (Ne kadar düşük o kadar hızlı!) void setup() { Kurulum(); // LED ve Butonları ayarlar //AnahtarOku(); // Anahtar konumlarını okur } void loop() { digitalWrite(LED[YananLED], HIGH); // Döngüde o an yanacak LED yakılıyor if (YananLED == HedefLED) digitalWrite(LED[HedefLED], LOW); else digitalWrite(LED[HedefLED], HIGH); for (int x = 0; x < Hiz; x++) { // Döngüdeki LED yanarken buton kontrolü yapılıyor if (digitalRead(ButonA) == 1) ButonA_Basildi = true; if (digitalRead(ButonB) == 1) ButonB_Basildi = true; delay(1); } if (ButonA_Basildi == true || ButonB_Basildi == true) { // Butonlardan birine basılmış! if (YananLED == HedefLED) Yakaladi(); else Yakalayamadi(); ButonA_Basildi = false; ButonB_Basildi = false; YananLED = 0; } digitalWrite(LED[YananLED], LOW); // Döngüde sıradaki LED'e geçiyoruz YananLED++; // Sıradaki LED if (YananLED == sizeof(LED)) YananLED = 0; // Son LED'e geldik. Başa dönüyoruz. } void Yakaladi() { for (int x = 0; x < 3; x++) { // Yakalanan LED'i 3 kere yak söndür ve 3 kere biple tone(Buzzer,500); digitalWrite(LED[HedefLED], LOW); delay(50); noTone(Buzzer); digitalWrite(Buzzer, LOW); digitalWrite(LED[HedefLED], HIGH); delay(50); } } void Yakalayamadi() { tone(Buzzer,250); for (int x = 0; x < 3; x++) { // Döngüdeki LED'i 3 kere yak söndür digitalWrite(LED[YananLED], LOW); delay(100); digitalWrite(LED[YananLED], HIGH); delay(100); } digitalWrite(LED[YananLED], LOW); noTone(Buzzer); digitalWrite(Buzzer, 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 } |
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.