Arduino alimenté par projet.
Ce lecteur de vinyle grande propulsé par Arduino joue des sons selon les parties supérieurs / inférieurs sur le « vinyle » (planche de bois). La différence de hauteur est mesurée par un potentiomètre. Vous êtes libre de modifier le projet comme vous le souhaitez.
IMPORTANT : Ce projet a été une question d’essais et d’erreurs. Tout ne peut être parfait et c’est plus d’une expérience. N’hésitez pas à changer le processus/code comme vous s’il vous plaît. Suivez votre intuition ! :)
Vidéo :
http://www.youtube.com/watch?v=neUZw9xFHv4&feature=youtu.be
Matériel requis :
-Tape
-Arduino cavalier fils (un peu)
-Des planches de bois assez pour travailler avec
Outils requis :
-Illustrator
-Arduino (+ traitement)
-Outils à souder
-Fraiseuse
-Lastercutter
Processus :
1. Commencez par faire un design pour votre lecteur de vinyle. Dans Illustrator, vous pouvez concevoir un cercle avec des morceaux dedans. Dans notre projet, nous avons choisi pour les deux pistes. Dans ces titres, vous concevez des pièces plus haut/plus bas. N’oubliez pas de couper un cercle au milieu - ici vous pouvez placer un tuyau qui donne l’appui pour que votre boîte avec les potentiomètres de tourner autour du joueur de vinyle méga.
2. une fois que vous avez fait votre design plat en 2D, utilisez une grande fraiseuse à découper votre lecteur de vinyle méga. Pour vous donner une idée de la taille : 120 x 120 centimètres, nous avons utilisé.
3. OK, maintenant une partie difficile : conception d’un moyen de rendre votre boîte avec potentiomètre tourner autour du joueur de vinyle méga et se soutenir. Par exemple : nous avons utilisé un faisceau qui est mis autour du tuyau. À l’extrémité de la poutre, nous avons collé une roue.
4. Mesurez la distance entre vos deux pistes. Ce montant vous donne une idée comment placer vos potentiomètres, et quelle taille sera votre boîte. Maintenant de concevoir une boîte avec vos deux potentiomètres qui sort de la boîte. Dans la boîte, vous avez l’Arduino et votre fils de raccordement, ainsi que d’une flasque arrière et votre câble USB. Nous utilisons le flasque arrière du moteur pour faire la boîte avec faisceau déplacer bien sûr.
5. amener tous ensemble ! Lorsque vous avez collé votre potentiomètre dans la boîte, vous y connecter un morceau de bois et ajouter du poids sur elle, pour qu’il tombe toujours quand il y a une différence de hauteur (voir les photos). Vous pouvez utiliser le lasercutter pour faire votre boîte, morceau de bois...
6. quand vous pensez que vous avez tout. Temps de programme !
Code :
Remarque : Le code a été tordu en permanence. Donc, il y a beaucoup de choses dans les commentaires. N’hésitez pas à jouer avec elle ! ^_^
ARDUINO :
---------------
const int
PWM_A = 3,
DIR_A = 12,
BRAKE_A = 9,
SNS_A = A0 ;
indicateur booléen = false ;
Indicateur1 booléen = false ;
void setup() {}
Configurer l’A sortie
pinMode (BRAKE_A, sortie) ; Tige de frein sur canal A
pinMode (DIR_A, sortie) ; Direction épingler sur canal A
Communication série ouverte
Serial.Begin(9600) ;
}
void loop() {}
Régler les sorties à faire tourner le moteur vers l’avant
digitalWrite (BRAKE_A, basse) ; réglage frein faible désactiver le frein moteur
digitalWrite (DIR_A, basse) ; configuration de sens à vif le moteur tournera vers l’avant
analogWrite (PWM_A, 255) ; La vitesse du moteur, 255 est la valeur maximale
lire l’entrée sur la broche analogique 0 :
int sensorValue = analogRead(A4) ;
int sensorValue2 = analogRead(A5) ;
Serial.println(sensorValue) ;
Si (sensorValue > 700 & & drapeau == false) {}
Serial.Print("1") ;
drapeau = true ;
}
Si {(sensorValue < 700)
drapeau = false ;
}
Si (sensorValue2 > 160 & & Indicateur1 == false) {}
Serial.Print("2") ;
Indicateur1 = true ;
}
Si {(sensorValue2 < 160)
Indicateur1 = false ;
}
int sensorValue2 = analogRead(A4) ;
afficher la valeur que vous lisez :
/ * Serial.print(sensorValue) ;
Serial.Print ("+") ; */
Serial.Print(sensorValue) ;
Serial.Print(',') ;
Serial.Print(sensorValue2) ;
Serial.println() ;
}
TRAITEMENT :
---------------------
Import processing.serial.* ;
Import ddf.minim.* ;
Import themidibus.* ; La bibliothèque d’importation
MidiBus myBus ; Le MidiBus
AudioPlayer [] musique = nouveau AudioPlayer [20] ;
Numbers() = new int [20] ;
Minim minim ;
int i = 0 ;
int a = 0 ;
int b = 0 ;
jeu booléen = false ;
teller int = 0 ;
int teller2 = 0 ;
Serial myPort ;
test de l’int ;
FirstContact booléen = false ;
void setup() {}
println(Serial.List()) ;
myPort = nouvelle série (ce, Serial.list() [4], 9600) ;
MidiBus.list() ;
nombres [0] = 67 ;
nombres [1] = 71 ;
nombres [2] = 62 ;
nombres [3] = 67 ;
nombres [4] = 62 ;
nombres [5] = 71 ;
[6] les numéros = 71 ;
nombres [7] = 62 ;
nombres [8] = 83 ;
nombres [9] = 67 ;
nombres [10] = 67 ;
[11] les numéros = 83 ;
nombres [12] = 72 ;
nombres [13] = 83 ;
nombres [14] = 67 ;
nombres [15] = 67 ;
[16] les numéros = 83 ;
nombres [17] = 81 ;
[18] les numéros = 81 ;
nombres [19] = 67 ;
/ * hauteur int = int(67) ;
hauteur int = int(71) ;
hauteur int = int(62) ;
hauteur int = int(67) ;
hauteur int = int(62) ;
hauteur int = int(71) ;
hauteur int = int(71) ;
hauteur int = int(62) ;
hauteur int = int(83) ;
hauteur int = int(67); * /
minim = new 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", 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 = nouveau MidiBus (ce, -1, "Synthétiseur sonore de Java") ; Créer un nouveau MidiBus avec aucun périphérique d’entrée et la valeur par défaut Java Sound synthétiseur comme le périphérique de sortie.
}
{} void draw()
canal int = 0 ;
test int = chiffres [teller] ;
hauteur int = int(test) ;
int vitesse = 127 ;
tandis que (myPort.available() > 0) {}
int inByte = myPort.read() ;
println(inByte) ;
if(inByte == 50) {}
println("test") ;
myBus.sendNoteOn (canal, pitch, velocity) ; Envoyer un noteOn Midi
Delay(200) ;
myBus.sendNoteOff (canal, pitch, velocity) ;
Teller ++ ;
}
if(Teller == 9) {}
Teller = 0 ;
}
if(inByte == 49) {}
println(teller2) ;
myBus.sendNoteOn (canal, pitch, velocity) ; Envoyer un noteOn Midi
Delay(200) ;
myBus.sendNoteOff (canal, pitch, velocity) ;
teller2 ++ ;
}
if(teller2 == 7) {}
teller2 = 0 ;
}
}
}
void serialEvent(Serial myPort) {}
Dim myString As String = myPort.readStringUntil('\n') ;
Si (myString! = null) {}
//
myString = trim(myString) ;
//
int [] les capteurs = int (split (myString, ',')) ;
//
int a = capteurs [0] ;
int b = capteurs [1] ;
Print(a) ;
Print("") ;
Print(b) ;
Print("") ;
Print(Play) ;
println() ;
//
//
Si (une 695 > & & jouer == false) {}
Music[i].Play() ;
// i++;
//
jouer = true ;
//
// }
//
//
Si (une < 700) {}
jouer = false ;
// }
//
//
// }
//
//}
//
void noteOn (int canal, hauteur int, int vitesse) {}
Recevoir un noteOn
println() ;
println ("Note sur:") ;
println("---") ;
println("Channel:"+Channel) ;
println("pitch:"+pitch) ;
println("Velocity:"+Velocity) ;
}
void noteOff (int canal, hauteur int, int vitesse) {}
Recevoir un noteOff
println() ;
println ("Note Off:") ;
println("---") ;
println("Channel:"+Channel) ;
println("pitch:"+pitch) ;
println("Velocity:"+Velocity) ;
}
{} void retard (int fois)
cours int = millis() ;
while(Millis() < actuel + temps) Thread.yield() ;
}