Doğruluk mu Cesaret mi Blogu
Mı arıyorsun yeni başlayanlar için elektronik projeler? PicoBricks'in Büyüleyici Dünyasına Hoş Geldiniz! Bugün sizi geleneksel bir oyun olan “Doğruluk mu Cesaret mi” deneyimini Raspberry Pi ve OLED ekranla entegre ederek yükseltmeye davet ediyoruz. Artık teknolojinin büyüsüyle dolu bu klasik oyunu arkadaşlarınızla veya ailenizle oynamanın heyecanını kucaklayabilirsiniz. Oyunun temel mantığını PicoBricks'e entegre ederek eğlenceli sorular ve cesur görevler ekleme özgürlüğüne sahip olursunuz. Oyunu kişiselleştirmek bu konuda tamamen size kalmış doğruluk mu cesaret mi blogu. Size mutlu kodlamalar ve keyifli oyun maceraları dileriz!
Ayrıntılar ve Algoritma
Bunun için algoritma yeni başlayanlar için elektronik proje Sistemin başlatılması ve ekranda "Şişeyi Çevir" mesajının sunulmasıyla başlar, bir potansiyometre aracılığıyla oyuncunun katılımını sağlar ve düğme arayüz. Düğmeye basıldığında kod, oyuncunun "doğruluk" veya "cesaret" arasındaki seçimini belirler. potansiyometre giriş. "Gerçeği" seçmek, programın rastgele seçilen bir soruyu görüntülemesine ve oyuncunun doğru bir cevap vermesini gerektirmesine neden olur. Alternatif olarak, "cesaret" seçeneğinin seçilmesi, programın rastgele atanmış bir görevi göstermesine ve oyuncuyu belirtilen görevi yerine getirmeye zorlamasına yol açar. Sorunsuz bir deneyim sağlamak için kod, istenmeyen veya hızlı girişleri önleyen uygun gecikmeler içerir ve böylece PicoBricks için özel olarak tasarlanmış eğlenceli ve etkileşimli bir "Doğruluk mu Cesaret mi" oyunu oluşturur.
Bileşenler
1 x PicoBrick'ler
Bağlantı şeması
PicoBricks'in MicroBlock Kodları
PicoBricks için PicoBricks IDE Kodları
Kod uzun olduğundan sizler için indirme linki oluşturduk. Umarım PicoBricks ile denersiniz!
İNDİRMEKPicoBricks'in MicroPython Kodları
zamandan içe uyku
makineden içe aktarma Pimi
makine ithalatından I2C
picobricks'ten SSD1306_I2C'yi içe aktar
ithalat zamanı
ithalat makinesi
matematik ithalatı
rastgele içe aktar
i2c = I2C(0, scl=Pin(5), sda=Pin(4), frek=200000)
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
pin_button = makine.Pin(10, makine.Pin.IN)
kap = makine.ADC(26)
cümle = ""
cümle_dizi = " "
dare_question = "Aklınıza gelen ilk kelimeyi söyleyin. Ellerinizi kullanmadan bir şeyler yiyin. İki dakika müziksiz dans edin".split(".")
Truth_question = "Gizli bir yeteneğiniz var mı? En son ne zaman özür dilediniz? Ne için? En büyük korkunuz nedir?".split("?")
while(pin_button.value() == 0):
oled.fill(0)
oled.text("{}".format("Döndür "), 35, 30)
oled.text("{}".format(" Şişe"), 20, 40)
oled.show()
zaman.uyku((1))
oled.fill(0)
while(pin_button.value() == 0):
doğruluk_or_dare = pot.read_u16()
eğer doğruluk_veya_dare > 517 ise:
oled.fill(0)
oled.text("{}".format("Doğruluk mu Cesaret mi"), 0, 10)
oled.text("{}".format("gerçek"), 10, 40)
oled.show()
başka:
oled.fill(0)
oled.text("{}".format("Doğruluk mu Cesaret mi"), 0, 10)
oled.text("{}".format("cesaret"), 10, 40)
oled.show()
zaman.uyku((0.3))
oled.fill(0)
oled.fill(0)
oled.show()
eğer doğruluk_veya_dare > 517 ise:
cümle = doğruluk_sorusu[random.randint(1, (len(doğruluk_sorusu) - 1))]
if (len(cümle) >= 32):
satır1 = cümle[:16]
satır2 = cümle[16:32]
satır3 = cümle[32:]
oled.fill(0)
oled.text(satır1, 0, 0)
oled.text(satır2, 0, 16)
oled.text(satır3, 0, 32)
oled.show()
zaman.uyku(5)
if (len(cümle) >= 16):
satır1 = cümle[:16]
satır2 = cümle[16:32]
oled.fill(0)
oled.text(satır1, 0, 0)
oled.text(satır2, 0, 16)
oled.show()
zaman.uyku(5)
başka:
oled.text("{}".format(sentence), 0, 25)
oled.show()
zaman.uyku((1))
başka:
cümle = cesaret_sorusu[random.randint(1, (len(dare_question)) - (1))]
if (len(cümle) >= 32):
satır1 = cümle[:16]
satır2 = cümle[16:32]
satır3 = cümle[32:]
oled.fill(0)
oled.text(satır1, 0, 0)
oled.text(satır2, 0, 16)
oled.text(satır3, 0, 32)
oled.show()
zaman.uyku(5)
if (len(cümle) >= 16):
satır1 = cümle[:16]
satır2 = cümle[16:32]
oled.fill(0)
oled.text(satır1, 0, 0)
oled.text(satır2, 0, 16)
oled.show()
zaman.uyku(5)
başka:
oled.text("{}".format(sentence), 0, 25)
oled.show()
zaman.uyku((1))
PicoBricks için Arduino C Kodları
#katmak
#include "ACROBOTIC_SSD1306.h"
#katmak
#define BUTTON_PIN 10
#define POT_PIN 26
Servo myservo;
int doğruluk_veya_dare = 0;
int doğruluk_uzunluğu = 0;
int doğruluk_random = 0;
int cesaret_uzunluğu = 0;
int dare_random = 0;
String dare_questions[] = {"Aklınıza gelen ilk kelimeyi söyleyin.", "Ellerinizi kullanmadan bir şeyler yiyin.", "İki dakika müziksiz dans edin."};
String Truth_questions[] = {"Gizli bir yeteneğiniz var mı?", "En son ne zaman özür dilediniz? Ne için?", "En büyük korkunuz nedir?"};
geçersiz kurulum() {
//dht sensörünü ve Oled ekranını tanımlıyoruz
Serial.begin(115200);
Wire.begin();
oled.init();
oled.clearDisplay();
pinMode(BUTTON_PIN, INPUT);
pinMode(POT_PIN, INPUT);
myservo.attach(22);
myservo.write(0);
}
geçersiz döngü () {
oled.clearDisplay();
while (digitalRead(BUTTON_PIN) == 0) {
doğruluk_veya_dare = analogRead(POT_PIN);
if (doğruluk_veya_cesaret > 511) {
oled.setTextXY(2, 2);
oled.putString("Döndürme");
oled.setTextXY(3, 1);
oled.putString("şişe");
oled.setTextXY(5, 1);
oled.putString("Doğruluk");
myservo.write(45);
gecikme(1000);
oled.clearDisplay();
} başka {
oled.setTextXY(2, 2);
oled.putString("Döndürme");
oled.setTextXY(3, 1);
oled.putString("şişe");
oled.setTextXY(5, 1);
oled.putString("Cesaret");
myservo.write(135);
gecikme(1000);
oled.clearDisplay();
}
}
oled.clearDisplay();
if (doğruluk_veya_cesaret == 1) {
doğruluk_uzunluğu = sizeof(doğruluk_soruları) / sizeof(doğruluk_soruları[0]);
doğruluk_random = rastgele(0, doğruluk_uzunluk);
oled.setTextXY(2, 0);
oled.putString(truth_questions[truth_random]);
gecikme(10000);
}
başka {
dare_length = sizeof(dare_questions) / sizeof(dare_questions[0]);
dare_random = rastgele(0, cesaret_uzunluğu);
oled.setTextXY(2, 0);
oled.putString(dare_questions[dare_random]);
gecikme(10000);
}
gecikme(1000);
}