Zum Inhalt springen

#10 Kennen Sie Ihr Farbprojekt mit PicoBricks

19 Nov 2023
#10 Know Your Color Project With PicoBricks

LEDs werden häufig in elektronischen Systemen eingesetzt. Jede Taste kann neben jeder Option kleine LEDs haben. Indem man eine einzelne LED in verschiedenen Farben zum Leuchten bringt, ist es möglich, die Arbeit von mehr als einer LED mit einer einzigen LED zu erledigen. LEDs dieser Art werden als RGB-LEDs bezeichnet. Der Name leitet sich von den Anfangsbuchstaben der Farbnamen Rot, Grün und Blau ab. Ein weiterer Vorteil dieser LED besteht darin, dass sie in Mischungen aus 3 Grundfarben leuchten kann. Lila, Türkis, Orange…

In diesem Projekt lernen Sie die Zufälligkeit kennen, die in jeder Programmiersprache verwendet wird. Wir bereiten ein unterhaltsames Spiel mit dem vor RGB-LED, OLED-Bildschirm und Taste Modul von Picobricks.

In diesem Projekt erstellen wir einen Timer-Alarm, der sich mithilfe des Lichtsensors in Picobricks an das Tageslicht anpasst.

Details und Algorithmus

Das Spiel, das wir im Projekt erstellen werden, basiert darauf, dass der Benutzer die Farben richtig oder falsch kennt. Eine der Farben Rot, Grün, Blau und Weiß leuchtet zufällig auf der RGB-LED der Picobricks auf und der Name einer dieser vier Farben wird zufällig darauf geschrieben OLED-Bildschirm gleichzeitig. Der Benutzer muss innerhalb von 1,5 Sekunden die Taste von Picobricks drücken, um das Antwortrecht zu nutzen. Das Spiel wird 10 Mal wiederholt. Für jede Wiederholung werden 10 Punkte vergeben, wenn der Benutzer die Taste drückt, wenn die Farben übereinstimmen, oder wenn der Benutzer die Taste nicht drückt, wenn sie nicht übereinstimmen. Drückt der Nutzer den Knopf, obwohl die Farben nicht übereinstimmen, verliert er 10 Punkte. Nach zehn Wiederholungen wird die Punktzahl des Benutzers auf dem OLED-Bildschirm angezeigt. Sofern der Nutzer dies wünscht, kann er von seinem Recht auf Gegendarstellung keinen Gebrauch machen, indem er den Button nicht betätigt.

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

 


Von der Maschine importieren Sie Pin,I2C,ADC,PWM #um auf die Hardware auf dem Pico zuzugreifen
von picobricks importSSD1306_I2C #OLED Screen Library
Zeit importieren
aus der picobricks importWS2812 #ws8212-Bibliothek

#OLED-Bildschirmeinstellungen
BREITE=128HÖHE=64

sda=machine.Pin(4)
scl=machine.Pin(5)
#initialisieren Sie die digitalen Pins 4 und 5 als AUSGANG für die OLED-Kommunikation

i2c=machine.I2C(0,sda=sda, scl=scl, freq=1000000)
neo =WS2812(pin_num=6, num_leds=1, helligkeit=0,3)#digitalen Pin 6 als AUSGANG für NeoPixel initialisieren

oled =SSD1306_I2C(128,64, i2c)
ldr =ADC(Pin(27))#digitalen Pin 6 als AUSGANG für NeoPixel initialisieren
button =Pin(10,Pin.IN,Pin.PULL_DOWN)#digitalen Pin 10 als EINGANG für die Schaltfläche initialisieren
Summer =PWM(Pin(20, Pin.OUT))#digitalen Pin 20 als AUSGANG für den Summer initialisieren
Buzzer.freq(1000)BLACK=(0,0,0)WHITE=(255,255,255)
#RGB Schwarz-Weiß-Farbcode
oled.fill(0)
oled.show()

neo.pixels_fill(SCHWARZ)
neo.pixels_show()if ldr.read_u16()<4000:
    wakeup = True
anders:
    wakeup = Falsch

