Haut-parleur de vibration de mousse ! (3 / 3 étapes)

Etape 3: Télécharger le code et jouer de la musique vibration !

Dernière étape consiste à télécharger le code (actuellement a thème de Star Wars et les thèmes de Mario, retirer ses commentaires sur le thème de mario et commentaire sur le thème de Star Wars à jouer des mélodies différentes).

Merci à club de robotique R-Team pour l’affichage de leur code arduino avec les mélodies programmés dans !
http://www.Phys-x.org/rbots/index.php?option=com_content&view=article&id=66:Lesson-5-Play-Melody-with-piezo&catid=41:kits&Itemid=70

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

/ * Jouer la mélodie
* -----------
*
* Programme pour jouer une mélodie simple
*
* Tons sont créés par impulsions rapidement un orateur sur et en dehors
* à l’aide de PWM, à créer des fréquences de signature.
*
* Chaque note a une fréquence, créée en faisant varier la durée de
* vibration, mesuré en microsecondes. Nous allons utiliser la largeur d’impulsion
* modulation (PWM) pour créer cette vibration.

* On calcule la largeur d’impulsion pour être la moitié de la période ; Nous avons d’impulsion
* le haut-parleur haute pour microsecondes « largeur d’impulsion », puis faible
pour les microsecondes « largeur d’impulsion ».
* Cette impulsion crée une vibration de la fréquence désirée.
*
* (fente) 2005 D. Cuartielles pour K3
* La refactorisation et commente 2006 clay.shirky
* Voir les NOTES dans les commentaires à la fin pour les améliorations possibles
*/

// TONES  ==========================================
Commencez par définir la relation entre
Remarque, période et fréquence.

période est en microseconde alors P = 1/f * (1E6)

#define c3 7634
#define d3 6803
#define e3 6061
#define f3 5714
g3 #define 5102
#define a3 4545
#define b3 4049
#define c4 3816 / / 261 Hz
#define d4 3401 / / 294 Hz
#define e4 3030 / / 329 Hz
#define f4 2865 / / 349 Hz
#define g4 2551 / / 392 Hz
#define a4 2272 / / 440 Hz
#define a4s 2146
#define b4 2028 / / 493 Hz
#define c5 1912 / / 523 Hz
#define d5 1706
#define d5s 1608
#define e5 1517
#define f5 1433
#define g5 1276
#define a5 1136
#define a5s 1073
#define b5 1012
#define c6 955

Définir une note spéciale, « R », pour représenter un repos
#define R 0

// SETUP ============================================
Mettre en place des haut-parleurs sur une goupille PWM (digital 9, 10 ou 11)
int speakerOut = 9 ;
Voulons-nous débogage sur hors série ? 1 pour Oui, 0 pour non
int DEBUG = 1 ;

void setup() {}
pinMode (speakerOut, sortie) ;
Si {(DEBUG)
Serial.Begin(9600) ; Jeu serial dehors, si nous voulons que le débogage
}
}

MÉLODIE et TIMING ===
mélodie [] est un tableau de notes, accompagnée de battements [],
qui définit la longueur relative de chaque note (# supérieur, note plus longue)
thème de star wars
la mélodie d’int [] = {f4 f4, f4, a4s, f5, d5s, d5, c5, a5s, f5, d5s, d5, c5, a5s, f5, d5s, d5, d5s, c5};//
int bat [] = {21, 21, 21, 128, 128, 21, 21, 21, 128, 64, 21, 21, 21, 128, 64, 21, 21, 21, 128} ;

débogage de note
la mélodie d’int [] = {c4, d4, e4, f4, g4, a4, b4, c5} ;
int bat [] = {63, 64, 64, 64, 64, 64, 64, 64} ;

Super thème de mario
la mélodie d’int [] = {e5, e5, R, e5, R, c5, e5, R, g5, g4, R, R, R R, R, R, c5, R, R, g4, R, R, e4} ;
int bat [] = {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 8, 16, 16} ;

int elements_valides = sizeof(melody) / 2 ; Longueur de la mélodie, pour une boucle.

Set global tempo
rythme long = 10000 ;
Régler la durée de pause entre les notes
int pause = 1000 ;
Variable de boucle pour augmenter la longueur de repos
int rest_count = 50 ; <-BLETCHEROUS HACK ; Voir les NOTES

Initialiser des variables de base
toneM int = 0 ;
battre int = 0 ;
longue durée = 0 ;

// PLAY TONE  ==============================================
L’orateur pour jouer une tonalité pour un particulier de la durée d’impulsion
void playTone() {}
long elapsed_time = 0 ;
Si (toneM > 0) {/ / si ce n’est pas un battement de repos, alors que le ton a
joué moins longtemps que « duration », enceinte de pulse haute et basse
tandis que (elapsed_time < durée) {}

digitalWrite(speakerOut,HIGH) ;
delayMicroseconds(toneM / 2) ;

VERS LE BAS
digitalWrite (speakerOut, basse) ;
delayMicroseconds(toneM / 2) ;

Garder une trace de combien de temps nous avons pulsé
elapsed_time += (toneM) ;
}
}
else {/ / repos battre ; retardent le temps de la boucle
pour (int j = 0; j < rest_count; j ++) {/ / Voir NOTE sur rest_count
delayMicroseconds(duration) ;
}
}
}

