TapTunes - une Interface Tap à iTunes

dans le cadre de mon projet à terme Human-Computer Interaction, je fouette un petit programme qui permettrait aux utilisateurs de contrôler iTunes en cliquant sur les différents modèles sur un capteur piézoélectrique.  La base de ce projet était le KnockSensor tutoriel disponible sur le site d’Arduino.  Ce tutoriel a été ensuite étendu pour répondre aux exigences requises par le système.

Mon système est composé des éléments suivants :
• 1 Arduino (celui utilisé est un Arduino Mega 2560)
• 1 capteur piézoélectrique
• 1 méga ohms résistance
• Maquette contenant 3 LEDs
• 1 câble USB A-to-B
• 1 ordinateur portable sous Visual 2010 Studios et iTunes

La résistance 1Mega-ohms est présente pour empêcher le capteur piézoélectrique d’endommager le port d’entrée de l’Arduino.  Les LEDs permettent d’obtenir de l’utilisateur.  Le voyant orange clignote lorsque l’utilisateur clique sur le capteur, montrant ainsi que le système enregistre activement l’eau du robinet.  La LED rouge clignote lorsque l’utilisateur clique sur un modèle qui n’est pas reconnu.  De même, la LED verte clignote lorsque le motif d’une utilisation de robinets est acceptée par le système.
Le système utilise tant est alimenté par un câble USB reliant l’Arduino et l’ordinateur portable.

LOGICIEL (ARDUINO)

Le logiciel qui s’exécute sur l’Arduino est une version édulcorée du C++, inspirée par le langage de programmation de traitement.  Il a été écrit à l’aide de l’IDE Arduino standard qui est disponible en ligne.

Le programme est relativement simple.  Le système contient un tableau des modèles de robinet stockée qui peut être mis en correspondance.  Le système tourne en boucle, attendez le premier robinet être détectée.  Une fois que cela se produit, le système marque l’heure actuelle et attend le prochain robinet.  Pour chaque robinet consécutive, le système stocke l’intervalle de temps entre elle et le robinet précédent.   Ce processus se poursuit jusqu'à ce que le nombre maximal d’entailles est dépassé, ou aucun robinet n’a été détecté pendant une seconde.  Les robinets sont ensuite normalisées.  Cela permet pour robinets joué différents tempos pour être mis en correspondance avec le même modèle.  Normalisation est effectuée en divisant chaque intervalle stockée par l’intervalle plus long et en multipliant par 100, transformant ainsi chaque intervalle à un entier compris entre 1 et 100.

Les modèles de robinet ont trois critères majeurs pour répondre si ils sont censées correspondre à un modèle stocké :

1. les deux modèles doivent contenir le même nombre d’entailles
2. un intervalle de l’utilisateur ne peut pas s’écarter de plus de 25 % par rapport à l’intervalle correspondant stockée
3. la moyenne de tous les intervalles ne peut s’écarter de plus de 15 % par rapport à la moyenne des intervalles stockées.

