Inhaltsverzeichnis
Lösungen zu den Challenges von Beispiel 1
Challenge 1
Versuche die LEDs in einer anderen Farbe z.B. Grün oder Violett anzuzeigen.
input.onButtonPressed(Button.A, function () {
if (position <= 9) {
position += 1
}
})
input.onButtonPressed(Button.B, function () {
if (position >= 0) {
position += -1
}
})
let position = 0
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
basic.forever(function () {
strip.showColor(neopixel.colors(NeoPixelColors.Black))
strip.setPixelColor(position, neopixel.colors(NeoPixelColors.Violet))
strip.show()
})input.onButtonPressed(Button.A, function () { if (position <= 9) { position += 1 } }) input.onButtonPressed(Button.B, function () { if (position >= 0) { position += -1 } }) let position = 0 let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB) position = 0 basic.forever(function () { strip.showColor(neopixel.colors(NeoPixelColors.Black)) strip.setPixelColor(position, neopixel.colors(NeoPixelColors.Violet)) strip.show() })
Challenge 2
Versuche die Anzahl der LEDs immer um 2 pro Tastendruck zu erhöhen bzw. zu verringern.
input.onButtonPressed(Button.A, function () {
if (position <= 9) {
position += 2
}
})
input.onButtonPressed(Button.B, function () {
if (position >= 0) {
position += -2
}
})
let position = 0
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
basic.forever(function () {
strip.showColor(neopixel.colors(NeoPixelColors.Black))
strip.setPixelColor(position, neopixel.colors(NeoPixelColors.Red))
strip.show()
})input.onButtonPressed(Button.A, function () { if (position <= 9) { position += 2 } }) input.onButtonPressed(Button.B, function () { if (position >= 0) { position += -2 } }) let position = 0 let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB) position = 0 basic.forever(function () { strip.showColor(neopixel.colors(NeoPixelColors.Black)) strip.setPixelColor(position, neopixel.colors(NeoPixelColors.Red)) strip.show() })
Challenge 3
Versuche die LEDs blinken zu lassen, d.h. die LEDs 500 Millisekunden leuchten zu lassen, dann abzudrehen und nach 500 Millisekunden wieder leuchten zu lassen.
input.onButtonPressed(Button.A, function () {
if (position <= 9) {
position += 1
}
})
input.onButtonPressed(Button.B, function () {
if (position >= 0) {
position += -1
}
})
let position = 0
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
basic.forever(function () {
strip.showColor(neopixel.colors(NeoPixelColors.Black))
strip.setPixelColor(position, neopixel.colors(NeoPixelColors.Red))
strip.show()
basic.pause(500)
strip.showColor(neopixel.colors(NeoPixelColors.Black))
strip.show()
basic.pause(500)
})input.onButtonPressed(Button.A, function () { if (position <= 9) { position += 1 } }) input.onButtonPressed(Button.B, function () { if (position >= 0) { position += -1 } }) let position = 0 let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB) position = 0 basic.forever(function () { strip.showColor(neopixel.colors(NeoPixelColors.Black)) strip.setPixelColor(position, neopixel.colors(NeoPixelColors.Red)) strip.show() basic.pause(500) strip.showColor(neopixel.colors(NeoPixelColors.Black)) strip.show() basic.pause(500) })
Challenge 4
Versuche alle LEDs beim Drücken von A und B auszuschalten.
input.onButtonPressed(Button.A, function () {
color = neopixel.colors(NeoPixelColors.Red)
if (position <= 9) {
position += 1
}
})
input.onButtonPressed(Button.AB, function () {
color = neopixel.colors(NeoPixelColors.Black)
})
input.onButtonPressed(Button.B, function () {
color = neopixel.colors(NeoPixelColors.Red)
if (position >= 0) {
position += -1
}
})
let color = 0
let position = 0
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
color = neopixel.colors(NeoPixelColors.Red)
basic.forever(function () {
strip.clear()
strip.setPixelColor(position, color)
strip.show()
})input.onButtonPressed(Button.A, function () { color = neopixel.colors(NeoPixelColors.Red) if (position <= 9) { position += 1 } }) input.onButtonPressed(Button.AB, function () { color = neopixel.colors(NeoPixelColors.Black) }) input.onButtonPressed(Button.B, function () { color = neopixel.colors(NeoPixelColors.Red) if (position >= 0) { position += -1 } }) let color = 0 let position = 0 let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB) position = 0 color = neopixel.colors(NeoPixelColors.Red) basic.forever(function () { strip.clear() strip.setPixelColor(position, color) strip.show() })
Challenge 5
Versuche die LEDs in einer zufälligen Farbe anzuzeigen.
Lösungsvorschlag A zu Challenge 5
Hinweis zu folgender Lösung: Hier wird eine Zufallsfarbe erzeugt, indem pro Farbanteil eine Zufallszahl im Bereich 0 bis 255 erzeugt wird.
input.onButtonPressed(Button.A, function () {
if (position <= 9) {
position += 1
}
color = getRandomColor()
})
function getRandomColor () {
greenComponent = randint(0, 255)
blueComponent = randint(0, 255)
redComponent = randint(0, 255)
color = neopixel.rgb(redComponent, greenComponent, blueComponent)
return color
}
input.onButtonPressed(Button.B, function () {
if (position >= 0) {
position += -1
}
color = getRandomColor()
})
let redComponent = 0
let blueComponent = 0
let greenComponent = 0
let position = 0
let color = 0
color = getRandomColor()
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
basic.forever(function () {
strip.clear()
strip.setPixelColor(position, color)
strip.show()
})input.onButtonPressed(Button.A, function () { if (position <= 9) { position += 1 } color = getRandomColor() }) function getRandomColor () { greenComponent = randint(0, 255) blueComponent = randint(0, 255) redComponent = randint(0, 255) color = neopixel.rgb(redComponent, greenComponent, blueComponent) return color } input.onButtonPressed(Button.B, function () { if (position >= 0) { position += -1 } color = getRandomColor() }) let redComponent = 0 let blueComponent = 0 let greenComponent = 0 let position = 0 let color = 0 color = getRandomColor() let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB) position = 0 basic.forever(function () { strip.clear() strip.setPixelColor(position, color) strip.show() })
Lösungsvorschlag B zu Challenge 5
input.onButtonPressed(Button.A, function () {
if (position <= 9) {
position += 1
}
color = getRandomColor()
})
function getRandomColor () {
colorSelection = randint(0, 7)
if (colorSelection == 0) {
color = neopixel.colors(NeoPixelColors.Red)
} else if (colorSelection == 1) {
color = neopixel.colors(NeoPixelColors.Orange)
} else if (colorSelection == 2) {
color = neopixel.colors(NeoPixelColors.Yellow)
} else if (colorSelection == 3) {
color = neopixel.colors(NeoPixelColors.Green)
} else if (colorSelection == 4) {
color = neopixel.colors(NeoPixelColors.Blue)
} else if (colorSelection == 5) {
color = neopixel.colors(NeoPixelColors.Indigo)
} else if (colorSelection == 6) {
color = neopixel.colors(NeoPixelColors.Violet)
} else if (colorSelection == 7) {
color = neopixel.colors(NeoPixelColors.Purple)
} else {
color = neopixel.colors(NeoPixelColors.Black)
}
return color
}
input.onButtonPressed(Button.B, function () {
if (position >= 0) {
position += -1
}
color = getRandomColor()
})
let colorSelection = 0
let position = 0
let color = 0
color = getRandomColor()
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
basic.forever(function () {
strip.clear()
strip.setPixelColor(position, color)
strip.show()
})input.onButtonPressed(Button.A, function () { if (position <= 9) { position += 1 } color = getRandomColor() }) function getRandomColor () { colorSelection = randint(0, 7) if (colorSelection == 0) { color = neopixel.colors(NeoPixelColors.Red) } else if (colorSelection == 1) { color = neopixel.colors(NeoPixelColors.Orange) } else if (colorSelection == 2) { color = neopixel.colors(NeoPixelColors.Yellow) } else if (colorSelection == 3) { color = neopixel.colors(NeoPixelColors.Green) } else if (colorSelection == 4) { color = neopixel.colors(NeoPixelColors.Blue) } else if (colorSelection == 5) { color = neopixel.colors(NeoPixelColors.Indigo) } else if (colorSelection == 6) { color = neopixel.colors(NeoPixelColors.Violet) } else if (colorSelection == 7) { color = neopixel.colors(NeoPixelColors.Purple) } else { color = neopixel.colors(NeoPixelColors.Black) } return color } input.onButtonPressed(Button.B, function () { if (position >= 0) { position += -1 } color = getRandomColor() }) let colorSelection = 0 let position = 0 let color = 0 color = getRandomColor() let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB) position = 0 basic.forever(function () { strip.clear() strip.setPixelColor(position, color) strip.show() })
