Die Projektdokumentation (pdf) nach Vorlage für Code your life
Hier die mp3-Dateien der Lieder „Viva Colonia“ und der „Europa-hymne“

Bitte folgen Sie den unten stehenden Links zu den Vorstellungsvideos (.mp4)
Eine kurze Beschreibung des Projektes
Wir wollen unsere direkte Heimat (Köln), welche durch den Kölner Dom dargestellt ist, mit der größeren, Europäischen Heimat verbinden. Dazu haben wir den Kölner Dom aus Holz nachgebaut und mit „Sonic Pi“ zwei verschiedene Lieder programmiert, einmal das Karnevalslied „Viva-Colonia“ von den Höhnern, welches für Köln steht und zum anderen die Europahymne „Ode an die Freude“. Die Lieder werden durch unterschiedlich farbige LEDs unterstützt, welche passend zur Musikauswahl leuchten.
Anleitung zur Bedienung
- Lautsprecher einschalten
- Kölner Dom auf das Podest stellen
- Kabel vom Raspberry Pi einstecken
- warten bis alle LEDs leuchten (danach nochmal ca. 15 Sekunden warten)
- ein Lied auswählen
- Um ein anderes Lied auszuwählen, muss der Raspberry Pi wieder ausgesteckt und die Schritte 3-5 wiederholt werden
Unsere Arbeitsschritte
19.03.2019-23.03.2019: Ideen und erste Entwürfe
23.03.2019 -30.03.2019: Fertigstellung des Kölner Doms, Sonic Pi Lieder erstellt und Python-Code weitestgehend fertiggestellt
31.03.2019-02.04.2019: Kölner Dom mit grauer Farbe angemalt und Innenleben fertig gestellt (LEDs verkabelt, Lautsprecher und Raspberry Pi untergebracht).
03.04.2019: Finale Feinheiten am Python-Programm und an der Melodie der Lieder verändert
04.04.201 Abgabe des Projektes an die Post
Bilder von der Entwicklung



Die Codes unseres Projektes
Im Folgenden der Python-Code, welcher die LEDs blinken und die Musik abspielen lässt.
import RPi.GPIO as GPIO
import time
import vlc
Instance = vlc.Instance()
player = Instance.media_player_new()
Media1 = Instance.media_new('Europa8Bit120BPM.wav')
Media2 = Instance.media_new('Colonia80BPM.wav')
print("start")
try:
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(8, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.OUT)
GPIO.setup(15,GPIO.OUT)
GPIO.setup(7,GPIO.OUT)
def button_callback_I(channel):
print("Taste1 wurde gedrückt")
b = 0
player.set_media(Media1)
player.play()
while b < 16:
GPIO.setmode(GPIO.BOARD)
GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(8, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.OUT)
GPIO.setup(15,GPIO.OUT)
GPIO.setup(7,GPIO.OUT)
GPIO.output(7, GPIO.HIGH)
GPIO.output(15, GPIO.HIGH)
GPIO.output(11, GPIO.HIGH)
time.sleep(1)
GPIO.output(11, GPIO.LOW)
GPIO.output(13, GPIO.HIGH)
time.sleep(1)
GPIO.output(13, GPIO.LOW)
b = b + 1
GPIO.cleanup()
def button_callback_II(channel):
print("Taste2 wurde gedrückt")
b = 0
player.set_media(Media2)
player.play()
while b < 75:
GPIO.setmode(GPIO.BOARD)
GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(8, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.OUT)
GPIO.setup(15,GPIO.OUT)
GPIO.setup(7,GPIO.OUT)
GPIO.output(11, GPIO.HIGH)
GPIO.output(13, GPIO.HIGH)
GPIO.output(7, GPIO.HIGH)
time.sleep(0.75)
GPIO.setmode(GPIO.BOARD)
GPIO.output(7, GPIO.LOW)
GPIO.output(15, GPIO.HIGH)
time.sleep(0.75)
GPIO.output(15, GPIO.LOW)
b = b + 1
GPIO.cleanup()
GPIO.add_event_detect(10,GPIO.RISING,callback=button_callback_I)
GPIO.add_event_detect(8,GPIO.RISING,callback=button_callback_II)
message = input("Press enter to quit\n\n")
except:
pass
Hier ein Ausschnitt des Codes für das Karnevalslied (Insgesamt umfasst unser Lied 81 Takte, hier jetzt nur die ersten 5)
/Karnevalslied/
/Viva Colonia/
/von Jan,Jannis,Enes und Daniel/
/Dauer : 2min 25sec/
use_bpm 80
/Takt 1/
play :bb, release:2
play chord(:g3, :minor), release:2
sleep 2
play :a, release:2
play chord(:d3, :major), release:2
sleep 2
/Takt 2/
play :c, release: 0.5
play chord(:c3, :minor), release:2
sleep 0.5
play :bb, release: 0.5
sleep 0.5
play :a, release: 0.5
sleep 0.5
play :g, release: 0.5
sleep 0.5
play :a, release: 1
play chord(:d3, :major), release:2
sleep 1
play :d, release: 0.5
sleep 0.5
play :d, release: 0.5
sleep 0.5
/Takt 3/
play :g, release: 1
play chord(:g3, :minor), release:2
sleep 1
play :g, release: 0.5
sleep 0.5
play :g, release: 0.5
sleep 0.5
play :a, release: 1
play chord(:d3, :major), release:2
sleep 1
play :a, release: 0.5
sleep 0.5
play :a, release: 0.5
sleep 0.5
/Takt 4/
play :bb, release: 1
play chord(:b3, :major), release:2
sleep 1
play :c5, release: 0.5
sleep 0.5
play :d5, release: 0.5
sleep 0.5
play :c5, release: 2
play chord(:c3, :major), release:2
sleep 2
/Takt 5/
play :bb, release: 0.5
play chord(:e3, :minor), release:2
sleep 0.5
play :c5, release: 0.5
sleep 0.5
play :d5, release: 0.5
sleep 0.5
play :bb, release: 0.5
sleep 0.5
play :c, release: 0.5
play chord(:d3, :major), release:2
sleep 0.5
play :bb, release: 0.5
sleep 0.5
play :g, release: 1
sleep 1
Und zuletzt die Europa-Hymne (auch hier nur die ersten 5 Takte)
/Europahymne/
/Ode an die Freude/
/von Jan,Jannis,Enes und Daniel/
/Dauer : 40sec/
use_bpm 100
/Takt 1/
play :e
play :c3 , release:4
play :g3 , release:4
sleep 1
play :e
sleep 1
play :f
sleep 1
play :g
sleep 1
/Takt 2/
play :g
play :b2 , release:4
play :g3 , release:4
sleep 1
play :f
sleep 1
play :e
sleep 1
play :d
sleep 1
/Takt 3/
play :c
play :b2 , release:4
play :g3 , release:4
sleep 1
play :c
sleep 1
play :d
sleep 1
play :e
sleep 1
/Takt 4/
play :e
play :b2 , release: 1.5
play :g3 , release: 1.5
sleep 1.5
play :d
sleep 0.5
play :d
play :b3 , release: 2
play :g3 , release: 2
sleep 2
/Takt 5/
play :e
play :c3 , release:4
play :g3 , release:4
sleep 1
play :e
sleep 1
play :f
sleep 1
play :g
sleep 1