Si toutes ces conditions sont réunies, le système accepte le modèle.  Le système transmet ensuite l’index de ce modèle comme un seul octet par la connexion série fournie par le câble USB à un programme d’écoute en cours d’exécution sur l’ordinateur portable (dans notre cas, un programme c# interfacé avec iTunes).  Une fois l’octet a été transmis, le système retourne en attente pour un nouveau modèle de robinet utilisateur.

Les modèles de robinet actuellement mis en œuvre sont :

• Un seul robinet
• Deux robinets
• Trois robinets uniforme
• Quatre robinets uniforme
• Un robinet lent suivi par deux robinets rapides
• Deux robinets rapide suivies d’une lent robinet
• Le modèle « Rasage et une coupe de cheveux, deux Bits »

Cette liste de motifs est facilement personnalisable et extensible, une fois qu’on devient familier avec la façon dont les modèles sont représentés.

LOGICIEL (ORDINATEUR PORTABLE)

J’ai choisi d’écrire l’application portable-côté en c# parce que j’ai eu précédente femme victime écrit des interfaces personnalisées avec Arduinos en c#.  Cela pourrait facilement être implémenté dans d’autres langues, aussi longtemps que le langage prend en charge la communication série via les ports COM.

Le programme c# utilise cadre XNA de Microsoft qui, bien que normalement utilisé pour développer des jeux, fournit un flux de programme nice, axée sur la boucle pour interfaçage avec Arduinos et d’afficher une interface utilisateur de visual.

Le programme commence ouvre une connexion série pour l’Arduino et la création d’une interface d’iTunes.  Une fois que celles-ci sont établies, le programme interroge sans cesse la connexion série d’octets.  S’il y a des octets qui seront lus, le programme lit chacun sous forme d’entier et exécute la commande correspondante.  Par exemple, si l’octet contenue le chiffre 1, le programme bascule si iTunes est en lecture ou en pause.  Puisqu’un byte contient 32 valeurs, un total de 32 commandes individuelles peut être émis de l’Arduino au programme c#.  Dans cette démo de base, seulement six commandements sont effectivement mises en œuvre.

Les numéros reçus, commandes et modèles associés sont les suivants :

0. activer/désactiver des visualisations – « Rasage et une coupe de cheveux, deux Bits »
1. Lecture/Pause – un robinet de basculer
2. la prochaine chanson – deux robinets
3. précédente chanson – trois robinets uniformes
4. avance rapide – un seul robinet lent suivi par deux robinets rapides
5. rewind – deux robinets rapides suivies d’une lent robinet
6. activer/désactiver shuffle – quatre robinets uniformes

C# interfaces avec iTunes par le biais de son API COM.  Mon programme affiche également un GUI de base qui fournit des informations sur l’état d’iTunes, la position au sein de la chanson en cours et de la piste en cours nom, artiste et album.

Mots clés: Arduino

Articles Liés

PC sous contrôle Robot Bluetooth (avec une interface graphique utilisateur!)

PC sous contrôle Robot Bluetooth (avec une interface graphique utilisateur!)

Dans ce Instructable je vais vous montrer comment construire un robot qui est contrôlé par l'intermédiaire de Bluetooth à l'aide d'un clavier, dispose d'une interface utilisateur graphique construite avec traitement qui affiche l'entrée au clavier et
Début microcontrôleurs partie 2: Création d’une Interface SPI du programmateur au microcontrôleur

Début microcontrôleurs partie 2: Création d’une Interface SPI du programmateur au microcontrôleur

Bonjour, nous espérons que vous avez apprécié la partie 1 de début de microcontrôleurs. Nous allons avancer dans la partie 2 et de commencer à parler sur les interfaces et comment obtenir votre microcontrôleur pour communiquer avec un ordinateur.Donc
Cubecube : Une Interface Tangible CAD.

Cubecube : Une Interface Tangible CAD.

Cubecube - un projet open source hardware - est une interface tactile tangible pour la CAO (conception assistée par ordinateur.) Design open source plateformes continuent d'émerger, il est l'occasion d'explorer de nouvelles possibilités dans la façon
Chauffage avec VSCP et une interface web de la maison

Chauffage avec VSCP et une interface web de la maison

Mes parents sont retraités et vivent dans le sud de la France. Chauffer pendant l'été, mais il peut aussi être froid en hiver.Ils utilisent pour voyager pendant plusieurs semaines au cours de l'hiver pour visiter des amis et famille, et qu'ils chauff
Aligner le Treo 650 USB pour charg, juste une seule étape !

Aligner le Treo 650 USB pour charg, juste une seule étape !

Ligne USB Treo 650 pour charg, juste une seule étape ! Pas besoin de soudure.Oui, juste une étape pour le faire.veuillez regarder l'image.J'ai mis un fil pour relier ces deux point marqué. Soudage ou pas de souder que les deux fonctionnent bien.
Arduino contrôlée stores automatisés avec une interface utilisateur Web

Arduino contrôlée stores automatisés avec une interface utilisateur Web

cette instructable est un guide détaillé sur la façon de construire un contrôleur automatisé pour exécuter un moteur pouvant fonctionner à l'ouverture et la fermeture des stores. Le contrôleur permet les blinds ouvrir et fermer basé sur un calendrier
DIDI : Une Interface MIDI portable pour une utilisation DJ

DIDI : Une Interface MIDI portable pour une utilisation DJ

Arrière-planDIDI a été mon projet de dernière année de mon baccalauréat en technologie musicale et électronique appliquée à l'Université de York. Mon défi était de créer une pièce de musique portable technologie. Ayant eu quelque expérience avec DJ d
AVRSH : Une interface d’interprète de commande pour Arduino/AVR.

AVRSH : Une interface d’interprète de commande pour Arduino/AVR.

Jamais voulu être « connecté » à votre Microcontrôleur AVR ? Jamais pensé que ce serait cool de « chat » un registre pour voir son contenu ? Avez-vous toujours voulu un moyen d'allumer et éteindre les différents sous-systèmes périphériques de votre A
Une Interface Cool pour Youtube

Une Interface Cool pour Youtube

dans ce Instructable je vais vous montrer comment créer un cool GUI (Graphical User Interface) pour Youtube. Cela pourrait faire des vidéos youtube à charger plus rapidement.J'ai joint les vidéos WMV pour vous montrer comment procéder.Le Code HTML a
ATTiny USI I2C Introduction - une interface de communication puissant, rapide et pratique pour vos projets ATTiny !

ATTiny USI I2C Introduction - une interface de communication puissant, rapide et pratique pour vos projets ATTiny !

I2C, il s'agit d'une norme qui existe depuis environ 20 ans et a trouvé des utilisations dans presque tous les coins de l'univers électronique.  C'est une technologie incroyablement utile pour nous amateurs de microcontrôleur mais peut sembler intimi
Comment faire pour ajouter une illustration à une piste d’iTunes ?

Comment faire pour ajouter une illustration à une piste d’iTunes ?

Si vous souhaitez ajouter une pochette d'une chanson ou une vidéo qui n'en avez pas dans votre bibliothèque iTunes, c'est facile : il suffit de suivre ce guide.Vous pouvez également suivre ce lien pour en savoir plus sur comment faire pour automatiqu
Tourner trois mailles de Quads en une seule étape

Tourner trois mailles de Quads en une seule étape

Facilement retopologize, convertir les visages de polygone en triangles ou quadrangles, décimer et tourner trois mailles de quads pour Fusion, Maya, 3ds Max, Mudbox, etc. en utilisant le programme gratuit Memento .Une fois Memento est installé, il su
Une simple étape de faire revivre une morte batterie Ni-MH

Une simple étape de faire revivre une morte batterie Ni-MH

SalutIl s'agit de mon premier instructable. Dans ce instructable je vais montrer à tous comment faire revivre une pile déchargée (signifie la batterie ne se charge pas et affiche lecture 0V).Quelques deays dos j'ai acheté un pack de batterie Ni-MH de
Web page de grattage avec une interface graphique.

Web page de grattage avec une interface graphique.

Jusqu'à présent, nous avons fait page web grattage via la ligne de commande avec et puis nous l'avons fait avec le web avec. Maintenant nous allons le faire sur le bureau. Je le ferai un exemple et vous pouvez comprendre le reste d'entre eux. Nous al