LET THE WILD RUMPUS COMMENCE ===
void loop() {}
Mettre en place un compteur pour tirer de la mélodie [] et [bat]
pour (int i = 0; i < elements_valides; i ++) {}
toneM = mélodie [i] ;
battre = beats [i] ;

durée = battement * tempo ; Mettre en place le calendrier

playTone() ;
Une pause entre les notes...
delayMicroseconds(pause) ;

Si (déboguer) {/ / si le débogage, rapport boucle, ton, rythme et la durée
Serial.Print(i) ;
Serial.Print(":") ;
Serial.Print(Beat) ;
Serial.Print("") ;
Serial.Print(toneM) ;
Serial.Print("") ;
Serial.println(Duration) ;
}
}
}

/*
* NOTES
* Le programme est censé tenir une tonalité pour microsecondes « duration ».
* Mensonges mensonges mensonges ! Il détient pour au moins microsecondes « duration », _plus_
* aucun frais généraux créé par incremeting elapsed_time (peut être à plus de
* 3 K microsecondes) _plus_ surcharge due à une boucle et deux digitalWrites()
*
* En conséquence, un ton de « duration » joue beaucoup plus lentement qu’un repos
* de « durée. » rest_count crée une variable de boucle pour amener les battements « repos »
* conformément aux battements de « ton » de la même longueur.
*
* rest_count sera affecté par l’architecture de circuit intégré et vitesse, ainsi que
* frais généraux à partir de n’importe quel mods de programme. Comportement passé y a aucune garantie d’avenir
* performance. Votre kilométrage peut varier. Fusible lumineux et vous échapper.
*
* Cela pourrait utiliser un certain nombre d’améliorations :
* Ajoutez le code à permettent au programmeur de spécifier combien de fois la mélodie devrait
* boucle avant de s’arrêter
Ajouter des autre octave
* DÉPLACER le tempo, pause et rest_count aux instructions #define
* Ré-écrire inclure le volume, à l’aide d’analogWrite, comme pour le programme de second
* http://www.arduino.cc/en/Tutorial/PlayMelody
Ajouter des code pour faire le tempo peut être définie par pot ou autre périphérique d’entrée
Ajouter des code pour tirer le tempo ou volume réglable de communication série
* (Nécessite 0005 ou supérieur.)
Ajouter des code pour créer un décalage de tonalité (supérieur ou inférieur) par le biais de pot etc.
* REMPLACER mélodie aléatoire avec l’ouverture des bars à « Smoke on the Water »
* /

Articles Liés

DIY haut-parleurs Kit Spring Reverb

DIY haut-parleurs Kit Spring Reverb

Vous avez toujours voulu recréer cette Reverb à ressort classique la manière démodée ?Nous avons fait un système super simple avec le Kit d'enceintes DIY et quelques autres éléments pour créer une version LoFi génial.Étape 1: Ce que vous aurez besoin
Vélo haut-parleurs avant et arrière, face à de vieux haut-parleurs d’ordinateur avec Bluetooth ajouté.

Vélo haut-parleurs avant et arrière, face à de vieux haut-parleurs d’ordinateur avec Bluetooth ajouté.

La mission : créer un système de haut-parleurs de petit budget avec bon volume pour surmonter le bruit routier. De plus ma femme est habituellement vélo derrière moi donc il doit être assez fort pour qu'elle puisse entendre aussi.Etape 1: Le vélo en
Re-mousse votre vieux haut-parleurs

Re-mousse votre vieux haut-parleurs

au cours des dernières années il m'est arrivé de courir à travers de haut-parleurs ruines plus souvent que nous ne le pensez. J'adore ces vieux lourds et énormes noirs haut-parleurs typique des années 90. J'ai obtenu cette paire gratuite, j'ai décidé
Plaque de mousse de styrol haut parleur

Plaque de mousse de styrol haut parleur

Bonjour mon nom est Frank Davis. J'aime ce projet et j'ai pensé qu'il serait intéressant de partager avec tout le monde comment il fonctionne et comment il le construire. Si vous avez des questions lors de la construction juste poster ci-dessous et j
Réparation haut-parleur adhésifs mousse

Réparation haut-parleur adhésifs mousse

Heymon enceinte centrale (JBL) est âgé de 10 ans, la mousse adhésifs est sec et a commencé à s'effriter.J'ai commandé sur eBay un kit pour les remplacer, m'a pris 30 min et c'est fait.1. mesurer le diamètre extérieur / intérieur de l'enceinte et de c
Comment faire un haut-parleur

Comment faire un haut-parleur

Hey tout le monde !Avez-vous déjà demandé comment créer sons des haut-parleurs à votre téléphone ou votre casque ? Il peut sembler compliqué, mais en fait, c'est assez simple, et vous pourriez même faire votre propre haut-parleur avec certains matéri
AMMO Box haut-parleurs

AMMO Box haut-parleurs

cette instructable démontrera comment transformer une boîte de munitions de calibre.50 dans une douce paire d'enceintes qui peut être utilisé avec votre lecteur mp3, ordinateur portable ou tout autre appareil portable.Cet ensemble de haut-parleurs es
Vache mini haut-parleur USB rechargeable

Vache mini haut-parleur USB rechargeable

Ce haut-parleur mini vache est d'abord conception un projet pour développer mes compétences de conception de produit. Il aurait été formidable de développer ce projet et le transformer en un produit commercialisable, mais pour l'instant, cela reste u
Haut-parleurs Bluetooth steampunk

Haut-parleurs Bluetooth steampunk

ma femme voulait un haut-parleur Bluetooth pour Noël et je voulais lui obtenir une unité de sondage bon, mais ceux qui coûtent environ 200,00 $ ou plus. Notre budget de Noël personnel mutuel ne couvre pas que, jusqu'à ce que j'ai fait ? J'ai construi
Comment faire pour supprimer une grille de haut-parleur stéréo non amovible

Comment faire pour supprimer une grille de haut-parleur stéréo non amovible

nous savons tous la frustration : haut-parleurs stéréo parfaitement bien, la qualité se gâtent ou endommagées.Et surtout ces haut-parleurs étanches tout-à-commune qui ne permettent absolument aucun accès, de la calandre, ni le panneau arrière.Eh bien
Haut-parleurs à rayures

Haut-parleurs à rayures

Ayant récemment (ish) créé moi-même avec un nouvel amplificateur et système médiatique, je voulais une paire d'enceintes qui étaient plus agréable à écouter, mais également une pièce de mobilier autant que toute autre chose. le long de la côté que j'
Haut-parleur mobile épique de DJ S.M.I.L.E/

Haut-parleur mobile épique de DJ S.M.I.L.E/

!!!!!!! N'OUBLIEZ PAS DE VOTER DANS LE COIN EN HAUT À DROITE ! TOUT SOUTIEN AIDE!!!Il est DJ S.M.I.LE.!!! Cette chose est assez amusante. C'est une sorte de haut-parleur mobile, et je ferais probablement une bonne alarme.Le piritually signifie petit,
Tissé papier coupe haut-parleur

Tissé papier coupe haut-parleur

La bobine électromagnétique de cette enceinte est à la fois la membrane qui vibre pour rendre le son que vous entendez. Tissé sur un métier à tisser circulaire faite de gobelet en papier, cet orateur n'est certainement pas très efficace, ni très fort
Système sain de haut-parleur portatif Bike

Système sain de haut-parleur portatif Bike

Il y a beaucoup d'options pour les systèmes audio portables, mais aucun qui correspondent à mes besoins uniques. J'avais besoin d'un système de sonorisation portable qui pourrait :D'être fort. J'ai besoin d'un système qui pourrait projeter clairement