Contrôleur DJ USB bricolage (7 / 16 étapes)

Étape 7: Firmware

Remarque : Sur cette étape, j’ai joint autonome code de démonstration pour la molette et de la communication MCP3008 SPI comme référence. C’est le code de barebones pour chaque type d’entrée. C’est incroyable de voir comment il n’y a aucun tutoriels pour utiliser le MCP3008 avec Arduino ou Launchpad ! Je ferai une Instructable juste pour expliquer cela...

Comme indiqué précédemment, ce projet a deux microcontrôleurs différents qui gèrent des différents contrôles dans le circuit. Le microcontrôleur primaire est responsable de la lecture d’entrée de 6 des contrôles analogiques, 5 boutons de lecture, interprétant l’encodeur rotatif et son bouton poussoir intégré et données série passant le microcontrôleur secondaire à l’ordinateur. Le microcontrôleur secondaire est responsable de la communication de SPI avec le convertisseur analogique-numérique de MCP3008 et interprétation d’entrée du circuit du clavier (qui comprend le clavier, l’interrupteur de pont et le commutateur de mode). Ces ICs travaillent main dans la main pour nous donner un large éventail de contrôles !

Vous allez avoir besoin de quelques petites choses à programmer les microcontrôleurs.

Matériaux :

Se mettre en place

Si vous n’avez pas utilisé/installé par défaut IDE (Studio de TI Code compositeur) pour programmer votre Launchpad avant, vous devez obtenir les pilotes pour le tremplin avant que votre ordinateur va « voir » elle. Pour obtenir l’installation initialement à l’aide de Energia, suivez ce guide. Si c’est votre première fois à l’aide de Energia, je recommande téléchargeant un couple de leurs programmes de démo super simple tout d’abord et essayer tout ça. Il est très facile et ne prend pas beaucoup de temps, je vais attendre !

Quand tu rentreras de cela, nous avons besoin d’installer la bibliothèque de clavier. Il est écrit pour Arduino, mais il travaille avec Energia aussi. Pour installer la bibliothèque, trouver votre dossier de Energia (habituellement dans les Documents) et extrayez le clavier bibliothèque zip dans le dossier Energia\libraries.

Assurez-vous que vous avez Energia configuré pour programmer un MSP430G2553 sur un tableau de bord, et que vous devez la sélectionner de port COM correcte. Suivez le guide ci-dessus pour mettre en place et de télécharger un programme de démonstration afin que vous sachiez que ça marche !

Energia doit être tous sur programme maintenant !

Comprendre le protocole

Les microcontrôleurs communiquent avec l’ordinateur en utilisant un protocole personnalisé que j’ai fait. Il utilise seulement deux octets (16 bits) messages pour indiquer les informations d’ordinateur sur tous les contrôles. C’était dans le but de réduire toute latence possible et juste de pratiquer mes compétences en mathématiques au niveau du bit. Notez que les données brutes de série ne soient pas humaines lisible le moins du monde ! Une explication du protocole est incluse dans cette section pour que vous puissiez comprendre comment tout le code fonctionne mieux. Vous n’avez pas à lire cette section, mais il peut vous aider si vous souhaitez modifier ce projet.

Format général

Le format général pour tous les messages est comme suit :

[00000] | [0] | [0000000000]

ID Num | Type | Valeur

Le numéro d’identification nous dit quel contrôle a envoyé le message. Le type nous dit si c’est un appareil photo numérique (0) ou analogique (1) commande. Et la valeur n’est qu’un espace pour le contrôle de mettre quelque message qu’il doit envoyer.

Analog

Les messages analogiques sont super simples. Ils sont mis en forme comme suit :

[00000] | [1] | [0000000000]
ID Num | Type | 10-bit ADC valeur

Semblera familier ? C’est parce que c’est exactement la même chose qu’un message général, seul bit type sera toujours un 1 pour commandes analogiques. Les convertisseurs a/n que nous arrive d’être à l’aide de valeurs de sortie 10 bits, comment commode !

Digital

