YEAAAUGH, WHHAT ? OKKKAY ! Lil Jon Easy Button (3 / 4 étapes)

Etape 3: Comment ça marche :

J’espère que vous avez un travail Lil Jon Button maintenant. Vous pourriez être intéressé par la façon dont le code fonctionne, donc je vais vous expliquer quelques sections. Étant donné que le code est assez long, je ferai seulement référence aux sections séquentiellement.

Tout d’abord, voici un tas de comprend. Bien sûr, il y a celles pour le processeur, ainsi que certaines bibliothèques standards. Ce qui est important qu'ici, c’est l’en-tête des fichiers qui correspondent aux échantillons. Il s’agit d’un moyen pour facilement charger les données de votre ordinateur dans le microcontrôleur au moment de la compilation. J’ai écrit un script MATLAB qui peut lire les fichiers .wav et déclare un grand tableau par exemple :
int mydata [] = {1, 2, 3, 4} ;

Il y a la section :
__attribute__((__interrupt__)) void _T2Interrupt (void)
{

Il s’agit de l’interruption Timer 2, qui pousse le PWM. Un PWM (modulateur de largeur d’impulsion) génère une forme d’onde analogique-de-tri en modifiant rapidement le rapport cyclique d’une forme d’onde de pouls. C’est parce que les sorties du microcontrôleur peuvent générer uniquement une logique 0 (qui est sous tension au sol) ou un 1 logique (c'est-à-dire à la tension de la batterie). Si nous voulons dire, rapprochant une tension à mi-chemin entre celui, nous pouvons utiliser le PWM pour tourner sur la broche de la moitié du temps et le couper la moitié du temps. Aussi longtemps que cela est fait très rapidement, nous pouvons rapprochant la tension assez bien à ressembler à l’onde originale.

La fonction T2Interrupt est un gestionnaire d’interruption pour Timer 2. Cela signifie essentiellement que le PWM a besoin d’un autre échantillon, alors nous avons lu un autre échantillon de la mémoire programme et farcir dans le registre OC1RS. C’est comment PWM sait quelle tension de rapprocher pour la prochaine fois de l’échantillon.

__attribute__((__interrupt__)) void _CNInterrupt (void)
{

Cette section est un gestionnaire d’interruption pour la notification de modifications. La notification de modifications lève une interruption (autrement dit, exécute la fonction ci-dessus) en tout temps une des broches vous avez activé l’état de changements (goes haut -> bas ou vice versa). Voilà comment nous détecter l’interrupteur enfoncé. Notez que nous pourrions interroger ici, mais la notification de modifications périphérique fonctionne même lorsque le microcontrôleur est endormi, ce qui nous permet d’économiser beaucoup d’énergie. Ce que nous faisons ici dépend de la question de savoir si un son joue déjà. Si un son joue déjà et nous sommes dans la première 375ms de l’échantillon, il se réinitialise tout simplement l’index de l’échantillon (ce fait redémarrer la lecture au début du même échantillon). Si il n’y a aucune lecture du son, ou nous sommes passé le premier 375ms, nous allons au hasard choisir un nouveau son sur les 10 et qui jouent. Cela permet à la Lil Jon Button de répéter le même échantillon, mais ont encore suffisamment comportement aléatoire pour être intéressant (p. ex. Ya-Ya-Oui ! OK!).

Sub setupHS()
Sub setupCN()
Sub setupPWM()

Voici quelques fonctions de configuration. C’est assez compliqué et vous sont les meilleurs pour consulter la fiche technique pour exactement ce qui se passe ici. Qu’il suffise de dire la première définit la place de l’horloge processeur à 66,33 Mhz, le met en deuxième place la notification de modifications et le troisième set up le PWM. Pour votre référence, la feuille de données peut être trouvée ici :
http://www.Microchip.com/wwwproducts/Devices.aspx?dDocName=en532296

Enfin la :
int main ()
{

Ce qui est de la boucle principale. Code commence à s’exécuter ici, donc la première chose qu’il fait est mises en place les périphériques. Puis la boucle principale n’est pas tellement un tas. Il fondamentalement juste attend pour un peu et se met en veille. Tout le travail qui se passe parce que les interruptions ci-dessus ont été enregistrées, alors quand quelque chose a besoin d’attention (par exemple le PWM doit l’échantillon suivant), l’interruption correcte s’appellera automatiquement. En général lorsque le microcontrôleur se met en veille, aucun code n’est exécuté. Toutefois, étant donné que la notification de modifications périphérique a été activée, une pression sur le bouton entraîne le microcontrôleur se réveille et immédiatement cette interruption de service et commencer à jouer un échantillon.

Note finale :
Un ingénieur attentif pourrait demander, pourquoi n'avez-vous pas utilisé la fonction DAC du micro-contrôleur ? En fait, le dsPIC33FJ128GP802 a un DAC audio qui est conçu pour ce genre de chose. La raison est de simplifier la conception. Avis que, pour fonctionner un haut-parleur sur un PWM, la seule chose qui est nécessaire est unique digital switch (un BJT dans ce cas aucune résistances de polarisation). Si au contraire la sortie était un DAC, un amplificateur linéaire fait de transistors (avec des résistances supplémentaires) ou un ampli-op serait nécessaire. Ceci augmente considérablement la complexité de la conception et le comte de la partie. Notez que les formes d’onde d’entrée sont tout simplement des fichiers audio 8kHz 8 bit, donc une pleine qualité CD DAC est excessif en termes de qualité audio, mais augmente la dépense globale.

Autre remarque finale :
Plage de tension de la dsPIC33FJ128GP802 est seulement 3.0-3.6V. J’ai observé qu’il s’exécute à environ 2.8V sans problème avec ce code, mais la stabilité ne peut être garantie à long terme. Je vous recommande si vous êtes à expérimenter avec le code à utiliser des piles au lithium AAA: http://www.amazon.com/Energizer-Ultimate-L92BP-4-Lithium-Battery/dp/B0002DUQDQ . Ils soutiennent 1.5V pour beaucoup plus longtemps que les piles alcalines AAAs.

Edit : problème résolu en utilisant PIC18, qui descend jusqu'à 2V

Articles Liés

Enregistrez votre propre message sur Staples Easy button

Enregistrez votre propre message sur Staples Easy button

J'ai vu quelques autre web postes sur la façon de modifier le bouton agrafes facile pour jouer votre propre message, mais maintenant que Radio Shack a fermé, certains de ces postes ne sont plus valides.Une autre méthode nécessaire d'avoir une pile de
DIY « quelque chose » Staples Easy Button (enregistrement vocal)

DIY « quelque chose » Staples Easy Button (enregistrement vocal)

Le bouton agrafes « Facile » est déjà un élément de bureau classique, mais il serait beaucoup plus amusant si il dit tout ce que vous le souhaitez. Je sais que certaines personnes ont déjà fait des hacks comme ça, mais c'est moins cher que la plupart
Les Easy Button USB

Les Easy Button USB

ces Boutons faciles d'agrafes sont impressionnants, mais ils ont un petit défaut : ils ne font rien d'utile. Mon but est de changer cela.Je vais construire un bouton facile d'USB. J'ai trouvé la plupart tout ce que j'avais besoin de projet de jro et
Z-Wave Easy Button

Z-Wave Easy Button

J'ai créé ce bouton facile Z-Wave pour ajouter un contrôle grand, facile à utiliser, portable à mon réseau de domotique SmartThings. Avec un simple bouton, un capteur de porte et quelques bidouillages relativement facile, j'ai un bouton qui me permet
Faire un simple Tweet Button the Hard Way

Faire un simple Tweet Button the Hard Way

il existe plusieurs façons de faire un tweet de microcontrôleur. Les méthodes faciles sont bien couvertes en autres instructables.Connectez-le à un ordinateur exécutant un python script ou similaire.Connecter à un routeur piraté (nice - vous savez qu
La dernière version de Staples « Easy » bouton de piratage et de construire un outil de relance de l’activité physique simple

La dernière version de Staples « Easy » bouton de piratage et de construire un outil de relance de l’activité physique simple

Je suivais cette instructable entailler le Staples Easy Button et de créer un outil qui me rappelle toutes les 15 minutes d'être physiquement actifs. Le bouton que j'ai acheté chez Staples avait des circuits internes qui était quelque peu différente
Un fabricants de mariage - Photo booth

Un fabricants de mariage - Photo booth

ce Instructable est sur :la construction d'un stand photo automatique. Le coût de construction total était d'environ 150 $ que j'ai réutilisé beaucoup des composants et des matériaux, j'avais déjà dans mon garage - en plus de ce que je pourrais récup
Système de Buzzer de Quiz Show à l’aide d’agrafes bouton facile

Système de Buzzer de Quiz Show à l’aide d’agrafes bouton facile

**mise à jour** il est venu à mon attention que le jury du courant Staples easy button a changé au cours des années et n'est plus le même que celui que j'ai utilisé pour ce Instructable retour en 2009. Due à la fois aux contraintes de temps et le fai
Rendre un bouton facile d’agrafes (tm) contrôle votre ordinateur

Rendre un bouton facile d’agrafes (tm) contrôle votre ordinateur

Ce projet est inspiré par plusieurs hacks Easy Button très créatifs existants que j'ai vu sur Instructables.  Celui-ci est un peu moins cher que les autres.  Il n'est pas sans fil, ni un jeu télévisé et prend un peu plus de travail, mais il obtiendre
Munitions peut haut-parleur folie : La MOAB

Munitions peut haut-parleur folie : La MOAB

AVERTISSEMENT!!! Ce n'est pas votre build de haut-parleur bluetooth tous les jours...Nous avons perfectionné l'art de systèmes audio portables ici dans les laboratoires de 6 vérifier pendant plusieurs années (maison du AmmoAudio.com et notre populair
Quiz-O-Tron 3000 : Système de verrouillage Arduino quiz concurrent

Quiz-O-Tron 3000 : Système de verrouillage Arduino quiz concurrent

Si vous n'avez jamais regardé un quiz télévisé, que vous avez probablement vu des concurrents essayer d'appuyer sur un bouton afin de gagner une chance de répondre à une question. Temps de réaction rapide de l'investiture se traduit par une sorte de
Faire un simple Wireless bouton

Faire un simple Wireless bouton

Ah, les agrafes omniprésents « Bouton facile ».  Il y a autres boutons de la grande coupole, mais le bouton agrafes a la particularité de ne pas avoir un panneau doit être pratiqué à.  Elle a juste un joli fond plat.  Alors pourquoi ne pas libérer en
Le bouton mal : Cela a été mal

Le bouton mal : Cela a été mal

de tromper votre bouton facile d'agrafes pour livrer des phrases personnalisés et ont un nouveau look d'Halloween slick.Ce que vous avez besoin pour ce projet :Un bouton facile d'agrafes (Dure)Un petit appareil d'enregistrement et de lecture~ Mine a
Élargi le vocabulaire simple bouton

Élargi le vocabulaire simple bouton

The Easy Button est disponible chez Staples pour 5 $ et il est simplement dit "c'était facile" chaque fois que vous il claque. Le bouton facile est bien construit pour le prix, mais nécessite un peu de travail et d'environ 10 $ de pièces pour le