Proyecto Arduino-powered.
Este reproductor de vinilo grande con Arduino reproduce sonidos dependiendo de las partes superiores / inferiores en el vinilo (tablón de madera). La diferencia en la altura se mide con un potenciómetro. Eres libre de modificar el proyecto que usted desee.
Importante: Este proyecto fue una cuestión de ensayo y error. No todo puede ser perfecto y es más que un experimento. No dude en cambiar el proceso/código como usted por favor. Sigue tu intuición! :)
Video:
http://www.youtube.com/watch?v=neUZw9xFHv4&feature=youtu.be
Materiales necesarios:
-Cinta
-Arduino jumper cables (muy pocos)
-Tablones de madera lo suficiente como para trabajar con
Herramientas necesarias:
-Ilustrador
-Arduino (+ proceso)
-Herramientas para soldadura
-Fresadora
-Lastercutter
Proceso de:
1. empieza con hacer un diseño para el reproductor de vinilo. En Illustrator se puede diseñar un círculo con las pistas en el mismo. En nuestro proyecto, hemos elegido para las dos pistas. En estas pistas, diseñar las partes superior e inferior. No te olvides de cortar un círculo en el medio - aquí usted puede colocar un tubo que da el apoyo para hacer la caja con los potenciómetros de vuelta el jugador de vinyl mega.
2. después de que ha hecho su diseño plano 2D, utilizar una fresadora grande para cortar su reproductor de vinilo de mega. Para darle una idea de un tamaño: utilizamos 120 x 120 centímetros.
3. bien, ahora la parte difícil: diseño una manera de hacer tu caja con el potenciómetro gire alrededor del jugador de vinyl mega y apoyarse. Por ejemplo: utilizamos una viga que se coloca alrededor del tubo. En el extremo de la viga nos pegan una rueda.
4. Mida la longitud entre las dos pistas. Esta cantidad te da una idea de cómo colocar el potenciometro, y cuán grande será su caja. Ahora diseñar un cuadro con sus dos potenciómetros que se pega fuera de la caja. En el cuadro tiene el Arduino y los cables de puente, junto con un escudo del motor y su cable USB. Usamos el escudo del motor para mover por supuesto la caja junto con la viga.
5. llevarla todos juntos! Cuando hayas pegado el potenciómetro en el cuadro, conectarse un pedazo de madera y agregue un cierto peso, por lo que siempre cae cuando hay una diferencia en altura (véase los cuadros). Puede utilizar el lasercutter para hacer su caja, pieza de madera...
6. cuando piensas que tienes todo. Tiempo de programa!
Código:
Nota: El código ha sido retocado constantemente. Así que hay un montón de cosas en los comentarios. No dude en jugar con él! ^_^
ARDUINO:
---------------
const int
PWM_A = 3,
DIR_A = 12,
BRAKE_A = 9,
SNS_A = A0;
Boolean bandera = false;
flag1 boolean = false;
void setup() {}
Configurar la salida
pinMode (BRAKE_A, salida); Pasador de freno en canal A
pinMode (DIR_A, salida); Dirección pin en canal A
Comunicación en serie abierta
Serial.Begin(9600);
}
void loop() {}
Establecer las salidas a correr el motor hacia adelante
digitalWrite (BRAKE_A, bajo); ajuste freno baja desactivar el freno de motor
digitalWrite (DIR_A, LOW); establecer dirección en alta el motor girará hacia adelante
analogWrite (PWM_A, 255); La velocidad del motor, 255 es el valor máximo
leer la entrada en el pin analógico 0:
int sensorValue = analogRead(A4);
int sensorValue2 = analogRead(A5);
Serial.println(sensorValue);
Si (sensorValue > 700 & & bandera == false) {}
Serial.Print("1");
Bandera = true;
}
Si {} (sensorValue < 700)
Bandera = false;
}
Si (sensorValue2 > 160 & & flag1 == false) {}
Serial.Print("2");
flag1 = true;
}
Si (sensorValue2 < 160) {}
flag1 = false;
}
int sensorValue2 = analogRead(A4);
imprimir el valor de leer:
/ * Serial.print(sensorValue);
Serial.Print ("+"); */
Serial.Print(sensorValue);
Serial.Print(',');
Serial.Print(sensorValue2);
Serial.println();
}
PROCESO:
---------------------
Import processing.serial.*;
Import ddf.minim.*;
Import themidibus.*; La biblioteca de importación
MidiBus myBus; El MidiBus
AudioPlayer [] música = nuevo AudioPlayer [20];
int [] números = new int [20];
Mínima mínima;
int i = 0;
int a = 0;
int b = 0;
juego boolean = false;
teller de int = 0;
int teller2 = 0;
Serie myPort;
int prueba;
FirstContact boolean = false;
void setup() {}
println(serial.List());
myPort = serie nueva (este, Serial.list() [4], 9600);
MidiBus.list();
números [0] = 67;
números [1] = 71;
[2] los números = 62;
[3] los números = 67;
números [4] = 62;
[5] los números = 71;
[6] los números = 71;
[7] los números = 62;
[8] los números = 83;
números [9] = 67;
números [10] = 67;
[11] los números = 83;
[12] los números = 72;
[13] los números = 83;
números [14] = 67;
[15] los números = 67;
[16] los números = 83;
[17] los números = 81;
[18] los números = 81;
[19] los números = 67;
/ * paso de int = int(67);
campo de int = int(71);
campo de int = int(62);
campo de int = int(67);
campo de int = int(62);
campo de int = int(71);
campo de int = int(71);
campo de int = int(62);
campo de int = int(83);
campo de int = int(67); * /
mínima = nuevo Minim(this);
Music[0]=Minim.LoadFile ("1.mp3", 1024);
Music[1]=Minim.LoadFile ("2.mp3", 1024);
Music[2]=Minim.LoadFile ("3.mp3", 1024);
Music[3]=Minim.LoadFile ("4.mp3", 1024);
Music[4]=Minim.LoadFile ("5.MP3/WMA/AMV", 1024);
Music[5]=Minim.LoadFile ("6.mp3", 1024);
Music[6]=Minim.LoadFile ("7.mp3", 1024);
Music[7]=Minim.LoadFile ("8.mp3", 1024);
Music[8]=Minim.LoadFile ("9.mp3", 1024);
Music[9]=Minim.LoadFile ("10.mp3", 1024);
Music[10]=Minim.LoadFile ("11.mp3", 1024);
Music[11]=Minim.LoadFile ("12.mp3", 1024);
Music[12]=Minim.LoadFile ("13.mp3", 1024);
Music[13]=Minim.LoadFile ("14.mp3", 1024);
Music[14]=Minim.LoadFile ("15.mp3", 1024);
Music[15]=Minim.LoadFile ("16.mp3", 1024);
Music[16]=Minim.LoadFile ("17.mp3", 1024);
Music[17]=Minim.LoadFile ("18.mp3", 1024);
Music[18]=Minim.LoadFile ("19.mp3", 1024);
Music[19]=Minim.LoadFile ("20.mp3", 1024);
myBus = nuevo MidiBus (este, -1, "Sintetizador de sonido de Java"); Crear un nuevo MidiBus con ningún dispositivo de entrada y el valor por defecto Java sintetizador de sonido como dispositivo de salida.
}
void draw() {}
canal de int = 0;
int prueba = números [cajero];
campo de int = int(test);
int velocidad = 127;
mientras (myPort.available() > 0) {}
int inByte = myPort.read();
println(inByte);
if(inByte == 50) {}
println("Test");
myBus.sendNoteOn (canal, tono, velocidad); Enviar un noteOn Midi
Delay(200);
myBus.sendNoteOff (canal, tono, velocidad);
Teller ++;
}
if(Teller == 9) {}
Cajero = 0;
}
if(inByte == 49) {}
println(teller2);
myBus.sendNoteOn (canal, tono, velocidad); Enviar un noteOn Midi
Delay(200);
myBus.sendNoteOff (canal, tono, velocidad);
teller2 ++;
}
if(teller2 == 7) {}
teller2 = 0;
}
}
}
void serialEvent(Serial myPort) {}
String miCadena = myPort.readStringUntil('\n');
Si (miCadena! = null) {}
//
MiCadena = trim(myString);
//
sensores de int [] = int (split (miCadena, ','));
//
int a = sensores [0];
int b = sensores [1];
Print(a);
Print("");
Print(b);
Print("");
Print(Play);
println();
//
//
Si (a > 695 & & jugar == false) {}
Music[i].Play();
// i++;
//
jugar = true;
//
// }
//
//
Si (< 700) {}
jugar = false;
// }
//
//
// }
//
//}
//
{} void noteOn (canal int, int echada, velocidad de int)
Recibir un noteOn
println();
println ("en la Nota:");
println("---");
println("Channel:"+Channel);
println("pitch:"+pitch);
println("Velocity:"+Velocity);
}
noteOff nula (canal int, int echada, velocidad de int) {}
Recibir un noteOff
println();
println ("fuera de Nota:");
println("---");
println("Channel:"+Channel);
println("pitch:"+pitch);
println("Velocity:"+Velocity);
}
{} void retardo (int tiempo)
int actual = millis();
while(Millis() < actual + tiempo) Thread.yield();
}