İçeriğe Geç
Favoriler Sepet
0 eşyalar

#13 PicoBricks ile Buzz Wire Oyun Projesi

16 Nov 2023
#13 Buzz Wire Game Project With PicoBricks
Çocuğunuzla bir oyun oynamaya ne dersiniz? Ahududu Pi veya arduino? Bu yazıda öğrenebilirsiniz vızıltı teli oyunu nasıl yapılır, gerekli malzemeler, diyagram ve adım adım talimatlar.
Projelerin her zaman sorunları çözmek ve işleri kolaylaştırmakla ilgili olması gerekmez. Siz de eğlenmek ve kendinizi geliştirmek için projeler hazırlayabilirsiniz. Dikkat ve konsantrasyon birçok insanın geliştirmek istediği özelliklerdir. Bunlar etrafında yapabileceğimiz uygulamalar ise oldukça ilgi çekici. PicoBricks ile Buzz Wire Oyunu yapmaya ne dersiniz?

 

Bilgisayarların 0 ve 1'lerle çalıştığı tabirini mutlaka duymuşsunuzdur. 0 elektriğin yokluğunu, 1 ise varlığını temsil eder. 0 ve 1'ler birleşerek anlamlı veriler oluşturur. Elektronik sistemlerde sistemi doğrudan kontrol etmek için 0'lar ve 1'ler kullanılabilir. Kapı kapalı mı kapalı mı? Işık açık mı kapalı mı? Sulama sistemi açık mı, değil mi? Bu tür bilgileri elde etmek için durum kontrolü yapılır. 

Bu projemizde elektronik ortamda dikkat ve konsantrasyon geliştirici Buzz Wire Game'i yapacağız. Bir iletken tel kullanacak, zil, ve PicoBricks'li LED modülü. Bu projeyi hazırlarken, bir giriş tekniği olmayan bir giriş tekniğini öğreneceksiniz. düğme ancak bir düğme gibi kullanılacaktır.

Ayrıntılar ve Algoritma

Oyunun amacı, başka bir kablonun etrafına dolanmış bir kabloyu ona dokunmadan hareket ettirmektir.

Kabloların iletkenliği nedeniyle birbirlerine değdiklerinde devreyi kapatarak ses çıkmasına neden olurlar.

Oyuncunun oyunu başlatmak için düğmeye basması istenecektir. Kullanıcı butona bastıktan sonra zamanlayıcıyı sıfırlıyoruz.

Daha sonra GPIO1 pinine bağlı olan iletken teli HIGH durumuna ayarlayacağız. Oyuncunun tuttuğu kablonun bir ucu PicoBricks üzerindeki GND pinine bağlanacaktır. Oyuncu elindeki jumper kablosunu iletken tele dokundurursa GPIO1 pini topraklanacak ve LOW durumuna düşecektir. PicoBricks bunu tespit ederek sesli ve yazılı uyarı verecektir.

Daha sonra oyunun bittiği anons edilecek ve ışıklı, yazılı ve sesli geri bildirim yapılacaktır. Geçen süre ekranda gösterilecektir. OLED ekran milisaniye cinsinden. 5 saniye sonra oynatıcıdan yeniden başlatmak için düğmeye basması istenecektir.

Bileşenler

1X PicoBrick
1X 15-20 cm 0,8 mm kalınlığında iletken tel
2X Erkek-Erkek Jumper Kabloları

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.

Projenin İnşaat Aşamaları

PicoBricks temel kitiyle birlikte,

1: 2 adet 20 cm erkek-erkek jumper kablosu. GND'ye bağlanacak kablonun bir ucu 4-5 cm sıyrılıp halka haline getirilecek.

2: 15-20 cm kalınlığında 0,8 mm iletken tel. Malzemelerinizi hazırlayın.

İletken teli bükün protokol dilediğiniz gibi deliklerden geçirin, bir ucunu geçmeden önce halka haline getirdiğiniz kablonun diğer ucunu PicoBoard üzerindeki GND pinine bağlanan erkek ucunu geçirmelisiniz.

3: İletken Tel

4: Bir ucu bilgisayara bağlı aktarma kablosu GND ilmekli uçlu pin.

5: Her iki ucu erkek olan jumper kablosunun bir ucunu, protokol üzerine yerleştirdiğiniz iletken telin ucunun hemen yanındaki deliğe sokun.

6: Jumper telinin ucunu ve iletken telin ucunu protokol kartının altında birlikte bükün.

7: Protokol üzerine yerleştirilen iletken telin diğer ucunu dışarı çıkmayacak şekilde bükün.

 

ALT TAGI BURAYA
ALT TAG
ALT TAG

8: Adım 6'da iletken telin ucuna sardığınız jumper kablosunun diğer erkek ucunu 1 no'lu pine bağlayın. Picoboard'da GPIO1

