user882050
Published © GPL3+

Calliope mini LED Memory

Du hast 20 Sekunden Zeit, dir das Bild auf der LED-Matrix zu merken. Kannst du es aus dem Kopf nachmachen?

Beginner1 hour102
Calliope mini LED Memory

Things used in this project

Hardware components

Calliope mini
Calliope mini
×1

Story

Read more

Schematics

_C0edZLHtCm.images[1]

Calliope mini

Code

LEDMemory

JavaScript
Nach Schütteln zeigt die LEDMatrix für einige Sekunden ein Bild. Mit den beiden Button soll das Bild nachgemalt werden
let l = 0
let k = 0
let ledon = false
let Platzhalter = 0
input.onGesture(Gesture.Shake, () => {
    k = 0
    l = 0
    // Zufallsbild aufbauen
    for (let i = 0; i <= 4; i++) {
        for (let j = 0; j <= 4; j++) {
            ledon = Math.randomBoolean()
            if (ledon) {
                led.plot(i, j)
            }
        }
    }
    // Zufallsbild merken
    bild = led.screenshot()
    for (let p = 0; p < 10; p++) {

        basic.pause(2000)
    }
    basic.clearScreen()
    k = 0
    l = 0
    // Aktuelle LED blinken lassen
    while (l < 5) {
        while (!(input.buttonIsPressed(Button.A) || input.buttonIsPressed(Button.B))) {
            led.plot(k, l)
            basic.pause(100)
            led.unplot(k, l)
            basic.pause(100)
        }
    }
    basic.showIcon(IconNames.Happy)

    // Bild mit Button A und Button B nachplotten
    // Bei Fehler wird Bild noch einmal gezeigt und es geht von vorne los
})
// Button A heisst: LED einschalten
input.onButtonPressed(Button.A, () => {
    if (bild.pixel(k, l)) {
        led.plot(k, l)
        basic.setLedColor(Colors.Green)
        if (k == 4) {
            k = 0
            l = l + 1
        } else {
            k += 1
        }
    } else {
        basic.setLedColor(Colors.Red)
        bild.showImage(0)
        basic.pause(5000)
        basic.clearScreen()
        k = 0
        l = 0
    }
})
//ButtonB heisst: LED ausschalten
input.onButtonPressed(Button.B, () => {
    if (!(bild.pixel(k, l))) {
        led.unplot(k, l)
        basic.setLedColor(Colors.Green)
        if (k == 4) {
            k = 0
            l = l + 1
        } else {
            k += 1
        }
    } else {
        basic.setLedColor(Colors.Red)
        bild.showImage(0)
        basic.pause(20000)
        basic.clearScreen()
        k = 0
        l = 0
    }
})
Platzhalter = 0
let bild = led.screenshot()

Credits

user882050
0 projects • 1 follower
Ich bin Dozentin an der VHS und an der Universität. Meine Interessen sind (derzeit) IoT und MINT. Soviele spannde Sachen und sowenig Zeit..

Comments