Controlador de DJ USB DIY (7 / 16 paso)

Paso 7: Firmware

Nota: En este paso os adjunto independiente código de demostración para el codificador rotatorio y comunicación SPI MCP3008 como referencia. Este es el código de barebones para cada tipo de entrada. Es increíble cómo no hay tutoriales para usar el MCP3008 con Arduino o Launchpad! Puedo hacer un Instructable para explicar esto...

Como se indicó anteriormente, este proyecto tiene dos diferentes microcontroladores que manejan diferentes controles en el circuito. El microcontrolador principal es responsable de leer entrada de 6 de los controles analógicos, leyendo los 5 botones, interpretando el codificador rotatorio y su botón de empuje integrado y pasando datos seriales de microcontrolador secundario a la computadora. El microcontrolador secundario es responsable de la comunicación SPI con el convertidor de analógico a Digital de MCP3008 e interpretación de la entrada del circuito de teclado (que consiste en el teclado, el interruptor de la cubierta y el selector de modo). Estos ICs trabajan mano a mano para darnos una gran variedad de controles!

Vas a necesitar un par de cosas para programar los microcontroladores.

Materiales:

Conseguir establecer

Si no utiliza/instaló el predeterminado IDE (de TI código compositor estudio) para programar su Launchpad antes, usted necesita obtener los controladores para el Launchpad antes de que su ordenador se 'vea'. Para conseguir configurar inicialmente usando Energia, seguir a esta guía. Si es tu primera vez usando Energia, te recomiendo subir un par de sus programas de demo super sencillo primero y probarlo todo. Es muy fácil y no toma mucho tiempo, te esperaré!

Cuando regreses de eso, tenemos que instalar la biblioteca de teclado. Está escrito para Arduino pero también funciona con Energia. Para instalar la biblioteca, busque su carpeta de Energia (generalmente en documentos) y extraer el zip de la biblioteca de teclado en la carpeta Energia\libraries.

Asegúrese de que tiene Energia hasta para programar un MSP430G2553 en un Launchpad y que tiene la selección de puerto COM correcto. Siga la guía anterior para cargar un programa de demostración para que sepa que funciona y configurarlo!

Energia debe ser todo listo para programar ahora!

Comprender el protocolo de

Los microcontroladores se comunican con la computadora usando un protocolo personalizado que hice. Utiliza sólo dos bytes (16 bits) mensajes a la información del ordenador acerca de todos los controles. Esto fue en un intento para reducir cualquier latencia posible y sólo para practicar mis habilidades matemáticas bit a bit. Tenga en cuenta que los datos originales de la serie no están humanos legible en lo más mínimo! Explicación del protocolo está incluida en esta sección para que pueda entender cómo el código funciona mejor. No tienes que leer esta sección, pero puede ayudarle si usted quiere modificar este proyecto.

Formato general

El formato general para todos los mensajes es el siguiente:

[00000] | [0] | [0000000000]

Num de ID | Tipo | Valor

El número de identificación nos dice qué control envió el mensaje. El tipo nos dice si es digital (0) o analógico (1) control. Y el valor es tan sólo un espacio para el control poner cualquier mensaje necesita enviar.

Análogo

Mensajes analógicos son super simples. Están formateados como sigue:

[00000] | [1] | [0000000000]
Num de ID | Tipo | Valor de ADC de 10 bits

¿Buscar familiar? Eso es porque es exactamente lo mismo que un mensaje general, sólo el bit tipo siempre será un 1 para los controles analógicos. La ADCs que pasar a usar valores de 10 bits de salida, qué conveniente!

Digital

Controles digitales formato exactamente como controles analógicos, excepto el bit de tipo siempre será un 0 para controles digitales. El valor es sólo un valor booleano, el último bit será un 1 (para alta digital) o 0 (para bajo digital).

Teclado

Aquí es donde comienza obteniendo un poco más complicado. El teclado debe comunicar varios valores diferentes con el fin de funcionar correctamente. Debido a esto, sus mensajes son formateados como sigue:

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

Número de identificación | Tipo | Key ID | On/Off | Modo | Cubierta | No importa

El teclado será siempre un control digital (tipo = 0). El número de ID de 0 está reservado para entrada del telclado numérico por lo que los primeros 6 bits siempre será [000000] para los mensajes de teclado. El siguiente cuatro bits son el número de identificación de clave. Puesto que tenemos un teclado de 12 botones, utilizamos números 0 al 11. Sin embargo, los números restantes pueden ser utilizados para otras cosas ya el hardware nunca recibe como entradas. Decidí usar el tecla numero 15 para indicar cubierta cambiar comandos (enviados cuando se gira el interruptor de la cubierta). Esto nos permite ajustar la cubierta activa y PFL con selector de la cubierta. El siguiente bit sólo nos indica si el botón fue presionado (a) o liberado (off). Los siguientes dos bits representan el modo que seleccionó. Va de 0 a 2 (por lo tanto necesitamos dos bits para representar el modo). El siguiente bit representa la cubierta seleccionada, cubierta 0 o 1 de la cubierta. Los últimos dos bits que no nos importa y no ser interpretados.

Codificador rotatorio

El codificador rotatorio no es tan complicado, pero tenga en cuenta que también tiene un número de identificación reservado de 1 para controles digitales. Los mensajes de codificador rotatorio están formateados como sigue:

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

Número de identificación | Tipo | Valor | Super velocidad | No importa

