Zadnja naloga pri projektu glasbene skrinjice bo izdelava Malinine različice otroškega ksilofona. To pomeni, da boš na preizkusno ploščico dodal/-a osem gumbov in jih sprogramiral/-a tako, da se bo ob pritisku na posamezen gumb predvajal zvoke posameznih tonov, ki jih lahko zaigraš na otroškem ksilofonu.
gpiozero
(prednameščen na Raspbianu)pygame
(prednameščen na Raspbianu)Izkaže se, da ima pythonov modul pygame
najmanj težav pri predvajanju zvočnih datotek v formatu Ogg Vorbis. Zato bo najbolje, da zvočne datoteke, ki jih želiš uporabiti v tem ali drugih projektih, najprej pretvoriš v format Ogg Vorbis. To lahko narediš na primer s programom Audacity, ali pa uporabiš kakšno spletno storitev za pretvarjanje med različnimi formati zvočnih datotek.
ksilofon.py
.ksilofon.py
vnesi kodo z zavihka Koda.Če je mogoče, uporabi žičke istih barv, kot so na sliki vezja (glej zavihek Vezje), saj so z istimi barvami označene tudi note v skladbicah na naslednji strani.
# encoding: utf-8
import gpiozero
import pygame
pygame.init()
gumb_c1 = gpiozero.Button(19) # ali Button(25)
gumb_d1 = gpiozero.Button(13) # ali Button(24)
gumb_e1 = gpiozero.Button(6) # ali Button(23)
gumb_f1 = gpiozero.Button(5) # ali Button(18)
gumb_g1 = gpiozero.Button(22)
gumb_a1 = gpiozero.Button(27)
gumb_h1 = gpiozero.Button(17)
gumb_c2 = gpiozero.Button(4)
ton_c1 = pygame.mixer.Sound('c1.ogg')
ton_d1 = pygame.mixer.Sound('d1.ogg')
ton_e1 = pygame.mixer.Sound('e1.ogg')
ton_f1 = pygame.mixer.Sound('f1.ogg')
ton_g1 = pygame.mixer.Sound('g1.ogg')
ton_a1 = pygame.mixer.Sound('a1.ogg')
ton_h1 = pygame.mixer.Sound('b1.ogg')
ton_c2 = pygame.mixer.Sound('c2.ogg')
while True:
if gumb_c1.is_pressed:
ton_c1.play()
if gumb_d1.is_pressed:
ton_d1.play()
if gumb_e1.is_pressed:
ton_e1.play()
if gumb_f1.is_pressed:
ton_f1.play()
if gumb_g1.is_pressed:
ton_g1.play()
if gumb_a1.is_pressed:
ton_a1.play()
if gumb_h1.is_pressed:
ton_h1.play()
if gumb_c2.is_pressed:
ton_c2.play()