while True:while wakeup==False:
        oled.fill(0)
        oled.show()
        oled.text("Gute Nacht",25,32)
        oled.show()
        #Auf OLED anzeigen und „Gute Nacht“ drucken
        utime.sleep(1)if ldr.read_u16()40000:
        wakeup= Falsch

    utime.sleep(1)
    #warte eine Sekunde

Arduino C-Codes der PicoBricks

 


vom Maschinenimport Pin,I2Cfrom picobricks importSSD1306_I2Cimport utime
Urandom importieren
_thread importieren
aus Picobricks importWS2812WIDTH=128HEIGHT=64
sda=machine.Pin(4)
scl=machine.Pin(5)
i2c=machine.I2C(0,sda=sda, scl=scl, freq=1000000)
ws =WS2812(pin_num=6, num_leds=1, Helligkeit=0,3)

oled =SSD1306_I2C(WIDTH,HEIGHT, i2c)

Schaltfläche =Pin(10,Pin.IN,Pin.PULL_DOWN)ROT=(255,0,0)GRÜN=(0,255,0)BLAU=(0,0,255)WEISS=(255,255,255)SCHWARZ=(0,0,0 )

oled.fill(0)
oled.show()

ws.pixels_fill(SCHWARZ)
ws.pixels_show()

global button_pressed
Punktzahl=0
button_pressed = Falsch

def random_rgb():
    globale LED-Farbe
    ledcolor=int(urandom.uniform(1,4))if ledcolor ==1:
        ws.pixels_fill(ROT)
        ws.pixels_show()
    elif ledcolor ==2:
        ws.pixels_fill(GRÜN)
        ws.pixels_show()
    elif ledcolor ==3:
        ws.pixels_fill(BLAU)
        ws.pixels_show()
    elif ledcolor ==4:
        ws.pixels_fill(WHİTE)
        ws.pixels_show()

def random_text():
    globaler Oledtext
    oledtext=int(urandom.uniform(1,4))if oledtext ==1:
        oled.fill(0)
        oled.show()
        oled.text("ROT",45,32)
        oled.show()
    elif oledtext ==2:
        oled.fill(0)
        oled.show()
        oled.text("GRÜN",45,32)
        oled.show()
    elif oledtext ==3:
        oled.fill(0)
        oled.show()
        oled.text("BLAU",45,32)
        oled.show()
    elif oledtext ==4:
        oled.fill(0)
        oled.show()
        oled.text("WHITE",45,32)
        oled.show()

def button_reader_thread():while True:
        global button_pressed
        if button_pressed == False:if button.value()==1:
                button_pressed = True
                globale Punktzahl
                globaler Oledtext
                globale LED-Farbe
                wenn ledcolor == oledtext:
                    Punktzahl +=10sonst:
                    Punktzahl -=10
        utime.sleep(0.01)

_thread.start_new_thread(button_reader_thread,())

oled.text("Das Spiel beginnt",0,10)
oled.show()
utime.sleep(2)for i inrange(10):for j inrange(10):random_text()random_rgb()
    button_pressed=False
    utime.sleep(1.5)
    oled.fill(0)
    oled.show()
    ws.pixels_fill(SCHWARZ)
    ws.pixels_show()
utime.sleep(1.5)
oled.fill(0)
oled.show()
oled.text("Ihre Gesamtpunktzahl:",0,20)
oled.text(str(score),30,40)
oled.show()

GitHub-Projektseite

 

Vorheriger Beitrag
Nächster Beitrag

Danke fürs Abonnieren!

Diese E-Mail wurde registriert!

Shoppen Sie den Look
Wählen Sie Optionen

Bearbeitungsoption

Benachrichtigung wieder auf Lager

Vergleichen

Produkt ArtikelnummerBewertungBeschreibung Sammlung Verfügbarkeit Produktart Andere Details
this is just a warning
Anmeldung
Einkaufswagen
0 Artikel
Same Day Shipping No Extra Costs
Easy Returns Guarantee Return with Ease
Secure Checkout Secure Payment