Le format des commandes numériques exactement comme les contrôles analogiques, excepté bit type sera toujours un 0 pour commandes numériques. La valeur est simplement une valeur booléenne, le dernier morceau sera un 1 (pour high digital) ou un 0 (pour « low » numérique).

Clavier

C’est où il commence à devenir un peu plus compliqué. Le clavier doit communiquer plusieurs valeurs différentes afin de fonctionner correctement. Pour cette raison, ses messages sont formatés comme suit :

[00000] | [0] | [0000] | [00] | [0] | [00]

Numéro d’identification | Type | Key ID | Marche/arrêt | Mode | Pont | S’en fout

Le clavier sera toujours un contrôle numérique (type = 0). Le numéro d’identification de 0 est réservé pour l’entrée de clavier donc les 6 premiers bits sera toujours [000000] pour les messages de clavier. Les quatre bits sont le numéro d’identification de la clé. Puisque nous avons un clavier à 12 touches, nous utilisons des numéros d’ID 0 à 11. Toutefois, les numéros restants peuvent être utilisés pour d’autres choses, étant donné que le matériel ne recevront jamais eux comme entrées. J’ai décidé d’utiliser le numéro d’identification de clé 15 pour indiquer le pont changer les commandes (envoyés lorsque le commutateur de pont est retourné). Cela nous permet de mettre le pont actif et PFL avec le sélecteur de pont. Le bit suivant nous dit juste si le bouton est enfoncé (sur) ou relâché (off). Les bits de deux suivants représentent le mode sélectionné. Il varie de 0 à 2 (donc nous avons besoin de deux bits pour représenter le mode). Le bit suivant représente la platine choisie, pont 0 ou 1 de pont. Les deux derniers bits que nous ne se soucient et ils ne sera pas être interprétés.

Encodeur rotatif

La molette n’est pas aussi compliquée, mais notez qu’il a aussi un numéro d’identification réservé 1 à commandes numériques. Les messages de molette sont mis en forme comme suit :

[00001] | [0] | [00] | [0] | [0000000]

Numéro d’identification | Type | Valeur | Super Vitesse | S’en fout

Le numéro d’identification de l’encodeur rotatif sera toujours 1 et le type sera toujours 0. La valeur a trois significations différentes, 0 signifie rotation vers la droite, 1 signifie rotation vers la gauche et 2 signifie un double-clic, 3 n’est pas utilisé. Les derniers bits 7 que nous ne se soucient et ils ne sera pas être interprétés.

C’est tout là est à lui ! Le protocole n’est vraiment pas difficile à comprendre. Et c’est un bon moyen de pratiquer les compétences en mathématiques au niveau du bit et étirer les limites sur comment petit format, vous pouvez obtenir les paquets de données. J’ai décidé d’utiliser les 5 bits pour le numéro d’identification afin que le protocole peut supporter jusqu'à 32 entrées numériques et 32 entrées analogiques (5 ^ 2 = 32).

Articles Liés

Faire votre propre clavier ou contrôleur MIDI USB pas cher

Faire votre propre clavier ou contrôleur MIDI USB pas cher

Je cherchais un périphérique contrôleur USB MIDI (ou interface) pour les applications de musique comme le clavier de piano ou orgue ou pédalier. Après quelques recherches, j'ai voulu aller vers une solution plus « fait maison ». Mon choix a été final
Contrôleur DMX USB Pro et terminator pour QLC +

Contrôleur DMX USB Pro et terminator pour QLC +

Aujourd'hui, je veux partager avec vous comment faire un contrôleur de USB DMX professionnel cherche à utiliser avec le logiciel de contrôle tels que QLC + l'éclairage. Dans environ 5 à 10 minutes et environ 35 $ en pièces et d'expédition.Ce projet p
Contrôleur MIDI USB teensy pour contrôler Mobius Looper

Contrôleur MIDI USB teensy pour contrôler Mobius Looper

Motivation :Jouer dans un groupe de 2 pièces, avec les tambours et beaucoup d'autres échantillons en cours de lecture comme playbacks, il fallait utiliser un looper pour ajouter en plus d'éléments de la voie ferrée. Un looper temps basé ne parvient p
Contrôleur de moteur bricolage MOSFET

Contrôleur de moteur bricolage MOSFET