Kurulumu tamamladıysanız kodu yükledikten sonra oyuna başlayabilirsiniz. İyi eğlenceler. 

PicoBricks'in MicroBlock Kodları

Mikrobloklar Çalıştır sekmesine görseli sürükleyerek veya butonuna tıklayarak projenin Mikroblok kodlarına ulaşabilirsiniz.

 

Mikroblok Çalıştırma Sekmesi

PicoBricks'in MicroPython Kodları

 


Pikodaki donanıma erişmek için makine içe aktarma Pininden, I2C, Timer #'dan
picobricks'ten importSSD1306_I2C #OLED Ekran Kitaplığı
utime'dan uyku # zaman kütüphanesini içe aktar

#OLED Ekran Ayarları
GENİŞLİK=128YÜKSEK=64

sda=machine.Pin(4)#initialize dijital pin 4 ve 5'i OLED İletişimi için bir ÇIKIŞ olarak kullanın
scl=machine.Pin(5)
i2c=machine.I2C(0,sda=sda, scl=scl, freq=1000000)
oled =SSD1306_I2C(GENİŞLİK, YÜKSEKLİK, i2c)

wire=Pin(1,Pin.OUT)#dijital pin 1'i ÇIKIŞ olarak başlat
led =Pin(7,Pin.OUT)#dijital pin 7 ve 5'i LED için bir ÇIKIŞ olarak başlat
buzzer=Pin(20, Pin.OUT)#dijital pin 20'yi Buzzer için ÇIKIŞ olarak başlat
düğme=Pin(10,Pin.IN,Pin.PULL_DOWN)#dijital pin 10'u düğme için bir INPUT olarak başlat
bitiş zamanı=0while Doğru:
    led.düşük()
    oled.fill(0)
    oled.show()
    oled.text("",0,0)
    oled.text("Düğmeye basın",0,17)
    oled.text("Başlamak İçin!",25,35)
    oled.show()
    #Düğme '0' olduğunda, OLED 'OYUN BAŞLADI' diyor, düğme.value()==0:print("düğmeye basın")
    oled.fill(0)
    oled.show()
    oled.text("OYUN",25,35)
    oled.text("BAŞLANDI",25,45)
    oled.show()
    tel.yüksek()
    timer_start=utime.ticks_ms()
     #Wire '1' olduğunda, OLED 'OYUN BİTTİ' diyor, wire.value()==1:print("Başladı")
    endtime=utime.ticks_diff(utime.ticks_ms(), timer_start)print(bitişzamanı)
    oled.fill(0)
    oled.show()
    oled.text("OYUN BİTTİ!",25,35)
    oled.text(bitiş zamanı +"ms",25,45)
    oled.show()
    led.high()#LED Açık
    buzzer.high()#Buzzer Açık
    uyku(5)#Gecikme

PicoBricks'in Arduino C Kodları

 


#katmak
#include "ACROBOTIC_SSD1306.h"

int Zaman=0;
unsigned long Old_Time=0;voidsetup(){// bir kez çalıştırmak için kurulum kodunuzu buraya koyun:pinMode(20,OUTPUT);pinMode(7,OUTPUT);pinMode(1,OUTPUT);pinMode(10,INPUT);

  Wire.begin();
  oled.init();
  oled.clearDisplay();

#iftanımlanmaktadır(__AVR_ATtiny85__)&&(F_CPU==16000000)clock_prescale_set(clock_div_1);
#endif


}voidloop(){// tekrar tekrar çalışacak şekilde ana kodunuzu buraya koyun:digitalWrite(7,LOW);

  oled.setTextXY(2,1);
  oled.putString("BUZZ TEL OYUNU");
  oled.setTextXY(4,2);
  oled.putString("Düğmeye Basın");
  oled.setTextXY(5,3);
  oled.putString("BAŞLAMAK İÇİN!");while(!(digitalRead(10)==1)){}

  oled.clearDisplay();
  oled.setTextXY(3,6);
  oled.putString("OYUN");
  oled.setTextXY(5,4);
  oled.putString("BAŞLANDI");digitalWrite(1,YÜKSEK);
  Old_Time=millis();while(!(digitalRead(1)==0)){

    Time=millis()-Old_Time;}String(String_Time)=String(Time);

  oled.clearDisplay();
  oled.setTextXY(3,4);
  oled.putString("OYUN BİTTİ");
  oled.setTextXY(5,4);
  oled.putString(String_Time);
  oled.setTextXY(5,10);
  oled.putString("ms");digitalWrite(7, YÜKSEK);digitalWrite(20,YÜKSEK);delay(500);digitalWrite(20,LOW);delay(5000);

  Zaman=0;
  Eski_Zaman=0;
  oled.clearDisplay();}


GitHub Proje 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

Aklında bir soru mu var?

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