Arduino para Mu
Arduino para Mu
músicos
Rodrigo S. A.
1
Arduino para músicos
2
Arduino para músicos
Rodrigo S. A.
3
Arduino para músicos
4
Arduino para músicos
Qué es arduino
5
Arduino para músicos
6
Arduino para músicos
Variantes de arduino
Las placas Arduino más comunes son:
Arduino UNO
Es el punto de entrada a Arduino. Por su
tamaño es fácil de manipular. No hace falta soldar
y trae conectores muy sencillos. Trae memoria
flash de 32KB, EEPROM de 1KB y 2KB de SRAM.
Trae 14 pines de Input Output digitales, 6 inputs
analogicos y una línea de comunicación serial.
Arduino Mega
La principal diferencia son las
características técnicas. Esta placa trae 256kb
de memoria flash programable. 8KB de RAM
y 4KB de SRAM. Por parte de los pins trae 54
7
Arduino para músicos
Arduino Nano
Es más económica y chica que el Arduino
Uno. Trae 14 pines digitales y 6 analógicos. Una
de sus versiones con ATmega168 tiene 0.512KB
EEPROM, 1KB SRAM y 16kb Flash. La otra con
ATmega328P tiene 1KB EEPROM, 2KB SRAM y
32kb Flash.
Arduino Lilypad
Tiene un diseño circular plano y se suele
utilizar para crear dispositivos que “se visten”
En este libro no hay proyectos con esta placa.
En cualquier caso sus especificaciones son
Procesador ATmega168V 6 inputs análogas. 14
IO 6 PWM digitales. 0.512KB EEPROM, 1 SRAM,
16KB Flash.
8
Arduino para músicos
9
Arduino para músicos
10
Arduino para músicos
Requerimientos
11
Arduino para músicos
12
Arduino para músicos
Micro Piano
Con un Arduino, un buzzer y unos botones
es suficiente para crear un mini piano, capaz de
tocar notas precisas y arpegiar. Quizás el sonido
no sea tan singular, pero sirve para entender
algunas nociones básicas como la detección de
pulsaciones.
13
Arduino para músicos
Caja de música
Con casi el mismo hardware las melodías
se almacenan y son disparadas en un lindo objeto
para regalar con una canción en común con el
homenajeado.
Sintetizador
En este proyecto se incorpora la potente
librería Mozzi para generar sonidos sintetizados
en base a 3 potenciómetros.
Jukebox
Ya sabemos cómo tocar sonidos en
Arduino con un Buzzer. Ahora qué tal aprender
a reproducir MP3. Si bien este es un reproductor,
sus mismos principios pueden ser utilizados
para crear por ejemplo un módulo de caja de
ritmos o acompañamientos sampleados para un
instrumento más complejo.
14
Arduino para músicos
Dancing head
Este proyecto no genera música, pero
“escucha música” ya que usa un módulo de
detección de audio de tal forma en que el Arduino
escuche sonidos fuertes y mueva la cabeza de un
muñeco para acompañar el ritmo.
Sequencer
Con principios parecidos al proyecto
anterior, pero ahora sumando la posibilidad de
grabar los sondidos que van en cada beat. La
entrada puede ser realizada con un joystick retro
o un potenciómetro y un botón.
Power Theremin
El Theremin es un curioso instrumento
que permite tocar notas con los movimientos de
las manos. Con Arduino y otras partes es posible
desarrollar un Power Theremin con selector de
escalas y ciertos efectos.
15
Arduino para músicos
Caja de ritmos
Ya es tiempo de hacer sonar al Arduino
“en serio” con esta caja de ritmos parametrizada.
Tempo configurable en tiempo real y cuatro
potenciómetros para controlar los sonidos de
cada beat.
16
Arduino para músicos
Notas y frecuencias
Este capítulo tiene cierta importancia,
pero es puramente teórico. Si te perdés con la
información, podés seguir adelante y en todo
caso volver a consultarlo cuando veas una parte
del código que haga referencia a frecuencias en
lugar de notas.
17
Arduino para músicos
18
Arduino para músicos
Primera octava
Do 1: 65,406 Do# 1: 69,296 Re 1: 73,416
Re# 1: 77,782 Mi 1: 82,407 Fa 1: 87,307 Fa# 1:
92,499 Sol 1: 97,999 Sol#1: 103,826 La 1: 110 La#
1: 116,541 Si 1: 123,471
Segunda octava
Do 2: 130,813 Do# 2: 138,591 Re 2: 146,832
Re# 2: 155,563 Mi 2: 164,814 Fa 2: 174,614 Fa# 2:
184,997 Sol 2: 195,998 Sol#2: 207,652 La 2: 220
La# 2: 233,082 Si 2: 246,942
19
Arduino para músicos
Tercera octava
Do 3: 261,626 Do# 3: 277,183 Re 3: 293,665
Re# 3: 311,127 Mi 3: 329,628 Fa 3: 349,228 Fa# 3:
369,994 Sol 3: 391,995 Sol#3: 415,305 La 3: 440
La# 3: 466,164 Si 3: 493,883
Cuarta octava
Do 4: 523,251 Do# 4: 554,365 Re 4: 587,33
Re# 4: 622,254 Mi 4: 659,255 Fa 4: 698,456 Fa# 4:
739,989 Sol 4: 783,991 Sol#4: 830,609 La 4: 880
La# 4: 932,328 Si 4: 987,767
Quinta octava
Do 5: 1046,502 Do# 5: 1108,731 Re 5:
1174,659 Re# 5: 1244,508 Mi 5: 1318,51 Fa
5: 1396,913 Fa# 5: 1479,978 Sol 5: 1567,982
Sol#5: 1661,219 La 5: 1760 La# 5: 1864,655 Si 5:
1975,533
Sexta octava
Do 6: 2093,005 Do# 6: 2217,461 Re 6:
20
Arduino para músicos
Septima octava
Do 7: 4186,009 Do# 7: 4434,922 Re 7:
4698,636 Re# 7: 4978,032 Mi 7: 5274,041 Fa 7:
5587,652 Fa# 7: 5919,911 Sol 7: 6271,927 Sol#7:
6644,875 La 7: 7040 La# 7: 7458,62 Si 7: 7902,133
Octava octava
Do 8: 8372,018 Do# 8: 8869,844 Re 8:
9397,273 Re# 8: 9956,063 Mi 8: 10548,082 Fa
8: 11175,303 Fa# 8: 11839,822 Sol 8: 12543,854
Sol#8: 13289,75 La 8: 14080 La# 8: 14917,24 Si
8: 15804,266
21
Arduino para músicos
tos
Armar la electrónica
22
Arduino para músicos
23
Arduino para músicos
24
Arduino para músicos
Depuración de errores
25
Arduino para músicos
monitor serial.
Serial.begin(9600);
Serial.print(“Arduino iniciado”);
Agregado de librerías
#include <LibreriaABC.h>
En Windows a: Documents\Arduino\
libraries.
En MAC a: Documents/Arduino/libraries
26
Arduino para músicos
27
Arduino para músicos
Pines digitales
Como su nombre lo indica, permiten
enviar o recibir señales digitales. Es decir que
admiten uno de dos estados: encendido o apagado,
traducidos en 0 o 5V (o bien 0 o 3.3v en ciertas
28
Arduino para músicos
placas)
29
Arduino para músicos
Pines de corriente
VIN quiere decir Voltage In y se puede
utilizar para darle corriente al Arduino, GND
quiere decir ground o tierra. 5v quiere decir salida
de 5v y 3V salida de 3.3v para potenciar circuitos
externos.
31
Arduino para músicos
Buzzers y parlantes
32
Arduino para músicos
tone(pin, freq);
33
Arduino para músicos
34
Arduino para músicos
ino
Este capítulo puede ser pasado por alto
en el caso que solo te interese llevar adelante los
proyectos del libro tal como están. Ahora bien, si
te interesa aprender a modificar los proyectos y
llevar adelante los tuyos, es imperativo conocer
algo sobre la programación del Arduino.
35
Arduino para músicos
bien en “loop”.
int ledVerde=2;
36
Arduino para músicos
pinMode(ledVerde, OUTPUT);
37
Arduino para músicos
señal.
/*
Todas las líneas estas
estarán comentadas en el código
*/
código?
38
Arduino para músicos
Serial.begin(115200);
Serial.println(“Futbol”);
Serial.println(“Contador:
“+contador);
Condicionales
39
Arduino para músicos
if (relayState==HIGH){
digitalWrite(relay, LOW);
}
else{
digitalWrite(relay, HIGH);
}
Loops
while(relayState==HIGH){
// aquí el código
40
Arduino para músicos
a repetir
}
For
Funciones
41
Arduino para músicos
function removeSpecial($str){
$str=str_replace(“º”,”
grados “,$str);
return $str;
}
Valores al azar
void setup() {
Serial.begin(9600);
randomSeed(analogRead(0));
}
void loop() {
randNumber = random(10);
Serial.println(randNumber);
delay(50);
42
Arduino para músicos
El Led Integrado
Para definir
pinMode(LED_BUILTIN, OUTPUT);
Para encender
digitalWrite(LED_BUILTIN, HIGH);
Para apagar
digitalWrite(LED_BUILTIN, LOW);
43
Arduino para músicos
Prom
#include <EEPROM.h>
int addr = 0;
void setup() {
void loop() {
44
Arduino para músicos
EEPROM.write(addr, val);
addr = addr + 1;
if (addr == EEPROM.length()) {
addr = 0;
}
delay(100);
}
45
Arduino para músicos
Micro Piano
Partes
• Arduino Nano
• Buzzer
46
Arduino para músicos
• 7 Botones
Conexiones
• Botones D1 y GND a D7 y GND
• Buzzer D8
Código
47
Arduino para músicos
// Micro Piano
// Arduino para músicos
// Editorial Steadman Thompson
// Licencia CCBY 4.0 https://
creativecommons.org/licenses/by/4.0
void setup() {
Serial.begin(9600);
48
Arduino para músicos
Serial.println(“Micro
Piano Iniciado”);
void loop() {
// si se presiona el primer
botón hace sonar el buzzer con
la frecuencia de la nota C
if (button1Value==0){
Serial.println(“C”);
tone(buzzer, NOTE_C1);
49
Arduino para músicos
if (button2Value==0){
Serial.println(“D”);
tone(buzzer, NOTE_D1);
if (button3Value==0){
Serial.println(“E”);
tone(buzzer, NOTE_E1);
if (button4Value==0){
Serial.println(“F”);
tone(buzzer, NOTE_F1);
if (button5Value==0){
Serial.println(“G”);
tone(buzzer, NOTE_G1);
if (button6Value==0){
Serial.println(“A”);
tone(buzzer, NOTE_A1);
if (button6Value==0){
Serial.println(“B”);
tone(buzzer, NOTE_B1);
50
Arduino para músicos
delay(1000);
noTone(buzzer);
Explicación
51
Arduino para músicos
if (button2Value==0){
Serial.println(“D”);
tone(buzzer, NOTE_D1,500);
delay(300);
tone(buzzer, NOTE_FS1,500);
delay(300);
52
Arduino para músicos
tone(buzzer, NOTE_A1,500);
delay(300);
noTone(buzzer);
53
Arduino para músicos
Version completa
54
Arduino para músicos
55
Arduino para músicos
Índice
Prólogo 1
Qué es arduino 5
Variantes de arduino 7
Requerimientos 11
Proyectos del libro 13
Notas y frecuencias 17
Montaje de los proyectos 22
Hardware del Arduino 28
Buzzers y parlantes 32
Programación del Arduino 35
Micro Piano 46
Caja de música 54
Sintetizador 63
Jukebox 71
Dancing head 80
56
Arduino para músicos
Micro secuencer 86
Power theremin 185
Caja de ritmos 193
Índice 254
57
Arduino para músicos
58