Paso 6: Cómo funciona
Resumen
La idea básica es que hay una asignación unívoca entre presionando un botón en su control remoto y una combinación de teclas a tu PC. IRK! simplemente enseña su aprendizaje remoto un código que representa una combinación especial de teclas. Una vez que ha programado ese código en uno de sus botones del control remoto, presionando el botón transmite el código a IRK! que será, por supuesto, reconocerlo y enviar a la PC como un teclado USB.
Porque IRK! genera el código IR, no puede posiblemente no reconocerlo - IRK así! no es necesario soportar diferentes modelos de control remoto IR un millón de millones.
Pulsaciones de teclado USB
Las pulsaciones de teclado USB se envían al PC usando códigos definidos en la especificación de Dispositivo de interfaz humana (HID) USB uso de tablas . Que especificación define, por ejemplo, que el código 0 x 04: la letra "a". Para un dispositivo de teclado, como IRK., códigos adicionales "modificador" pueden enviarse a la PC para indicar si el GUI (tecla Windows, tecla manzana, Super clave), Control, Alt y teclas son también "presionado". Por ejemplo, para enviar un mayúscula "a", IRK! envía 0 x 02 (es decir, se presiona Shift) y 0 x 04 (significado "a" se presiona). La computadora interpreta esa secuencia como significado mayúscula "A". Inmediatamente después de enviar esa secuencia, IRK! enviará una "null" secuencia de 0 x 00 y 0 x 00 para indicar que no hay clave o modificadores claves son actualmente tecleos. Esto es requerido por el protocolo USB de lo contrario que la PC va a pensar que es presionado la teclas Shift y "A" hasta que recibe el siguiente código de clave de USB.
Por lo tanto, se puede ver que IRK! sólo tiene que ser capaz de "enseñar" un aprendizaje de control remoto seguido de una secuencia de 0 x 02 0 x 04 para representar la letra "A". Cuando el usuario presiona el botón del mando a distancia, IRK! recibirá con su receptor infrarrojo y luego enviar la secuencia de 0x02 0x04 a la PC que se interpretan como el usuario presiona Mayús + A un teclado USB.
Formato de comandos infrarrojos
IRK! reconoce sólo las señales infrarrojas que están dirigidas a un particular IRK! unidad. Para lograr esto, un byte de dirección es también enviados/recibidos por la vía infrarroja. Cada comando infrarrojo es una secuencia de bytes de seis 6 como sigue:
AA, AA', UX, UX', AA, AA '
Donde:
AA es el byte de dirección de 0 x 00 a 0xFF
AA' es el byte de dirección invertida (todos los convertida a ceros y viceversa)
UX es la página de uso (U = 0 x 0 a 0xF) y, para el uso del teclado, nybble modificador X (Control, Alt, Shift)
UX' es el byte invertido de UX
YY es el byte de comando (para el uso del teclado, el código de clave de USB)
AA ' es el byte de comando invertida
La razón de que transmiten una copia invertida de cada byte es para reducir la posibilidad de que la interferencia ha causado un comando no válido para ser recibido. Por ejemplo, no desea que su solicitud para "jugar esta grabación" debe interpretarse como "borrar esta grabación" sólo porque una mosca interrumpe el recorrido de la señal infrarroja en ese instante!
Para validar cada comando como es recibida, IRK! Verifica que AA (invertida) es igual a AA', y que UX (invertida) es igual a UX', y eso YY (invertida) es igual a AA ', y que sea AA equivale a este IRK!' Dirección del dispositivo s o AA equivale a 0xFF (la dirección de difusión). Si todo lo anterior es verdadero, entonces IRK! puede estar bastante seguro de que es un comando válido y actuará sobre ella.
Técnica de transmisión por infrarrojos
IRK! utiliza Modulación de anchura de pulso (PWM) para codificar la serie de 1 y 0 que constituyen cada comando. Usted puede reprogramar el microcontrolador para utilizar una técnica diferente como Codificación de Manchester pero PWM funciona muy bien. Por ejemplo, el USB '1' cuando se codifican usando PWM se parece a la imagen de arriba.
Cuando la señal es "baja", se transmite una ráfaga de IR de pulsos a 38 kHz. Por el contrario, cuando la señal es "alta" representa un periodo de silencio.
Hay una explosión principal para 1000 μs entonces silenciar para 600 μs (en versiones de IRK! antes de 2.04, es 9400 μs 4500 μs respectivamente). Esta explosión principal fue requerida por mayores módulos de receptor de infrarrojos para "entrenar" a sus circuitos de Control automático de ganancia (AGC) por lo que podría determinar qué nivel de la señal normal era. Receptores de IR de hoy suelen no tienen este requisito, pero su aprendizaje remoto puede ser viejo entonces IRK! todavía lo apoya.
Después de eso, un '1' se codifica como un estallido corto seguido de un largo silencio, y un '0' se codifica como una explosión corta seguida de un corto silencio.
Difunda la dirección de
Un byte de dirección de 0xFF es reconocido por IRK todos! dispositivos que has construido. Así que es posible que un único control remoto enviar un comando a IRK todos! dispositivos al mismo tiempo.
Comandos de Control del sistema
IRK! también soporta el USB define "sistema de Control" comandos llamados "Sueño", "Wake" y "Apagado". Algunos teclados USB tienen claves para estas funciones, pero intrínsecamente no son funciones de teclado. Cualquier dispositivo USB convenientemente programada, como IRK!, puede enviar comandos de Control del sistema del USB a su PC para solicitar ir al modo "Dormir", por ejemplo. El siguiente es un resumen de los resultados de los comandos de Control del sistema en mi PC (su millaje puede variar):
Apagado = CPU de disco apagado, el Monitor apagado, USB desactivado
Dormir = CPU en disco apagado, el Monitor apagado, USB en
Despertar = hace no funciona!
Pulsa el interruptor de alimentación = CPU de disco apagado, el Monitor apagado, USB en
Comandos de dispositivo de consumo
IRK! soporta USB define "consumidor dispositivo" comandos como "Mute", "Vol +", "Vol-", "Calculadora", "Navegador de casa", puede utilizar estos comandos para controlar el reproductor multimedia (reproducir/pausa, parada, brincar hacia atrás, saltar etc.) o aplicaciones (calculadora, navegador, Media Player, etc).
Para una lista completa de los comandos de dispositivo del consumidor que se pueden utilizar, descargar el documento Humano interfaz USB dispositivo tablas de uso . Que suena complicado, pero la especificación no es difícil de leer. En concreto, ver tabla 17 "Página de uso del consumidor". No importa IRK! no muestra los nombres de todos estos comandos como desplazarse a través de ellos, todavía puede pedir IRK! para enviar a los USB host (Linux, Windows, MythTV etc.) - y el USB host deben ejecutar la función correspondiente.
Interruptor de encendido y Reset Switch comandos (experimental)
Los lectores astutos habrán notado que hay un problema con tratando de IRK. "Poder sobre" tu PC - porque no todos los ordenadores de suministran energía a dispositivos USB todo el tiempo cuando la alimentación del sistema está apagado y IRK! depende de la potencia por el interfaz del USB del sistema a que está conectado.
Una forma de evitar esto es alimentar el IRK! circuito de la tensión de "Standby" (Vsb) de la potencia de la PC de la fuente. VSB en suministros de equipos antiguos + 5V en alrededor de 10 mA a pesar de que apagó el PC. Más recientes fuentes de alimentación ATX pueden entregar Vsb en 2A. Esto significa que, si de Vsb, IRK! puede permanecer despierto escuchando comandos IR siempre y cuando el PC está conectado a la toma de corriente. El IRK! circuito abastece para presionar los botones Power y Reset en tu PC, pero tienes que de alguna manera aprovechar la salida de Vsb de fuente de alimentación del ordenador para conseguir que funcione. No sé de alguna placas madres que tienen un pin de cabecera accesibles para Vsb. Esto significa que si desea que esta función, entonces usted puede tener a romper físicamente el Vsb cable de la fuente de alimentación de PC. El Vsb cable debe ser el cable morado .
Tenga en cuenta que alimentar IRK! de Vsb no ha sido probado por el momento, pero debería funcionar en principio. Las funciones de interruptor y el interruptor de Reset trabajan mientras el IRK. se alimenta del USB sin embargo.