Jetzt bereiten wir ein Spiel vor, das Aufmerksamkeit und Reflexe entwickelt. Schnelle Bewegung und die Fähigkeit, über einen längeren Zeitraum aufmerksam zu sein, sind wichtige Entwicklungsmerkmale von Kindern. Kinder im Vorschul- und Grundschulalter machen Aktivitäten, die ihre Aufmerksamkeitsspanne und Reflexe steigern, da sie von ihren Eltern und Lehrern gemocht werden. Das elektronische System, das wir vorbereiten werden, wird ein Spiel sein, das die Aufmerksamkeit steigert und Reflexe entwickelt. Nach Abschluss des Projekts können Sie mit Ihren Freunden konkurrieren.
In diesem Projekt lernen Sie die Zufälligkeit kennen, die in jeder Programmiersprache verwendet wird. Mit Picobricks werden wir ein elektronisches System mit OLED-Display entwickeln, Taste-LED- und Summermodul.
<
Details und Algorithmus
Sobald der Picobricks eingeschaltet wird, beginnt ein Timer zu laufen. Mit diesem Timer können wir eine Tausendstelsekunde messen. Eine Tausendstelsekunde wird Millisekunde genannt. Timer werden in vielen elektronischen Systemen des täglichen Lebens eingesetzt. Zeitgesteuerte Beleuchtung, Öfen, Bügeleisen, Küchenmaschinen …
Wenn unser Projekt mit der Arbeit beginnt, zeigen wir eine Willkommensnachricht auf dem an OLED-Bildschirm. Dann drucken wir auf dem Bildschirm aus, was der Benutzer tun muss, um das Spiel zu starten. Um das Spiel zu starten, bitten wir den Spieler, sich vorzubereiten, indem er nach dem Drücken der Taste auf dem Bildschirm von 3 rückwärts zählt. Nach Ablauf des Countdowns leuchtet die rote LED in einem zufälligen Zeitraum zwischen 2 und 10 Sekunden auf. Wir werden den Timer sofort zurücksetzen, nachdem die rote LED aufleuchtet. Wir werden den Timer messen, sobald die Taste erneut gedrückt wird. Dieser Wert, den wir erhalten, wird in Millisekunden angegeben. Wir werden diesen Wert als Reaktionszeit des Spielers auf dem Bildschirm anzeigen.
Komponenten
1X PicoBricks
Schaltplan
Sie können die Module von Picobricks ohne Verkabelung programmieren und betreiben. Wenn Sie die Module getrennt von der Platine verwenden möchten, sollten Sie die Modulverbindungen mit Grove-Kabeln herstellen.
MicroBlocks-Codes der PicoBricks
Sie können auf die Microblocks-Codes des Projekts zugreifen, indem Sie das Bild auf die Registerkarte „Microblocks Run“ ziehen oder auf die Schaltfläche klicken
Registerkarte „Mikroblöcke ausführen“.
MicroPython-Codes der PicoBricks
Vom Maschinenimport Pin, I2C, Timer
Von Picobricks importieren Sie SSD1306_I2C
Zeit importieren
Urandom importieren
#definiere die Bibliothek
BREITE=128
HÖHE=64
#Definieren Sie die Breiten- und Höhenwerte
sda=machine.Pin(4)
scl=machine.Pin(5)
i2c=machine.I2C(0,sda=sda, scl=scl, freq=2000000)
oled= SSD1306_I2C(BREITE, HÖHE, i2c)
button = Pin(10,Pin.IN,Pin.PULL_DOWN)
LED=Pin(7,Pin.OUT)
#Definieren Sie unsere Eingangs- und Ausgangspins
während True:
led.value(0)
oled.fill(0)
oled.text("Drücken Sie die Taste",0,10)
oled.text("ZU ANFANGEN!",25,25)
oled.show()
#print „Drücken Sie die Taste“ und „ZUM STARTEN!“ auf dem OLED-Bildschirm
while button.value()==0:
passieren
oled.fill(0)
oled.text("Warten auf LED",15,30)
oled.show()
#Schreiben Sie „Warten auf LED“ auf den Bildschirm, wenn die Taste gedrückt wird
utime.sleep(urandom.uniform(1,5))
led.value(1)
timer_start=utime.ticks_ms()
#Warten Sie eine Rondom-Sekunde und schalten Sie die LED ein
while button.value()==0:
passieren
timer_reaction=utime.ticks_diff(utime.ticks_ms(), timer_start)
gedrückt=Wahr
oled.fill(0)
oled.text("Deine Zeit",25,25)
oled.text(str(timer_reaction),50,50)
oled.show()
led.value(0)
utime.sleep(1.5)
#Drucken Sie die Partitur und „Ihre Zeit“ auf dem Bildschirm aus, wenn die Taste gedrückt wird.
Arduino C-Codes der PicoBricks
#enthalten
#include „ACROBOTIC_SSD1306.h“//Definieren Sie die Bibliothek
int Summer=20;
int button=10;
int led=7;
int La=440;
int old_time=0;
int now_time=0;
int Score=0;
String string_score;//definieren Sie unsere Ganzzahl und unseren String veriablesvoidsetup(){// Geben Sie Ihren Setup-Code hier ein, um ihn einmal auszuführen:
Wire.begin();
oled.init();
oled.clearDisplay();pinMode(led,OUTPUT);pinMode(buzzer,OUTPUT);pinMode(button,INPUT);
Serial.begin(9600);//Definieren Sie die Eingabe- und Ausgabepins}voidloop(){// Fügen Sie hier Ihren Hauptcode ein, um ihn wiederholt auszuführen:
oled.setTextXY(3,0);
oled.putString("Drücken Sie die Taste");
oled.setTextXY(5,4);
oled.putString("TO START");if(digitalRead(button)==1){for(int i=3; i>0; i--){
String string_i=String(i);
oled.clearDisplay();
oled.setTextXY(4,8);
oled.putString(string_i);delay(1000);}//von drei rückwärts zählen
oled.clearDisplay();
oled.setTextXY(4,6);
oled.putString("GO!!!");//print "GO!!" auf der OLED bei x=4 y=6
int random_wait=random(1000,5000);delay(random_wait);//warte auf eine zufällige Sekunde zwischen 1 und 5digitalWrite(led,HIGH);
old_time=millis();//LED einschaltenwhile(!(digitalRead(button)==1)){
now_time=millis();
Score=now_time-old_time;
string_score=String(score);//Score als String bei Tastendruck speichern}digitalWrite(led,HIGH);tone(buzzer, La);delay(200);noTone(buzzer);//LED und Summer einschalten
oled.clearDisplay();
oled.setTextXY(1,4);
oled.putString("Press the");//print "Press the" auf dem OLED bei x=1 Y=4
oled.setTextXY(2,3);
oled.putString("RESET BUTTON");//drucken Sie "RESET BUTTON" auf der OLED bei X=1 Y=4
oled.setTextXY(3,3);
oled.putString("Zu wiederholen!");//print "Zu wiederholen!" auf der OLED bei X=3 Y=3
oled.setTextXY(6,3);
oled.putString("Score: ");
oled.setTextXY(6,9);
oled.putString(string_score);
oled.setTextXY(6,13);
oled.putString(" ms");
Serial.println(score);//Score-Wert auf screendelay(10000) drucken;
oled.clearDisplay();//warte zehn Sekunden und lösche den Bildschirm}}
GitHub-Seite