IRK! Infrarood Remote Controlled USB toetsenbord zonder sleutels (6 / 7 stap)

Stap 6: Hoe het werkt


Overzicht

Het basisidee is dat er een ééntoewijzing tussen het indrukken van een knop op uw afstandsbediening en een toetsencombinatie die naar uw PC verzonden. IRK! gewoon leert uw externe leren een code waarmee een bepaalde toetsencombinatie te drukken. Zodra je hebt die code geprogrammeerd op een van uw externe knoppen, zal de code terug naar IRK overbrengen door het op die knop te drukken! die zal, uiteraard, erkennen dan stuur het naar de PC als een USB-toetsaanslag.

Omdat IRK! gegenereerd van de IR-code, het kan niet eventueel niet erkennen - zo IRK! hoeft niet te ondersteunen van een ontelbaar verschillende IR afstandsbediening modellen!

USB-toetsaanslagen

USB-toetsaanslagen worden verzonden naar de PC met behulp van de codes die zijn gedefinieerd in de specificatie USB Human Interface Device (HID) gebruik tabellen . Dat specificatie, bijvoorbeeld definieert, dat code 0x04 de letter betekent "a". Voor een toetsenbord-apparaat, zoals IRK!, extra "modifier" codes kunnen worden verzonden naar de PC om aan te geven of de GUI (aka Windows toets, Apple-toets, Super sleutel), de controle, de Alt en de Shift-toetsen ook "ingedrukt zijn". Als u bijvoorbeeld voor het verzenden van een hoofdletter "a", IRK! stuurt 0x02 (betekenis Shift is ingedrukt) en 0x04 ("a" drukt meaning). De computer interpreteert die volgorde als betekenis hoofdletter "A". Onmiddellijk na het verzenden van die reeks, IRK! stuurt een "null" reeks 0x00 en 0x00 om aan te geven dat geen toets of key modifiers momenteel wordt ingedrukt. Dit wordt vereist door het USB-protocol anders dat de PC zullen denken dat u ingedrukt houdt de Shift en "A" sleutels tot de ontvangst van de volgende USB-key code.

Dus, je kunt zien dat IRK! alleen moet zitten kundig voor "leren" een afstandsbediening leren een opeenvolging van 0x02 gevolgd door 0x04 te vertegenwoordigen de letter "A". Wanneer de gebruiker op die knop drukt op de afstandsbediening, IRK! ontvangt met behulp van de infrarood-ontvanger en stuurt u de volgorde van de 0x02 0x04 op de PC die zal worden geïnterpreteerd als de gebruiker op Shift + A op een USB-toetsenbord te drukken.

Infrarood opdracht Format

IRK! alleen erkent infrarood signalen die zijn geadresseerd aan een bepaalde IRK! eenheid. Om dit te bereiken, is een byte van het adres ook verzonden/ontvangen op de infrarood pad. Elke infrarood opdracht is een reeks van zes (6) bytes als volgt:

AA, AA', UX, UX', JJ, YY'

Waar:

AA is de byte van het adres van 0x00 aan 0xFF
AA' is de omgekeerde adres byte (alle degenen geconverteerd naar nullen en vice versa)
UX is de pagina gebruik (U = 0x0 aan 0xF) en, voor het gebruik van het toetsenbord, de modifier nybble X (Control, Alt, Shift)
UX' is de omgekeerde UX-byte
JJ is de byte van de opdracht (voor het gebruik van het toetsenbord, de USB key code)
JJ ' is de omgekeerde opdracht byte

De reden voor het overbrengen van een omgekeerde kopie van elke byte is te verminderen van de kans dat interferentie heeft veroorzaakt een ongeldig bevel te ontvangen. Bijvoorbeeld, je zou niet willen dat uw verzoek om te "spelen deze opname" moet worden uitgelegd als "Verwijder deze opname" gewoon omdat een vlieg het infrarood signaal pad in dat moment onderbroken!

Als u wilt valideren elke opdracht is ontvangen, IRK! controleert dat AA (omgekeerde) gelijk is aan AA', en dat UX (omgekeerde) gelijk is aan de UX', en die JJ (omgekeerde) resulteert in YY', en dat beide AA gelijk is aan deze IRK!' s apparaatadres of AA is gelijk aan 0xFF (het broadcast-adres). Als al het bovenstaande is true, dan IRK! kan vrij zeker dat er een geldige opdracht en zal handelen.

Infrarode transmissie techniek

IRK! Pulse Width Modulation (PWM) gebruikt voor het coderen van de serie van 1's en 0's die vormen van elke opdracht. U kon het herprogrammeren van de microcontroller als u wilt gebruiken een andere techniek zoals Manchester-codering methode maar PWM werkt prima. Bijvoorbeeld, de USB '1' toets wanneer gecodeerd met PWM ziet eruit als de afbeelding hierboven.

Wanneer het signaal is "laag", wordt een IR-uitbarsting van pulsen op 38 kHz overgebracht. Omgekeerd, wanneer het signaal is "hoge" het vertegenwoordigt een periode van stilte.

