Wahrheit-oder-Pflicht-Blog
Suchen Sie Elektronische Projekte für Anfänger? Willkommen in der bezaubernden Welt von PicoBricks! Heute laden wir Sie ein, das Erlebnis eines traditionellen Spiels – „Wahrheit oder Pflicht“ – durch die Integration mit Raspberry Pi und einem OLED-Display zu verbessern. Jetzt können Sie die Spannung genießen, dieses klassische Spiel mit Ihren Freunden oder Ihrer Familie zu spielen, das alle von der Magie der Technologie durchdrungen ist. Durch die Integration der Kernlogik des Spiels in PicoBricks haben Sie die Freiheit, unterhaltsame Fragen und waghalsige Aufgaben hinzuzufügen. Die Personalisierung des Spiels liegt dabei ganz bei Ihnen Wahrheit oder Pflicht-Blog. Wir wünschen Ihnen viel Spaß beim Programmieren und tolle Gaming-Abenteuer!
Details und Algorithmus
Der Algorithmus dafür Elektronisches Projekt für Anfänger beginnt mit der Initialisierung des Systems und der Anzeige der Meldung „Spin the Bottle“ auf dem Bildschirm, die den Spieler über ein Potentiometer zum Engagement auffordert Taste Schnittstelle. Beim Drücken der Taste erkennt der Code die Wahl des Spielers zwischen „Wahrheit“ oder „Pflicht“ basierend auf dem Potentiometer Eingang. Die Entscheidung für „Wahrheit“ führt dazu, dass das Programm eine zufällig ausgewählte Frage anzeigt, auf die der Spieler eine richtige Antwort geben muss. Alternativ führt die Auswahl von „Wagen“ dazu, dass das Programm eine zufällig zugewiesene Mission anzeigt, die den Spieler herausfordert, die angegebene Aufgabe zu erfüllen. Um ein reibungsloses Erlebnis zu gewährleisten, enthält der Code geeignete Verzögerungen, um unbeabsichtigte oder schnelle Eingaben zu verhindern und so ein unterhaltsames und interaktives „Wahrheit oder Pflicht“-Spiel zu schaffen, das auf die PicoBricks zugeschnitten ist.
Komponenten
1 x PicoBricks
Schaltplan
MicroBlocks-Codes der PicoBricks
PicoBricks IDE-Codes für PicoBricks
Da der Code lang ist, haben wir einen Download-Link für Sie erstellt. Ich hoffe, Sie versuchen es mit PicoBricks!
HERUNTERLADENMicroPython-Codes der PicoBricks
von Zeit zu Zeit Schlaf importieren
vom Maschinenimport-Pin
vom Maschinenimport I2C
Von Picobricks importieren Sie SSD1306_I2C
Importzeit
Importmaschine
Mathematik importieren
Zufällig importieren
i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=200000)
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
pin_button = machine.Pin(10, machine.Pin.IN)
pot = machine.ADC(26)
Satz = ""
Satz_Array = " "
dare_question = "Rullen Sie das erste Wort, das Ihnen in den Sinn kommt. Essen Sie einen Snack, ohne Ihre Hände zu benutzen. Tanzen Sie zwei Minuten lang ohne Musik".split(".")
true_question = „Haben Sie ein verborgenes Talent? Wann haben Sie sich das letzte Mal entschuldigt? Wofür? Was ist Ihre größte Angst?“.split(“?)
while(pin_button.value() == 0):
oled.fill(0)
oled.text("{}".format("Spin"), 35, 30)
oled.text("{}".format(" Bottle"), 20, 40)
oled.show()
time.sleep((1))
oled.fill(0)
while(pin_button.value() == 0):
true_or_dare = pot.read_u16()
wenn Wahrheit_oder_Pflicht > 517:
oled.fill(0)
oled.text("{}".format("Wahrheit oder Pflicht"), 0, 10)
oled.text("{}".format("truth"), 10, 40)
oled.show()
anders:
oled.fill(0)
oled.text("{}".format("Wahrheit oder Pflicht"), 0, 10)
oled.text("{}".format("dare"), 10, 40)
oled.show()
time.sleep((0.3))
oled.fill(0)
oled.fill(0)
oled.show()
wenn Wahrheit_oder_Pflicht > 517:
Satz = Wahrheitsfrage[random.randint(1, (len(Wahrheitsfrage) - 1))]
if (len(sentence) >= 32):
Zeile1 = Satz[:16]
Zeile2 = Satz[16:32]
Zeile3 = Satz[32:]
oled.fill(0)
oled.text(Zeile1, 0, 0)
oled.text(Zeile2, 0, 16)
oled.text(Zeile3, 0, 32)
oled.show()
time.sleep(5)
if (len(sentence) >= 16):
Zeile1 = Satz[:16]
Zeile2 = Satz[16:32]
oled.fill(0)
oled.text(Zeile1, 0, 0)
oled.text(Zeile2, 0, 16)
oled.show()
time.sleep(5)
anders:
oled.text("{}".format(sentence), 0, 25)
oled.show()
time.sleep((1))
anders:
Satz = dare_question[random.randint(1, (len(dare_question)) - (1))]
if (len(sentence) >= 32):
Zeile1 = Satz[:16]
Zeile2 = Satz[16:32]
Zeile3 = Satz[32:]
oled.fill(0)
oled.text(Zeile1, 0, 0)
oled.text(Zeile2, 0, 16)
oled.text(Zeile3, 0, 32)
oled.show()
time.sleep(5)
if (len(sentence) >= 16):
Zeile1 = Satz[:16]
Zeile2 = Satz[16:32]
oled.fill(0)
oled.text(Zeile1, 0, 0)
oled.text(Zeile2, 0, 16)
oled.show()
time.sleep(5)
anders:
oled.text("{}".format(sentence), 0, 25)
oled.show()
time.sleep((1))
Arduino C-Codes für PicoBricks
#enthalten
#include „ACROBOTIC_SSD1306.h“
#enthalten
#define BUTTON_PIN 10
#define POT_PIN 26
Servo myservo;
int true_or_dare = 0;
int true_length = 0;
int true_random = 0;
int dare_length = 0;
int dare_random = 0;
String dare_questions[] = {"Rullen Sie das erste Wort, das Ihnen in den Sinn kommt.", "Iss einen Snack, ohne deine Hände zu benutzen.", "Tanze zwei Minuten lang ohne Musik."};
String Truth_questions[] = {"Haben Sie ein verborgenes Talent?", "Wann haben Sie sich das letzte Mal entschuldigt? Wofür?", "Was ist Ihre größte Angst?"};
void setup() {
// DHT-Sensor und Oled-Bildschirm definieren
Serial.begin(115200);
Wire.begin();
oled.init();
oled.clearDisplay();
pinMode(BUTTON_PIN, INPUT);
pinMode(POT_PIN, INPUT);
myservo.attach(22);
myservo.write(0);
}
void loop() {
oled.clearDisplay();
while (digitalRead(BUTTON_PIN) == 0) {
true_or_dare = analogRead(POT_PIN);
if (truth_or_dare > 511) {
oled.setTextXY(2, 2);
oled.putString("Spin");
oled.setTextXY(3, 1);
oled.putString("die Flasche");
oled.setTextXY(5, 1);
oled.putString("Wahrheit");
myservo.write(45);
Verzögerung (1000);
oled.clearDisplay();
} anders {
oled.setTextXY(2, 2);
oled.putString("Spin");
oled.setTextXY(3, 1);
oled.putString("die Flasche");
oled.setTextXY(5, 1);
oled.putString("Dare");
myservo.write(135);
Verzögerung (1000);
oled.clearDisplay();
}
}
oled.clearDisplay();
if (truth_or_dare == 1) {
true_length = sizeof(truth_questions) / sizeof(truth_questions[0]);
true_random = random(0, true_length);
oled.setTextXY(2, 0);
oled.putString(truth_questions[truth_random]);
Verzögerung (10000);
}
anders {
dare_length = sizeof(dare_questions) / sizeof(dare_questions[0]);
dare_random = random(0, dare_length);
oled.setTextXY(2, 0);
oled.putString(dare_questions[dare_random]);
Verzögerung (10000);
}
Verzögerung (1000);
}