El número de identificación del codificador rotatorio siempre será 1 y el tipo siempre será 0. El valor tiene tres acepciones diferentes, 0 significa rotación a la derecha, 1 significa rotación a la izquierda y 2 significa un doble clic, 3 no se utiliza. Los últimos 7 bits que no nos importa y no ser interpretados.

Eso es todo allí está a él! El Protocolo no es realmente tan difícil de entender. Y es una buena manera de practicar habilidades matemáticas bit a bit y estirar los límites sobre cómo pequeñas puede recibir paquetes de datos. Decidí usar 5 bits para el número de identificación para que el protocolo puede soportar hasta 32 entradas digitales y 32 entradas analógicas (5 ^ 2 = 32).

Artículos Relacionados

Hacer que un controlador de NES USB

Hacer que un controlador de NES USB

este tutorial combina un controlador original de NES, USB teclado, alambre y tacto pasa a un controlador de NES USB adecuado para uso con NES y arcade emuladores. La idea básica es que la unidad de controlador de teclado está instalada en el controla
Cómo configurar un controlador de NES USB con NESTOPIA en el PC

Cómo configurar un controlador de NES USB con NESTOPIA en el PC

NESTOPIA jugar no es lo mismo sin un controlador de NES USB. En este tutorial usted aprenderá cómo mapear botones y configurar el controlador de NES USB.
Puntero de láser USB DIY

Puntero de láser USB DIY

Hola y Bienvenidos a mi primera vez Instructable. Este va a ser un proyecto pequeño, así que no esperes demasiado de él. Básicamente va a ser lo que dice el título: un puntero láser pequeño.(Pequeño descargo de responsabilidad: no puedo soldar o util
Receptor IR USB DIY

Receptor IR USB DIY

En este tutorial voy a mostrarte cómo hacer un pequeño, barato (menos de $5) receptor IR USB.El microcontrolador utilizado actúa como un teclado estándar, por lo que debe trabajar en cada equipo.Con este receptor puede usar un mando a distancia para
Controlador de NES USB Flash Drive

Controlador de NES USB Flash Drive

esta es la forma más sencilla para convertir un controlador NES vintage en un simple pendrive en un presupuesto y puede guardar las piezas originales, si alguna vez desea volver a su estado original de trabajo.Paso 1: Reunir las piezas el primer paso
Controlador de SNES USB

Controlador de SNES USB

primer instructable. Me dejan saber lo que necesita y fija.No hago el circuito o programa. Justo estoy haciendo una guía que muestra el montaje paso a paso de cómo hacer el controlador SNES USB. La página original está aquí:www.raphnet.net/Electroniq
Controlador de altavoz rodea DIY

Controlador de altavoz rodea DIY

de un recurso: notas de curso de diseño de altavoz + materiales de vídeoEn el pasado, servicios de reparación de altavoces eran escasos, a menudo costosa y recambio rodea para DIY casi imposible a la fuente. La web ha mejorado esto, rodea está amplia
Controlador de NES USB unidad Flash

Controlador de NES USB unidad Flash

esto es una manera fácil de transformar un controlador de Nes en un práctico pendrive. SIN SOLDADURA INVOLUCRADO!(Este es nuestro primer Instructable así imágenes e instrucciones de aficionado tal vez!)Nuevamente hemos hecho este instructable con mej
Crear un controlador de servos USB 6

Crear un controlador de servos USB 6

Hola, estaba buscando un controlador servo y encontre esto. Pensé que otros como me resultaría interesante para construir. Sin embargo, aún no trate de hacer esto si no tienes conocimiento en circuitboards del edificio. Bassicly es un modelo casero d
Construcción de una controlador de Midi básico parte 1 - 3 fácil olla (potenciómetro) Arduino Uno efectos controlador Midi (serie-USB)... Rápido, fácil y barato!

Construcción de una controlador de Midi básico parte 1 - 3 fácil olla (potenciómetro) Arduino Uno efectos controlador Midi (serie-USB)... Rápido, fácil y barato!

Hola a todos,Soy relativamente nuevo en Arduino y así han estado luchando contra mi manera de hacer mis propios controladores midi. Hay una gran cantidad de información alrededor pero no pude encontrar un tutorial simple para un dispositivo tan simpl
Cómo hacer un ventilador USB | DIY

Cómo hacer un ventilador USB | DIY

Hola, ahí, mis queridos amigos, en este video les mostraré una idea increíble cómo hacer un ventilador usb con sus propias manos, que puede operar desde su ordenador portátil o teléfono.
Cargador del teléfono USB DIY Solar panel

Cargador del teléfono USB DIY Solar panel

Necesita un mosfet KA7805Panel solarrack USBpegamento calientey este mi video (actualización)
Ventilador móvil USB DIY

Ventilador móvil USB DIY

En este tutorial, aprenderás cómo hacer un ventilador USB, que puede ser utilizado con cualquier dispositivo con un puerto USB, incluso con un teléfono móvil.Paso 1: Cosas tendrás necesidad de-1. un cable USB2. un motor de la c.c. (yo tengo la mía de
Cargador de batería de Cámara Digital USB DIY

Cargador de batería de Cámara Digital USB DIY

Hola a todosEste proyecto comenzado como compré pre propiedad de cámara digital de SAMSUNG. que vino con la nothinging pero la tarjeta de memoria de 4GB. Aunque estaba tratando de aferrarse para el cargador o sus datos y carga cable pero se supone qu