Er is een toonaangevende uitbarsting voor 1000 µs dan voor 600 µs stilte (in versies van IRK! voordat 2.04, het was 9400 µs en 4500 µs respectievelijk). Deze toonaangevende uitbarsting was voorgeschreven oudere infraroodontvanger modules te "trainen" hun Automatic Gain Control (AGC) circuits zodat ze kunnen bepalen wat een normale signaalniveau was. Hedendaagse IR ontvangers hoeft meestal niet aan deze eis, maar uw externe leren mogelijk oude zo IRK! nog steeds wordt ondersteund.

Daarna een '1' is gecodeerd als een korte uitbarsting, gevolgd door een lange stilte, en een '0' is gecodeerd als een korte uitbarsting, gevolgd door een korte stilte.

Broadcast adres

Een byte van het adres van 0xFF is erkend door alle IRK! apparaten die u kan hebben gebouwd. Het is dus mogelijk voor één afstandsbediening voor het verzenden van een opdracht aan alle IRK! apparaten gelijktijdig.

Opdrachten voor het beheer van systeem

IRK! ook ondersteunt de USB gedefinieerde "systeem" opdrachten genaamd "Slapen", "Wake" en "Power Off". Sommige USB-toetsenborden hebben toetsen voor deze functies, maar ze zijn niet intrinsiek functies van een toetsenbord. Ieder voldoende geprogrammeerde USB-apparaat, zoals IRK!, USB systeem besturingsopdrachten kunt verzenden naar uw PC te vragen het te gaan "Slapen" modus, bijvoorbeeld. Het volgende is een samenvatting van de resultaten van de opdrachten van het System Control op mijn PC (jouw snelheid kan variëren):

Power Off CPU uit, schijf uit, Monitor uit, USB = off
Slapen CPU, schijf, Monitor af, USB uitschakelt op = op
Wakker = bevat niet werken!
Power schakelaar ingedrukt = CPU uit, schijf uit, Monitor uit, USB op

Consument apparaat opdrachten

IRK! ondersteunt de USB gedefinieerde "consument apparaat" commando's zoals "Mute", "Vol +", "Vol-", "Rekenmachine", "Browser Home", u kunt deze opdrachten gebruiken om te controleren uw mediaspeler (afspelen/pauzeren, stoppen, achteruit, vooruit enz) of starten van toepassingen (rekenmachine, Browser, Media speler enz.).

Voor een volledige lijst van de consument apparaat-opdrachten die u kunt gebruiken, gewoon downloaden het USB menselijke Interface apparaat gebruik tabellen document. Dat klinkt ingewikkeld, maar de specificatie is niet zo moeilijk te lezen. In het bijzonder kijken naar tabel 17 "Consument gebruik Page". Het maakt niet uit dat IRK! toont niet de namen van alle deze opdrachten als u scroll via hen, kunt u nog steeds vragen IRK! om te sturen naar uw USB moet host (bv Linux, Windows, MythTV etc)- en de USB-host uitvoeren de bijbehorende functie.

Aan-/ uitschakelaar en Reset schakelaar opdrachten (experimenteel)

Oplettende lezers zullen hebben gemerkt dat er een probleem met het proberen om IRK! "Power On" uw PC - omdat niet alle pc's leveren macht om USB-apparaten altijd wanneer de kracht van het systeem is uitgeschakeld en IRK! hangt af van de macht wordt geboden door de USB-interface van het systeem dat is aangesloten.

Een manier rond dit is aan de macht van het IRK! circuit van de "Standby" spanning (Vsb) van de PC power supply. VSB op oudere computers leveringen + 5V rond 10 mA ook al hebt u uw PC uitgeschakeld. Meer recente ATX voedingen kunnen Vsb leveren tegen 2A. Dit betekent dat, als aangedreven van Vsb, IRK! kan wakker luisteren voor IR-opdrachten, zolang de PC is aangesloten op het stopcontact van de macht te blijven. De IRK! circuit voorziet in de macht en Reset knoppen in te drukken op uw PC, maar u moet een of andere manier het aanboren van de Vsb-uitvoer van de voeding van uw PC's ertoe brengen om te werken. Ik weet niet van elke moederborden met een gemakkelijk toegankelijke kop-speld voor Vsb. Dit betekent dat als u wilt dat deze functie, dan u wellicht fysiek breken de Vsb draad van de voeding van de PC. De Vsb draad moet de paarse draad.

Merk op dat het aandrijven IRK! van de Vsb is niet getest op het moment, maar in principe moeten werken. De aan-/ uitschakelaar en Reset schakelaar functies werken zolang IRK! al wordt vanaf USB aangedreven.

Gerelateerde Artikelen

Hoe aan remote controle van uw iPhone, iPad van computer - via USB

Hoe aan remote controle van uw iPhone, iPad van computer - via USB

Hoe om remote control afstandsbediening,, iPhone iPad vanaf computer verbinding maakt via USB - werken op Windows of MacUw iOS-apparaat moet zijn jailbroken voor dit om te werken. Deze tutorial zal niet gaan over hoe jailbreak uw apparaat.Zorgen voor
Remote controlled webcam met behulp van de Arduino, SensorMonkey, jQuery en Justin.tv

