Beruflich Dokumente
Kultur Dokumente
Dise
no de un Instrumento Musical con Raspberry Pi
A. Guerrero Llorente
17 de febrero de 2016
1.
Introducci
on
2.
5
6
7
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
3.
Elementos utilizados
32
Raspberry Pi
33
34
Altavoz
35
36
37
4.
38
4.1.
Descripci
on de funcionamiento
Seleccionando el sonido
42
Se mide distancia con el sensor de ultrasonidos y dependiendo de la medida se selecciona una nota. Hay un pulsador que cada vez que es pulsado se produce una interrupcion
y la variable TIMBRE se incrementa y produce un cambio de timbre. Con las variables
NOTA y TIMBRE se selecciona el sonido a ejecutar. Este proceso se realiza en el main().
43
4.2.
39
40
41
Emitiendo el sonido
46
Cada vez que la NOTA cambia se para la que estuviese sonando y se ejecuta el nuevo
sonido. Todos los sonidos estan cargados en una matriz, por lo que solamente hay que
seleccionar el elemento deseado y reproducirlo. Existe un hilo dedicado ha realizar esto.
47
4.3.
44
45
Batera
51
Existen tres pulsadores que cada vez que son pulsados se produce un sonido de batera.
Cuando se pulsa uno de ellos se produce una interrupcion que asigna valor a una variable
y seg
un su valor se reproduce un sonido u otro. Se ha creado un hilo que realiza esta
funcion y el encendido de la matriz de LEDs.
52
4.4.
48
49
50
LEDs
55
56
4.5.
53
54
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
5.
Problemas y soluci
on
Durante la elaboracion de este proyecto hubo tres problemas principales que hubo
que resolver: la produccion del sonido, reducir el n
umero de variable globales y medicion
correcta de distancias.
El mayor problema de la produccion de sonido fue descubrir por que cuando se generaba un PWM hardware se escuchaba por el altavoz. Se intento descubrir como hacer
que esto no sucediese hasta que se descubrio que no era posible. La solucion final fue
usar SDL, que ademas permitio el uso de distintas ondas.
Se escribio la mayor parte el codigo del tiron, sin preocupacion de si estaba quedando
legible, por lo que se escribieron algunas partes de forma poco elegante y creando un
n
umero excesivo de variables globales. Para resolver este problema se leyo el codigo por
completo comentando todas las cosas que sera conveniente cambiar. Se creo una matriz
de sonidos, tipo Mix_Chunk, y se creo un hilo u
nico para la batera y los LEDs.
Una cosa extra
na que suceda al medir distancias es que en algunas ocasiones no reciba el ultrasonido reflejado en el objeto. Se introdujo un tiempo lmite que se poda
estar esperando dicho reflejo, sin embargo esto no resolvio el problema por completo.
Finalmente se descubrio que depende del objeto en el que tenga que reflejarse el ultrasonido, si se mide la distancia sensor-mano a veces falla pero no es as si se mide la
distancia respecto de la pared y se mueve el sensor para tener distintas notas.