Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:microbit_programmieren_loesungen [2021-09-13 10:03] – gra | gf_informatik:microbit_programmieren_loesungen [2022-08-10 11:24] (aktuell) – gelöscht sca | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Microbit programmieren: | ||
- | |||
- | ==== Aufgaben A ==== | ||
- | |||
- | === A1 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | display.show(Image.DUCK) | ||
- | </ | ||
- | |||
- | === A2 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | myImages = [Image.SAD, Image.MEH, Image.YES, Image.NO, Image.COW] | ||
- | |||
- | display.show(myImages, | ||
- | </ | ||
- | |||
- | === A3 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | all_1 = Image(" | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | |||
- | all_3 = Image(" | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | |||
- | all_5 = Image(" | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | |||
- | all_7 = Image(" | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | |||
- | all_9 = Image(" | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | |||
- | myImages = [all_1, all_3, all_5, all_7, all_9] | ||
- | |||
- | display.show(myImages, | ||
- | </ | ||
- | |||
- | === A4 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | while True: | ||
- | for brightness in range(1, | ||
- | sleep(200) | ||
- | for column in range(5): | ||
- | for row in range (5): | ||
- | display.set_pixel(column, | ||
- | </ | ||
- | |||
- | ==== Aufgaben B ==== | ||
- | |||
- | === B1 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | while True: | ||
- | if button_a.is_pressed(): | ||
- | display.show(Image.GHOST) | ||
- | if button_b.is_pressed(): | ||
- | display.show(Image.RABBIT) | ||
- | if pin_logo.is_touched(): | ||
- | display.clear() | ||
- | </ | ||
- | |||
- | === B2 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | while True: | ||
- | if button_a.is_pressed(): | ||
- | display.scroll(" | ||
- | if button_b.is_pressed(): | ||
- | display.show(Image.RABBIT) | ||
- | if pin_logo.is_touched(): | ||
- | display.clear() | ||
- | </ | ||
- | |||
- | === B3 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | while True: | ||
- | if button_a.is_pressed(): | ||
- | display.scroll(" | ||
- | if button_b.is_pressed(): | ||
- | display.show(Image.RABBIT) | ||
- | if pin_logo.is_touched(): | ||
- | display.clear() | ||
- | </ | ||
- | |||
- | === B4 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | while True: | ||
- | if button_a.is_pressed(): | ||
- | display.show(Image.HAPPY) | ||
- | elif button_b.is_pressed(): | ||
- | display.show(Image.SAD) | ||
- | elif pin_logo.is_touched(): | ||
- | display.show(Image.HEART) | ||
- | else: | ||
- | display.clear() | ||
- | </ | ||
- | |||
- | === B5 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | while True: | ||
- | if pin_logo.is_touched(): | ||
- | display.scroll(str(button_a.get_presses()-button_b.get_presses())) | ||
- | </ | ||
- | |||
- | ==== Aufgaben C ==== | ||
- | |||
- | === C1 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | while True: | ||
- | if accelerometer.was_gesture(" | ||
- | display.show(Image.DUCK) | ||
- | elif accelerometer.was_gesture(" | ||
- | display.show(Image.HOUSE) | ||
- | </ | ||
- | |||
- | === C2 === | ||
- | [[https:// | ||
- | |||
- | === C3 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | import random | ||
- | |||
- | while True: | ||
- | if accelerometer.was_gesture(" | ||
- | display.show(random.randint(1, | ||
- | sleep(1000) | ||
- | display.clear() | ||
- | </ | ||
- | |||
- | === C4 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | import random | ||
- | |||
- | while True: | ||
- | if accelerometer.was_gesture(" | ||
- | display.show(random.randint(1, | ||
- | sleep(1000) | ||
- | if pin_logo.is_touched(): | ||
- | display.clear() | ||
- | </ | ||
- | |||
- | === C5 – Variante A === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | myImages = [] | ||
- | |||
- | for i in range(0, 9, 1): | ||
- | myImg = Image() | ||
- | myImg.fill(i) | ||
- | myImages.append(myImg) | ||
- | |||
- | myPos = 0 | ||
- | |||
- | while True: | ||
- | sleep(200) | ||
- | if myPos < len(myImages) - 1: | ||
- | myPos += 1 | ||
- | else: | ||
- | myPos = 0 | ||
- | display.show(myImages[myPos]) | ||
- | </ | ||
- | |||
- | === C5 – Variante B === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | myImages = [] | ||
- | |||
- | for i in range(0, 9, 1): | ||
- | myImg = Image() | ||
- | myImg.fill(i) | ||
- | myImages.append(myImg) | ||
- | |||
- | display.show(myImages, | ||
- | </ | ||
- | |||
- | === C6 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | myImages = [] | ||
- | myPos = 0 | ||
- | |||
- | for i in range(0, 9, 1): | ||
- | myImg = Image() | ||
- | myImg.fill(i) | ||
- | myImages.append(myImg) | ||
- | |||
- | while True: | ||
- | if(button_a.is_pressed()): | ||
- | sleep(100) | ||
- | if myPos < len(myImages) - 1: | ||
- | myPos += 1 | ||
- | else: | ||
- | myPos = 0 | ||
- | display.show(myImages[myPos]) | ||
- | </ | ||
- | |||
- | === C7 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | |||
- | myImages = [] | ||
- | myPos = 0 | ||
- | |||
- | for i in range(0, 10, 1): | ||
- | myImg = Image() | ||
- | myImg.fill(i) | ||
- | myImages.append(myImg) | ||
- | |||
- | while True: | ||
- | xAcceleration = accelerometer.get_x() | ||
- | # xAcceleration von +/-2040 nach 0...9 umrechnen: | ||
- | myPos = abs(xAcceleration) // 205 | ||
- | print(myPos) | ||
- | display.show(myImages[myPos]) | ||
- | </ | ||
- | |||
- | ==== Aufgaben D ==== | ||
- | |||
- | === D1 === | ||
- | <code python> | ||
- | from microbit import* | ||
- | import music | ||
- | |||
- | # Frère Jacques: | ||
- | melodyJacques = [' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | |||
- | note = 0 | ||
- | while True: | ||
- | if(button_a.is_pressed()): | ||
- | music.play(melodyJacques[note]) | ||
- | sleep(30) | ||
- | if(note < len(melodyJacques)-1): | ||
- | note += 1 | ||
- | else: | ||
- | note = 0 | ||
- | </ | ||
- | |||
- | === D2 === | ||
- | <code python> | ||
- | from microbit import* | ||
- | import music | ||
- | |||
- | # Frère Jacques: | ||
- | melodyJacques = [' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | |||
- | note = 0 | ||
- | while True: | ||
- | if(button_a.is_pressed()): | ||
- | display.show(Image.HAPPY) | ||
- | music.play(melodyJacques[note]) | ||
- | sleep(30) | ||
- | if(note < len(melodyJacques)-1): | ||
- | note += 1 | ||
- | else: | ||
- | note = 0 | ||
- | else: | ||
- | display.show(Image.ARROW_W) | ||
- | </ | ||
- | |||
- | === D3 === | ||
- | <code python> | ||
- | from microbit import* | ||
- | import music | ||
- | |||
- | # Frère Jacques: | ||
- | melodyJacques = [' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | |||
- | # Popcorn: | ||
- | melodyPop = | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | |||
- | noteA = 0 | ||
- | noteB = 0 | ||
- | while True: | ||
- | if(button_a.is_pressed()): | ||
- | music.set_tempo(bpm = 120) # Diese Melodie normal spielen | ||
- | display.show(Image.ASLEEP) | ||
- | music.play(melodyJacques[noteA]) | ||
- | sleep(30) | ||
- | if(noteA < len(melodyJacques)-1): | ||
- | noteA += 1 | ||
- | else: | ||
- | noteA = 0 | ||
- | |||
- | elif(button_b.is_pressed()): | ||
- | music.set_tempo(bpm = 200) # Diese Melodie schneller spielen | ||
- | display.show(Image.MUSIC_CROTCHET) | ||
- | music.play(melodyPop[noteB]) | ||
- | sleep(30) | ||
- | if(noteB < len(melodyPop)-1): | ||
- | noteB += 1 | ||
- | else: | ||
- | noteB = 0 | ||
- | |||
- | else: | ||
- | display.clear() | ||
- | </ | ||
- | |||
- | === D4 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | import music | ||
- | |||
- | while True: | ||
- | for freq in range(330, 770, 10): | ||
- | music.pitch(freq, | ||
- | for freq in range(770, 330, -10): | ||
- | music.pitch(freq, | ||
- | </ | ||
- | |||
- | === D5 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | import music | ||
- | |||
- | freq = 440 # A4 | ||
- | while True: | ||
- | if button_a.is_pressed(): | ||
- | if freq < 4000: | ||
- | freq += 100 | ||
- | music.pitch(freq, | ||
- | if button_b.is_pressed(): | ||
- | if freq > 100: | ||
- | freq -= 100 | ||
- | music.pitch(freq, | ||
- | </ | ||
- | |||
- | === D6 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | import music | ||
- | |||
- | while True: | ||
- | if accelerometer.was_gesture(" | ||
- | display.show(Image.HAPPY) | ||
- | music.play(music.JUMP_UP) | ||
- | elif accelerometer.was_gesture(" | ||
- | display.show(Image.SAD) | ||
- | music.play(music.JUMP_DOWN) | ||
- | else: | ||
- | display.clear() | ||
- | </ | ||
- | |||
- | === D7 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | import music | ||
- | |||
- | #Cancan von Jacques Offenbach: | ||
- | melodyCancan = [' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | |||
- | beats = 320 | ||
- | doPlay = 0 | ||
- | note = 0 | ||
- | |||
- | while True: | ||
- | if(pin_logo.is_touched()): | ||
- | display.show(Image.HAPPY) | ||
- | doPlay ^= 1 # Variable toggeln: 0 setzen, wenn sie 1 ist – und umgekehrt. | ||
- | sleep(200) | ||
- | display.clear() | ||
- | |||
- | if(doPlay): | ||
- | music.set_tempo(bpm = beats) | ||
- | music.play(melodyCancan[note]) | ||
- | sleep(25) | ||
- | if(note < len(melodyCancan)-1): | ||
- | note += 1 # Note erhöhen... | ||
- | else: | ||
- | note = 0 # ...oder auf 0 setzen | ||
- | |||
- | if(button_a.is_pressed()): | ||
- | beats += 40 | ||
- | |||
- | if(button_b.is_pressed()): | ||
- | beats -= 40 | ||
- | </ | ||
- | |||
- | === D8 === | ||
- | <code python> | ||
- | from microbit import * | ||
- | import music | ||
- | |||
- | #Cancan von Jacques Offenbach: | ||
- | melodyCancan = [' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | |||
- | beats = 320 | ||
- | doPlay = 0 | ||
- | note = 0 | ||
- | |||
- | def changeOctave(step = 1): | ||
- | for i, element in enumerate(melodyCancan): | ||
- | # ...i = Indexwert (0...x) des jeweiligen Elements (von Funktion enumerate()), | ||
- | # element = Element (Zeichenkette) in der Melodie-Liste): | ||
- | pos = element.find(':' | ||
- | if(element[pos] != ' | ||
- | octave = int(element[pos]) | ||
- | octave += step # ändere Oktavenzahl | ||
- | element = element[: | ||
- | melodyCancan[i] = element | ||
- | |||
- | |||
- | while True: | ||
- | if(pin_logo.is_touched()): | ||
- | display.show(Image.HAPPY) | ||
- | doPlay ^= 1 # Variable toggeln: 0 setzen, wenn sie 1 ist – und umgekehrt. | ||
- | sleep(200) | ||
- | display.clear() | ||
- | |||
- | if(doPlay): | ||
- | music.set_tempo(bpm = beats) | ||
- | music.play(melodyCancan[note]) | ||
- | sleep(25) | ||
- | if(note < len(melodyCancan)-1): | ||
- | note += 1 # Note erhöhen... | ||
- | else: | ||
- | note = 0 # ...oder auf 0 setzen | ||
- | |||
- | if(button_a.is_pressed()): | ||
- | beats += 40 | ||
- | changeOctave(1) | ||
- | |||
- | if(button_b.is_pressed()): | ||
- | beats -= 40 | ||
- | changeOctave(-1) | ||
- | </ | ||