İçeriğe Geç

#7 Reaksiyon Projenizi PicoBricks ile Gösterin

23 Nov 2023
#7 Show Your Reaction Project With PicoBricks

Şimdi dikkat ve refleksleri geliştiren bir oyun hazırlayacağız. Hızlı hareket etmek ve uzun süre dikkatini verebilmek çocukların önemli gelişimsel özelliklerindendir. Okul öncesi ve ilkokul çağındaki çocuklar, ebeveynlerinin ve öğretmenlerinin hoşuna gittiği için dikkat sürelerini ve reflekslerini artırıcı aktiviteler yaparlar. Hazırlayacağımız elektronik sistem dikkati artırıcı, refleksleri geliştiren bir oyun olacak. Projeyi bitirdikten sonra arkadaşlarınızla yarışabilirsiniz.  

Bu projede her programlama dilinde kullanılan rastgeleliği öğreneceksiniz. Picobricks ile OLED ekran kullanan elektronik sistem geliştireceğiz, Düğme-LED ve Buzzer modülü.

<

Ayrıntılar ve Algoritma

Picobricks açılır açılmaz bir zamanlayıcı çalışmaya başlar. Bu zamanlayıcı ile saniyenin binde 1'ini ölçebiliyoruz. Saniyenin binde birine milisaniye denir. Zamanlayıcılar günlük hayatta birçok elektronik sistemde kullanılmaktadır. Zamanlı aydınlatma, fırınlar, ütüler, mutfak robotları…

Projemiz çalışmaya başladığında, ekranda bir hoş geldiniz mesajı görüntüleyeceğiz. OLED ekran. Daha sonra kullanıcının oyuna başlamak için ne yapması gerektiğini ekrana yazdıracağız. Oyuna başlamak için butona bastıktan sonra ekranda beliren oyuncudan 3'ten geriye doğru sayarak hazırlanmasını isteyeceğiz. Geri sayımın bitiminden sonra kırmızı LED 2-10 saniye arasında rastgele bir sürede yanacaktır. Kırmızı LED yandıktan hemen sonra zamanlayıcıyı sıfırlayacağız. Düğmeye tekrar basıldığında zamanlayıcıyı ölçeceğiz. Alacağımız bu değer milisaniye cinsinden olacaktır. Bu değeri oyuncunun tepki süresi olarak ekranda göstereceğiz.

Bileşenler

1X PicoBrick

Bağlantı şeması

 

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.

PicoBricks'in MicroBlock Kodları

Projenin Microblocks kodlarına, Microblocks Run sekmesine görseli sürükleyerek veya butonuna tıklayarak ulaşabilirsiniz.

 

Mikroblok Çalıştırma Sekmesi

 

PicoBricks'in MicroPython Kodları


makineden içe aktarma Pin, I2C, Zamanlayıcı
picobricks'ten SSD1306_I2C'yi içe aktar
kullanım süresini içe aktar
urandom'u içe aktar
#kütüphaneyi tanımla
GENİŞLİK=128
YÜKSEKLİK=64
#genişlik ve yükseklik değerlerini tanımlayın
sda=machine.Pin(4)
scl=machine.Pin(5)
i2c=machine.I2C(0,sda=sda, scl=scl, freq=2000000)
oled= SSD1306_I2C(GENİŞLİK, YÜKSEKLİK, i2c)
düğme = Pin(10,Pin.IN,Pin.PULL_DOWN)
led=Pin(7,Pin.ÇIKIŞ)
#giriş ve çıkış pinlerimizi tanımlayın
Doğruyken:
    led.değer(0)
    oled.fill(0)
    oled.text("düğmeye basın",0,10)
    oled.text("Başlamak İçin!",25,25)
    oled.show()
    #print "Düğmeye basın" ve "BAŞLAMAK İÇİN!" OLED ekranda
    while butonu.değer()==0:
        geçmek
    oled.fill(0)
    oled.text("LED'i Bekleyin",15,30)
    oled.show()
    #butona basıldığında ekrana "bekle LED'i" yaz
    utime.sleep(urandom.uniform(1,5))
    led.değer(1)
    timer_start=utime.ticks_ms()
    #rastgele bir saniye bekle ve ledi aç
    while butonu.değer()==0:
        geçmek
    timer_reaction=utime.ticks_diff(utime.ticks_ms(), timer_start)
    basılı=Doğru
    oled.fill(0)
    oled.text("Zamanınız",25,25)
    oled.text(str(timer_reaksiyon),50,50)
    oled.show()
    led.değer(0)
    utime.sleep(1.5)
    #düğmeye basıldığında skoru ve "Süreniz"i ekrana yazdırın.

PicoBricks'in Arduino C Kodları



#katmak
#include "ACROBOTIC_SSD1306.h"//kitaplığı tanımla

int buzzer=20;
int düğme=10;
int led=7;
int La=440;

int eski_zaman=0;
int şimdi_zaman=0;
int puanı=0;
String string_score;//tamsayımızı ve dize veriablesvoidsetup()'ımızı tanımlayın{// bir kez çalışacak şekilde kurulum kodunuzu buraya koyun:
  Wire.begin();
  oled.init();
  oled.clearDisplay();pinMode(led,OUTPUT);pinMode(zil,OUTPUT);pinMode(button,INPUT);
  Serial.begin(9600);//giriş ve çıkış pinlerini tanımlayın}voidloop(){// tekrar tekrar çalışacak şekilde ana kodunuzu buraya koyun:
  oled.setTextXY(3,0);
  oled.putString("Düğmeye basın");
  oled.setTextXY(5,4);
  oled.putString("Başlamak İçin");if(digitalRead(button)==1){for(int i=3; i>0; i--){

      String string_i=Dize(i);
      oled.clearDisplay();
      oled.setTextXY(4,8);
      oled.putString(string_i);delay(1000);}//üçten geriye doğru say

    oled.clearDisplay();
    oled.setTextXY(4,6);
    oled.putString("GO!!!");//"GO!!" yazdır OLED'de x=4 y=6'da

    int random_wait=random(1000,5000);delay(random_wait);//1 ile 5 arasında rastgele bir saniye bekleyindigitalWrite(led,HIGH);
    old_time=millis();//LED'i açınwhile(!(digitalRead(button)==1)){

      now_time=millis();
      puan=now_time-old_time;
      string_score=String(score);//düğmeye basıldığında skoru string olarak kaydet}digitalWrite(led,HIGH);tone(zil, La);delay(200);noTone(zil);//LED'i ve zili aç

    oled.clearDisplay();
    oled.setTextXY(1,4);
    oled.putString("Basın");//OLED üzerinde x=1 Y=4'te "Basın" yazdır

    oled.setTextXY(2,3);
    oled.putString("RESET DÜĞMESİ");//OLED üzerinde X=1 Y=4'te "RESET DÜĞMESİ" yazdırın

    oled.setTextXY(3,3);
    oled.putString("Tekrarlanacak!");//print "Tekrarlanacak!" OLED'de X=3 Y=3'te

    oled.setTextXY(6,3);
    oled.putString("Puan: ");
    oled.setTextXY(6,9);
    oled.putString(string_score);
    oled.setTextXY(6,13);
    oled.putString("ms");
    Serial.println(score);//puan değerini screendelay(10000)'e yazdır;
    oled.clearDisplay();//on saniye bekleyip ekranı temizleyin}}

GitHub Sayfası
Ö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