İçeriğe Geç

Çılgın Kurbağa Oyun Projesi

02 Nov 2023
Crazy Frog Game Project

İçindekiler

    Çılgın Kurbağa Oyunu genellikle Crazy Frog karakterine veya şarkıya dayanan bir video oyununu ifade eder. Aynı zamanda "Rahatsız Edici Şey" olarak da bilinen popüler bir internet fenomeni ve reklam karakteridir. Vahşi ve esprili bir karakter olarak tanınmaktadır ve birçok eğlenceli ve çılgın macera oyununa ilham kaynağı olmuştur.

    Bu oyunlar aksiyon, yarış, platform oyunları veya çeşitli mini oyunlar gibi farklı türlerde bulunabilir. Oyuncular karakteri kontrol ederek engelleri aşmaya, yarışmaya veya görevleri tamamlamaya çalışırlar.

    Her Crazy Frog oyununun kendine özgü konsepti ve oynanışı olabilir, bu nedenle sorduğunuz oyunun belirli ayrıntıları farklı yanıtlar verebilir. Genel olarak bu oyunlar keyifli ve esprili deneyimler sunmayı ve hayranlara keyifli bir oyun deneyimi sunmayı amaçlamaktadır.

    Çılgın Kurbağa Oyunu

    Bugün, şarkının melodisini içeren eğlenceli bir projeyi sunmanın mutluluğunu yaşıyoruz. Çılgın Kurbağa orijinal şarkısı, ritme göre titreşen senkronize RGB ışıklar ve ekranda dans rutini sergileyen sevimli bir maskot OLED Ekran. Crazy Frog oyunu sadece keyifli bir deneyim vaat etmekle kalmıyor, aynı zamanda yaratıcılığı, konsantrasyonu, çevikliği geliştiren ve temel programlama uzmanlığı kazandıran bir platform görevi de görüyor. Bu çaba sizi sadece eğlendirmeyi değil, aynı zamanda değerli becerilerle donatmayı da amaçlıyor. İşin inceliklerini daha derinlemesine inceleyelim çılgın dans eden kurbağa!

    Ayrıntılar ve Algoritma

     

    Bileşenler

     

    1xPicoBricks

    Picobricks modüllerini kablolama olmadan kodlayabilir ve çalıştırabilirsiniz. Modülleri panodan ayırarak kullanacaksanız modül bağlantılarını grove kablolarla yapmalısınız.

    Bağlantı şeması

    crazy frog game Wiring Diagram

     

    Picobricks modüllerini kablolama olmadan kodlayabilir ve çalıştırabilirsiniz. Modülleri panodan ayırarak kullanacaksanız modül bağlantılarını grove kablolarla yapmalısınız.

    Çılgın Kurbağa Oyununun MicroBlock Kodları

    MicroBlocks Codes

    Çılgın Kurbağa Oyununun MicroPython Kodları

    Mikro Python kodu aşağıda gösterilmiştir. Resim dosyalarınız için ayrı bir Python dosyası oluşturmanız gerekecektir. Bu dosyayı kullanarak indirebilirsiniz. düğme altında.

    Tüm Kodu İndir

    ithalat zamanı
    makineden içe aktarma Pin, I2C, PWM, ADC
    picobricks'ten SSD1306_I2C'yi içe aktar
    çerçeve çerçevesini içe aktar
    import random #random neopixel'in rastgele çalışmasını sağlar.
    picobricks'ten WS2812#ws8212 kitaplığını içe aktarın
    from Crazyfrog_imgs import bar_0, bar_20, bar_50, bar_70, bar_90, bar_100, maskot_1, maskot_2, maskot_3, maskot_4 # imgs ayarını çalıştırıyoruz ve görüntüleri yapılandırmak için seçeneklerden birini oluşturuyoruz.
     
    GENİŞLİK = 128 # oled ekran genişliği
    YÜKSEKLİK = 64 # oled ekran yüksekliği
    i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=200000) # GP8 ve GP9 pinlerini kullanarak I2C'yi başlatın (varsayılan I2C0 pinleri)
    oled = SSD1306_I2C(WIDTH, HEIGHT, i2c, addr=0x3c) # Başlangıç ​​oled ekranı
    bar1 = çerçevebuf.FrameBuffer(bar_0, 128,64, çerçevebuf.MONO_HLSB)
    bar2 = çerçevebuf.FrameBuffer(bar_20, 128,64, çerçevebuf.MONO_HLSB)
    bar3 = çerçevebuf.FrameBuffer(bar_50, 128,64, çerçevebuf.MONO_HLSB)
    bar4 = çerçevebuf.FrameBuffer(bar_70, 128,64, çerçevebuf.MONO_HLSB)
    bar5 = çerçevebuf.FrameBuffer(bar_90, 128,64, çerçevebuf.MONO_HLSB)
    bar6 = çerçevebuf.FrameBuffer(bar_100, 128,64, çerçevebuf.MONO_HLSB)
    maskot1 = çerçevebuf.FrameBuffer(maskot_1, 128,64, çerçevebuf.MONO_HLSB)
    maskot2 = çerçevebuf.FrameBuffer(maskot_2, 128,64, çerçevebuf.MONO_HLSB)
    maskot3 = çerçevebuf.FrameBuffer(maskot_3, 128,64, çerçevebuf.MONO_HLSB)
    maskot4 = çerçevebuf.FrameBuffer(maskot_4, 128,64, çerçevebuf.MONO_HLSB)
     
    notlar = {"B0": 31, "C1": 33, "CS1": 35, "D1": 37, "DS1": 39, "E1": 41, "F1": 44, "FS1": 46 ,
             "G1": 49, "GS1": 52, "A1": 55, "AS1": 58, "B1": 62, "C2": 65, "CS2": 69, "D2": 73,
             "DS2": 78,"E2": 82, "F2": 87, "FS2": 93, "G2": 98, "GS2": 104, "A2": 110,
             "AS2": 117, "B2": 123, "C3": 131, "CS3": 139, "D3": 147, "DS3": 156, "E3": 165,
             "F3": 175, "FS3": 185, "G3": 196, "GS3": 208, "A3": 220, "AS3": 233, "B3": 247,
             "C4": 262, "CS4": 277, "D4": 294, "DS4": 311, "E4": 330, "F4": 349, "FS4": 370,
             "G4": 392, "GS4": 415, "A4": 440, "AS4": 466, "B4": 494, "C5": 523, "CS5": 554,
             "D5": 587, "DS5": 622, "E5": 659, "F5": 698, "FS5": 740, "G5": 784, "GS5": 831,
             "A5": 880, "AS5": 932, "B5": 988, "C6": 1047, "CS6": 1109, "D6": 1175,
             "DS6": 1245, "E6": 1319, "F6": 1397, "FS6": 1480, "G6": 1568, "GS6": 1661,
             "A6": 1760, "AS6": 1865, "B6": 1976, "C7": 2093, "CS7": 2217, "D7": 2349,
             "DS7": 2489, "E7": 2637, "F7": 2794, "FS7": 2960, "G7": 3136, "GS7": 3322,
             "A7": 3520, "AS7": 3729, "B7": 3951, "C8": 4186, "CS8": 4435, "D8": 4699,
             "DS8": 4978}
     
    çılgın_frog_melody = [
        notlar['A4'], notlar['C5'], notlar['A4'], notlar['A4'], notlar['D5'], notlar['A4'], notlar['G4'],
        notlar['A4'], notlar['E5'], notlar['A4'], notlar['A4'], notlar['F5'], notlar['E5'], notlar['C5'],
        notlar['A4'], notlar['E5'], notlar['A5'], notlar['A4'], notlar['G4'], notlar['G4'], notlar['E4'],
        notlar['B4'], notlar['A4'],0,
       
        notlar['A4'], notlar['C5'], notlar['A4'], notlar['A4'], notlar['D5'], notlar['A4'], notlar['G4'],
        notlar['A4'], notlar['E5'], notlar['A4'], notlar['A4'], notlar['F5'], notlar['E5'], notlar['C5'],
        notlar['A4'], notlar['E5'], notlar['A5'], notlar['A4'], notlar['G4'], notlar['G4'], notlar['E4'],
        notlar['B4'], notlar['A4'],0,
       
        notlar['A3'], notlar['G3'], notlar['E3'], notlar['D3'],
       
        notlar['A4'], notlar['C5'], notlar['A4'], notlar['A4'], notlar['D5'], notlar['A4'], notlar['G4'],
        notlar['A4'], notlar['E5'], notlar['A4'], notlar['A4'], notlar['F5'], notlar['E5'], notlar['C5'],
        notlar['A4'], notlar['E5'], notlar['A5'], notlar['A4'], notlar['G4'], notlar['G4'], notlar['E4'],
        notlar['B4'], notlar['A4'],
    ]
     
    çılgın_frog_tempo = [
        2,4,4,8,4,4,4,
        2,4,4,8,4,4,4,
        4,4,4,8,4,8,4,4,
        1,4,
       
        2,4,4,8,4,4,4,
        2,4,4,8,4,4,4,
        4,4,4,8,4,8,4,4,
        1,4,
       
        8,4,4,4,
       
        2,4,4,8,4,4,4,
        2,4,4,8,4,4,4,
        4,4,4,8,4,8,4,4,
        1,
    ]
    oled.blit(çubuk1, 0, 0)
    oled.show()
    zaman.uyku(1)
    oled.blit(bar2, 0, 0)
    oled.show()
    zaman.uyku(1)
    oled.blit(bar3, 0, 0)
    oled.show()
    zaman.uyku(1)
    oled.blit(bar4, 0, 0)
    oled.show()
    zaman.uyku(1)
    oled.blit(bar5, 0, 0)
    oled.show()
    zaman.uyku(1)
    oled.blit(bar6, 0, 0)
    oled.show()
    zaman.uyku(1)
     
    sesli uyarı = PWM(Pin(20))
    buzzer.duty_u16(0)
     
    neo = WS2812(6, parlaklık=0,4)
     
    maskot_pozisyon = 0
     
    def buzz(frekans, uzunluk):
    #"vızıltı" fonksiyonunu yaratın ve ona perdeyi ve süreyi besleyin
        if(frekans==0):
            zaman.uyku(uzunluk)
            geri dönmek
     
        buzzer.duty_u16(4000)
        buzzer.freq(frekans)
        zaman.uyku(uzunluk)
        buzzer.duty_u16(0)
     
    def play(melodi, tempo, duraklama, tempo=0,7):
        küresel maskot_position
        i için range(0, len(melodi)):
            # Şarkıyı çal
            notSüre = tempo/tempo[i]
            buzz(melody[i],noteDuration) # Şarkı notası boyunca frekansı değiştirin
            PauseBetweenNotes = noteSüre * duraklatma
            time.sleep(pauseBetweenNotes)
    neo.pixels_fill((random.randint(0,255),
                             random.randint(0,255),
                             random.randint(0,255)))
            neo.pixels_show()
            maskot_position == 0 ise:
                oled.blit(maskot1, 0, 0)
                maskot_pozisyon = 1
            elif maskot_pozisyon == 1:
                oled.blit(maskot2, 0, 0)
                maskot_pozisyon = 2
            elif maskot_pozisyon == 2:
                oled.blit(maskot3, 0, 0)
                maskot_pozisyon = 3
            elif maskot_pozisyon == 3:
                oled.blit(maskot4, 0, 0)
                maskot_pozisyon = 0
            oled.show()
     
    çal(crazy_frog_melody, çılgın_frog_tempo, 0.1)

    PicoBricks için Arduino C Kodları

     

    
     
    #define BUZZER_PIN 20
    #define NOTE_E4 330
    #define NOTE_A5 880
    #define NOTE_F5 698
    #define NOTE_E5 659
    #define NOTE_G4 392
    #define NOTE_D5 587
    #define NOTE_C5 523
    #define NOTE_A4 440
    #define NOTE_B4 494
    
    const int çılgınFrogMelody[] = {
      NOTE_A4, NOTE_C5, NOTE_A4, NOTE_A4, NOTE_D5, NOTE_A4, NOTE_G4,
      NOTE_A4, NOTE_E5, NOTE_A4, NOTE_A4, NOTE_F5, NOTE_E5, NOTE_C5,
      NOTE_A4, NOTE_E5, NOTE_A5, NOTE_A4, NOTE_G4, NOTE_G4, NOTE_E4, NOTE_B4,
      NOT_A4, 0,
    };
    
    const int çılgınFrogTempo[] = {
      2, 4, 4, 8, 4, 4, 4,
      2, 4, 4, 8, 4, 4, 4,
      4, 4, 4, 8, 4, 8, 4, 4,
      1, 4,
    };
    
    geçersiz kurulum() {
      pinMode(BUZZER_PIN, OUTPUT);
    }
    
    geçersiz döngü () {
      int size = sizeof(crazyFrogTempo) / sizeof(int);
      for (int not = 0; not < boyut; not++) {
        int süre = 1000 / çılgınFrogTempo[not];
        tone(BUZZER_PIN, çılgınFrogMelody[not], süre);
        int PauseBetweenNotes = süre * 1.30;
        gecikme(PauseBetweenNotes);
        ton yok(BUZZER_PIN);
      }
    }
    Önceki Gönderi
    Sıradaki Gönderi

    Abone olduğun için teşekkürler!

    Bu e-posta kaydedildi!

    Görünümü satın alın
    Seçenekleri Seçin

    Seçeneği Düzenle

    Stok Bildirimi

    Karşılaştır

    Ürün Stok KoduDeğerlendirmeAçıklama Kategori Uygunluk Ürün Tipi Diğer Detaylar
    this is just a warning
    Giriş Yap
    Alışveriş Sepeti
    0 Ürünler
    Same Day Shipping No Extra Costs
    Easy Returns Guarantee Return with Ease
    Secure Checkout Secure Payment