Il s'agit d'un simple pour construire le contrôleur de moteur. Il est pratique pour de nombreux projets à l'aide d'un moteur commandé par un microcontrôleur. Il peut être utilisé comme un contrôleur électronique de vitesse (ESC) et exerce un contrôle
Original Xbox contrôleur d’USB Joystick

Original Xbox contrôleur d’USB Joystick

c'est mon premier ! instructable ! Oui!!!maintenant, je sais il est un peu daté... mais j'ai toujours l'utiliser parce que... Eh bien ça marche et c'est assez facileet comme tout bons instructables il apporte la vie à quelque chose qui n'est plus uti
Contrôleur MIDI USB

Contrôleur MIDI USB

J'ai commencé ce projet en raison de mon amour avec la musique. Je peux jouer divers instruments, mais je suis juste de commencer avec la production musicale. Quelque chose que je pensais était utile sont un contrôleur MIDI qui que j'utiliserais pour
Contrôleur de LED bricolage débutants (

Contrôleur de LED bricolage débutants (<> </>

Vous avez toujours voulu une matrice de LED changeant de couleur au-dessus de votre lit ou dans votre salon ? Vous voulez faire vos propres lumières de Noël ? Vous souhaitez contrôler exactement comment vos LEDs vont se comporter ? Ai une automatique
Comment faire pour configurer un contrôleur USB NES avec NESTOPIA sur le PC

Comment faire pour configurer un contrôleur USB NES avec NESTOPIA sur le PC

NESTOPIA jouer n'est pas la même chose sans un contrôleur NES USB. Dans ce tutoriel, vous apprendrez comment les boutons map et mettre en place la manette NES USB.
Contrôleur de moteur Arduino Lego EV3 enregistrer 45 $

Contrôleur de moteur Arduino Lego EV3 enregistrer 45 $

En faisant un contrôleur de moteur bricolage lego ev3Étape 1: Intro J'ai un kit appelé le lego mindstorms EV3 c'est un incroyable robotique de 349 $ kit qui vraiment est simple à construire comme lego, mais dispose de fonctionnalités vraiment génial
Teensy Monster v1.0 / / bricolage contrôleur MIDI

Teensy Monster v1.0 / / bricolage contrôleur MIDI

Bienvenue sur le monstre Teensy Instructable !Ce Instructable vous aidera à monter votre monstre Teensy, comprendre comment le programmer et fournir de nombreux conseils pour la création d'un contrôleur de bricolage grand.teensymonster.ccAcheter votr
Un cadre pour créer des contrôleurs modulaires abordables & élégants (USB vers MIDI, caché, ou série)

Un cadre pour créer des contrôleurs modulaires abordables & élégants (USB vers MIDI, caché, ou série)

***J'AI CRÉÉ UN NOUVEAU POUR INSTRUCTABLE CONTRÔLEURS DE BRICOLAGE :**************************************************************************************************************************************************************************************
Faire un contrôleur de jeu USB

Faire un contrôleur de jeu USB

Ici à NextFab, nous avons conçu une fonctionnelle complète, contrôleur de jeu USB pour Philly Tech Week. Ce projet sera particulièrement délicat sans certains équipements électroniques plus grave ou un makerspace local avec les outils appropriés, mai
Ajouter contrôleur de jeu USB pour Arduino Leonardo/Micro

Ajouter contrôleur de jeu USB pour Arduino Leonardo/Micro

Remarque importante : Cet article est pour Arduino IDE version 1.6.5 (ou au-dessous). Pour ajouter un contrôleur de jeu USB un Arduino Leonardo ou le Micro à l'aide de l'IDE Arduino version 1.6.6 (ou supérieur) Voir l'Instructable suivant : Arduino L
Contrôleur USB NES avec un arduino !

Contrôleur USB NES avec un arduino !

MISE À JOUR 22/12/2014Mattpbooth utilisateur Instructables a mis à jour le code et il héberge sur github :https://github.com/mattpbooth/ArduinoNESController...Merci Matt !MISE À JOUR 12/03/2011Remplacé un println avec impression (PEEM).MISE À JOUR 12