Remote controlled webcam met behulp van de Arduino, SensorMonkey, jQuery en Justin.tv

Web in te schakelen voor uw interactieve sensoren over desktop, smartphone en tablet apparaten.Deze tutorial beschrijft in detail hoe met de gratis SensorMonkey -service op afstand besturen van een pan en tilt webcam aangesloten op een Arduino met ni
Omzetten van een ZX82 Spectrum toetsenbord in een uitbreidbaar USB-toetsenbord met Arduino

Omzetten van een ZX82 Spectrum toetsenbord in een uitbreidbaar USB-toetsenbord met Arduino

In dit Instructable, ik zal je laten zien hoe u uw toetsenbord ZX82 Spectrum converteert naar een functioneel-uitvouwbare USB-toetsenbord compatibel met om het even wat USB-enabled. Deze build is compact genoeg dat wanneer u klaar bent, u kunt het sp
Een USB-toetsenbord Hacking

Een USB-toetsenbord Hacking

hoe hack een USB-toetsenbord of een toetsenbord voor die kwestie. Stuur ingangen naar de computer zonder een vervelende microcontroller.Stap 1: Open het toetsenbord Open te stellen het geval. Hier kunt u een schroevendraaier of een een belachelijk ui
Remote Controlled Arduino Car

Remote Controlled Arduino Car

Ik heb graag altijd naar kampen, etc waar een dag als ik was op zoek up youtube voor afstandsbediening auto's, er zijn veel van mijn vrienden en ik altijd graag met een heleboel vrienden, en hoe ze werden gemaakt, ik bedacht dat ik voor mezelf uit de
DIY Arduino Remote Control en Lego RC voertuig!

DIY Arduino Remote Control en Lego RC voertuig!

UPDATE (8/29/13): dank u lezers voor uw enthousiasme en soort opmerkingen met betrekking tot dit project! Het is een geweldige reis sinds ik begon dit project terug in maart, maar ik ben erg blij met het resulterende product en de opwinding waarmee h
Arduino infrarood Remote tutorial

Arduino infrarood Remote tutorial

het is echt gemakkelijk om te controleren van een Arduino met een infrarood afstandsbediening. Er is één bepaalde afstandsbedieningen die uit meerdere bronnen beschikbaar is en het is echt heel goedkoop, ze kijken en werken in een zeer gelijkaardige
Afwerking van het werk: installeren van een USB-toetsenbord in een OLPC XO Laptop, fase II

Afwerking van het werk: installeren van een USB-toetsenbord in een OLPC XO Laptop, fase II

voor een man die heeft het grootste deel van zijn leven met zijn vingers op de home rij aangesloten, het toevoegen van deze USB-toetsenbord dat ik kan echt touch-type op een enorm verschil in de bruikbaarheid van de XO heeft gemaakt. Dit is de kabel
Remote controlled Robotic Arm (MeArm) met behulp van pfodApp

Remote controlled Robotic Arm (MeArm) met behulp van pfodApp

Update: 27 augustus 2015Dit project is bijgewerkt met de correcties die nodig zijn om het werk van MeArm betrouwbaar. Deze oplossingen bestaan uita) met behulp van een aanbod van de 5V 3A en het verwijderen van de Uno-polyfuse enb) toe te voegen een
Remote Controlled vis snackautomaat

Remote Controlled vis snackautomaat

Dit instructable ontstond vervulling de project-eis van de Makecourse bij de Universiteit van Zuid-Florida (www.makecourse.com)Deze make was mijn intro in met behulp van de arduino microcontroller en het schrijven van code. Ik geef toe dat er veel me
Acorn Electron USB toetsenbord

Acorn Electron USB toetsenbord

Maak een retro USB-toetsenbord uit een 1980 's Acorn Electron computer!Het elektron was een 8-bits computer voor het eerst geproduceerd in 1983, gebaseerd op de legendarische BBC Micro. Hoewel het een begroting home machine was, kwam het uitgerust me
Arduino Remote Control (ARC)

Arduino Remote Control (ARC)

In dit project, zullen we het maken van een Arduino Remote Control (ARC) die elke infrarood (IR) afstandsbediening in hex of enige andere vorm ontcijferen en deze gebruiken om te schakelen LED on/off!Het is een vrij eenvoudig project en zou kunnen wo
ZX Spectrum Wired USB toetsenbord deel 1

ZX Spectrum Wired USB toetsenbord deel 1

In dit Instructable zal ik u tonen de eenvoudige stappen die ik gebruikte een ZX Spectrum omzetten in een USB-toetsenbord.Ik weet dat er zijn puristen daar dat dit zal haten, maar als uw moederbord onherstelbaar is, dan is dit een manier om het toets
Het installeren van een USB-toetsenbord in een OLPC XO Laptop, fase I

Het installeren van een USB-toetsenbord in een OLPC XO Laptop, fase I

ik weet niet over u, maar ik kan zeker zeggen siliconen van de real thing. Here's how to ditch de gelei en knijp een normale toetsdoppen uit-en-veren type USB-toetsenbord in een OLPC XO laptop. Dit is "fase I"--krijgen het toetsenbord in de onde