10p Input Devices Av: Handledare: Björne Lindberg Ulf Brydsten Lars Karlsson
Tangentbord / Twiddler...4 Handskar...5 Tal...5 Pekenheter...7 Eye Tracking...7 Så fungerar ett Tangentbord / Twiddler...8 PS/2...10 Twiddler2...18 Sammanfattning...18 Källförteckning...19 2
Inledning De senaste 20 åren har det skett en otrolig utveckling inom databranschen. Datorerna har blivit kraftfullare och mindre. Under 90 talet blev datorerna så små att det var möjligt att göra dem bärbara, medan de fortfarande var lika kraftfulla som en vanlig desktopdator. När bärbara datorer var i början av sin utveckling var det komponenterna som moderkort processorer och hårddiskar som begränsade datorns storlek. Nu kan man göra datorerna nästan hur små som helst, men man kan inte göra ett tangentbord hur litet som helst eftersom då skulle det bli omöjligt att skriva på det. En annan begränsning med bärbara datorer är att även om man kan bära runt på dem så för att man ska kunna använda dem krävs det att man har ett underlag att ställa datorn på tex. knäet eller ett bord. Bärbara datorer har nått gränsen för hur små de kan bli eftersom inmatnings enheterna inte kan göras mindre. I miljöer där det inte finns någon möjlighet att använda sin bärbara dator krävs det andra lösning, en sådan lösning är wearable computers. En wearable computer är en dator som är så lite att man kan ha på sig den som en del av sina kläder. Eftersom datorn sitter fast i kläderna så behöver man inte bära på den utan den följer med dit man går utan ansträngning. Problemet med wearable computers är att det finns ingen bra mobil inmatings-enhet för att kommunicera med dem. 3
Tangentbord / Twiddler Ett tangentbord är en bra inmatningsenhet, eftersom man kan mata in alla möjliga teckenkombinationer med ett sådant. Men det är inte ett bra alternativ till en wearable computer beroende på dess storlek. Man måste ha på sig tangentbordet någonstans och det måste vara positionerat så att man kan skriva på det. Detta har gjort att det har kommit alternativa tangentbord. Twiddlern är ett enhands ackord tangentbord som har funnits ett bra tag. Ett ackord tangentbord är ett tangentbord där man har en tangent för varje finger och man trycker ned olika tangentkombinationer för att åstadkomma alla möjliga olika tecken. Har man en tangent för varje finger innebär det att man har 5 stycken tangenter, det ger 31 möjliga kombinationer. Det räcker för alla bokstäver och ger några kombinationer över till specialtecken tex mellanslag och return. Det finns ett antal sätt att öka antalet möjliga kombinationer. Två hands inmatning har man en twiddler i varje hand med totalt 10 stycken knappar möjliggör det 1023 olika tecken vilket är mer än nog men det innebär att båda händerna är upptagna med inmatning. Tumm tangenter, en eller flera extra tangenter kan läggas till inom räckhåll för tummen. Det ger sexton extra tecken per tummknapp. Detta är den vanligaste lösningen. Skift tangenter, en skift tangent fungerar så att när man trycker på den en gång så agerar den på nästa ackord. När man dubbelklickar på den så agerar den på alla ackord tills man trycker skift igen. För varje skift dubbleras antalet möjliga karaktärer. En extra rad med knappar per finger dvs två stycken rader per finger. Det går även att gör olika kombinationer av de tidigare nämnda metoderna. En nybörjare kan skriva snabbare med ett ackord tangentbord än med ett standard QWERTY tangentbord med mindre träning. Efter 20 timmars träning med ett enhands ackord tangentbord skriver en genomsnitts användare 29 ord per minut. En nybörjare med QWERTY tangentbord skriver 20 ord per minut, efter samma tid. En van användare med ett ackord tangentbord matar in ungefär 50 ord i minuten. Med hjälp av någon av dessa metoder är det möjligt att mata in alla möjliga tecken som man kan med ett vanligt tangentbord. Det positiva med ett sådant tangentbord är att det är avsevärt mycket mindre en ett vanligt. Det kräver bara en hand för inmatning och kräver inget underlag att fästas på. Det är billigt, låg strömförbrukning, låg bandbredd och är helt kompatibelt med all existerande mjukvara. På den negativa sidan finner vi att en hand krävs för inmatning vilket innebär att den inte kan användas till applikationer där användaren måste ha båda händerna fria vid alla tillfällen. Det är en viss inlärningskurva för enheten. En annan nackdel med ett ackord tangentbord är att en nybörjare inte kan använda det, det är däremot möjligt med ett standard tangentbord. Den är bara anpassad för textinmatning, det finns inga pekegenskaper inbyggt i enheten. 4
Handskar Ett nymodigare sätt att mata in text är med hjälp av en handske som inmatningsenhet. Med dessa enheter använder man en eller bägge händerna för inmatning, antigen genom att känna av rörelserna i gester eller genom kontakt mellan fingrar. Dessa enheter är väldigt mobila eftersom man har på sig handsken, så det blir ingenting att bära. Det finns två olika sätt att mata in text med handske det ena sätter är att gestikulera, det går att komma upp i normal talhastighet på detta sätt men dessa handskar är väldigt ovanliga eftersom de är så dyra. Man kan konstruera en sådan handske med hjälp av ett antal accelerometrar som man fäster i handsken, sedan krävs det en antal algoritmer för att kunna känna igen olika tecken. Det andra sättet är genom att mäta kontakt mellan fingrarna, detta är en mycket billigare och enklare lösning. Men det är inte så användbart till text inmatning eftersom det finns för få kombinationer för att man ska kunna åstadkomma alla tecken. Tal Tal är på vissa sätt den optimala text inmatningsenheten. En mikrofon tar inte upp någon som helst plats och väger ingenting och man har båda händerna fria. Det är intuitivt, det är lätt att lära sig, användaren är i kontroll över inmatningen. Det är också snabbare än andra text inmatningsenheter ungefär runt 150 ord per minut. Det största problemet med röstigenkänning är problemet att känna igen vilket ord användaren säger. Det beror bland annat på storleken på ordlistan, ju fler ord det finns att välja mellan desto svårare är det att skilja dem åt. Hög igenkännings frekvens är kritiskt för ett röstigenkännings system. Kvaliteten på igenkänningen beror som sagt på storleken på vokabulären men även akustiken, mikrofonen samt hur bra igenkännings algoritmen är. En igenkännings frekvens på 90 % innebär fortfarande att ett ord på 10 är fel. Dagens röst igenkänningssystem har en igenkänningsfrekvens på 95 % vid optimala förhållanden. Ord som låter väldigt lika varandra är svåra att känna igen, det gäller även ord som börjar med mjuka bokstäver t.ex. m. Detta gör att man bör välja en vokabulär som börjar med hårda bokstäver tex. k och som inte låter lika till uttalet. Eftersom det finns en överhängande risk för fel så måste det finnas en mekanism som ger feedback till användaren. Men det räcker inte med att systemet måste känna igen rätt ord det måste också kunna sortera bort felaktiga inmatningar som t.ex. öhh. Samt avgöra vilka yttranden som är menade till datorn och vilka som är avsedda för en kollega eller medarbetare. Det senare problemet går att lösa genom att man lägger till en knapp tryck för att prata, eller kommando ord. Har man en knapp som man måste trycka ned för att tala så är det lätt att 5
skilja kommandon från annat tal. Men det gör också att fördelen med att ha båda händerna fria försvinner. Man kan även använda sig av start ord som t.ex. dator för att indikera att nästa yttrande är menat till datorn. Användandet av start ord är onaturligt för användaren, och kräver en viss mån av träning. Det finns 3 typer av igenkänningsfel. Det första är substitutions fel, som innebär att ett korrekt yttrande tolkas felaktigt som ett annat ord. Ett annat fel är när ett felaktigt yttrande t.ex. öhh tolkas som ett korrekt ord. Den sista sortens fel är när ett korrekt yttrande inte kan tolkas som något som finns i ordlistan. Man kan bestämma i mjukvaran hur exakt uttalet måste stämma överens med ordlistan för att det ska tolkas som ett korrekt yttrande. Sätter man nivån för låg så kommer man att få många substitutionsfel t.ex. blandar ihop readfile med deletefile. Felaktiga yttrande kan också komma att tolkas som korrekta ord. Alternativet, att man sätter nivån för hög innebär att datorn inte kommer att känna igen orden och kommer då att be användaren att upprepa sig. Detta kommer att leda till att användaren blir frustrerad. Ett annat problem med röststyrning är integriteten. Sitter man sitter t.ex. på bussen, flyget eller andra allmänna platser kanske man inte vill att alla ska höra vad man håller på att jobba med. Andra saker som kan vara till problem är t.ex. bakgrunds ljud. Befinner man sig i högljudda miljöer med mycket bakgrundsljud och annat så försämrar det kvaliteten på igenkänningen, frågan är bara hur mycket. Röstigenkännings system är baserade på att de ska känna igen uttalet på yttrandet. Dessa system är inte särskilt toleranta när det kommer till felaktig grammatik och öhh. Användaren måste vara tränad i att tala i en viss hastighet samt vara noggrann med uttalen. Ett röstigenkänningssystem är konfigurerat för en viss person och för ett visst språk. Skillnad i tex. nationalitet och/eller kön gör att olika språkmodeller måste användas detta gör att sådana system blir betydligt dyrare än andra system och gör att kanske inte alla kan använda datorn utan omkonfiguration. Hur snabbt man tillåts tala beror på hastigheten av processorn man använder, för en mjukvarulösning krävs det minst en 125MHz processor. 6
Pekenheter Ingen av de tidigare nämnda inmatnings enheterna som vi har diskuterat, tal och tangentbord har någon möjlighet att peka. Möjligheten att kunna peka direkt på en position på skärmen är viktigt för all direkt manipulation av objekt på skärmen tex. en karta. Sådana enheter som kan vara lämpliga till att användas tillsammans med en wearable computer kan vara t.ex. joystick, joypad, trackball eller touchscreen. Fördelen med pekenheter är att de är intuitiva, tillåter positionsinmatning och är kompatibla med olika skrivbords interface. De är vitt spridda och kan tillhandahålla ett virtuellt tangentbord på skärmen där man kan peka på de olika tangenterna. Nackdelarna är att interfacen som använder pekarinmatning är resursintensiva. De är oprecisa för exakt koordinat inmatning, samt långsamma när de används till textinmatning. Eye Tracking Att använda sig av eye-trackers som inmatnings enhet är inte så vanligt, det beror dels på att det finns en del brister samt högt pris. Exekvering av objekt utförs antigen av en separat knapp eller genom att man fäster blicken tillräckligt länge vid samma punkt. Detta kan medföra problem i Windows liknande och hypertext GUI. Användaren kan tex fästa blicken vid något hot-area tex. en icon knapp eller meny för länge och därigenom exekvera något av misstag. I ett windows system eller hypertext dokument finns det ofta många så kallade hot-areas över hela displayen. Detta innebär att användaren bara kan kasta en blick på skärmen för att undvika misstag. Eyetracking har också problem med att lokalisera små mål beroende på ofrivilliga ögonrörelser. Eye-trackers är väl anpassad som ett input device till wearable computers man har båda händerna fria, men på grund av låg precision och högt pris så är det inte så vanligt. Den här typen av glasögon passar bättre som utmatningsenhet istället för inmatningsenhet. 7
Så fungerar ett Tangentbord / Twiddler Processorn som sitter i ett tangentbord måste veta flera saker som är viktiga för användningen av ett tangentbord t.ex: Tangenternas position i tangent matrisen. Mängden kontaktstudsar och hur man filtrerar dem I vilken hastighet man ska sända tecknen Tangentmatrisen är ett rutsystem av kretsar under tangenterna. I alla tangentbord förutom kapacitiva är kretsarna brutna under varje tangent. Genom att pressa ned en tangent sluts kretsen och en liten ström kan flöda igenom. Processorn övervakar tangent matrisen. När en tangent pressas ned jämför den var den kretsen är lokaliserad på tangentmatrisen med sin teckentabell som ligger lagrat i ROM. Tecken tabellen är helt enkelt ett jämförelseschema för processorn som talar om vilken tangents x, y koordinat som tangentmatrisen representerar. Om mer än en tangent trycks ned vid samma tidpunkt kontrollerar processorn för att se om denna kombination av tangenter finns angiven i teckentabellen. Teckentabellen i tangentbordet kan bli åsidosatt av en annan teckentabell i datorn. Detta görs ofta i språk vars bokstäver inte har engelska motsvarigheter. Tangentbord förlitar sig på switchar som förändrar strömmen som går igenom kretsarna på tangentbordet. När man pressar ned en tangent på tangentbordet mot tangentmatrisen uppkommer det vanligtvis en liten vibration mellan ytorna, detta kallas kontaktstudsar. Processorn uppfattar det som snabba switchar av och på. Därför måste processorn filtrera bort alla dessa förändringar i signalen och behandla det som en enda knapptryckning. Om du fortsätter att hålla ned en knapp kommer processorn bestämma att du vill sända samma tecken upprepade gånger till datorn. Denna fart på inmatning kan man vanligtvis styra med mjukvaran, vanlig hastighet kan variera från 2 tecken per sekund upp till 30 tecken per sekund. Tangentbord och twiddlers använder en mängd olika switch tekniker. Vi vill i regel ha något sort ljud och känsel respons när vi trycker ned tangenterna på en twiddler eller tangentbord. Vi vill höra ett klick när vi skriver, och vi vill att tangenterna ska kännas fasta och fjädra tillbaks när vi trycker ned dem. Det finns en del olika tekniker: Gummi kupol mekaniska Kapacitiva icke-mekaniska Metall kontakt mekaniska Membran mekaniska Skum element mekaniska 8
Den populäraste switch tekniken idag är gummikupol. I dessa twiddlers sitter varje tangent ovanpå en liten flexibel gummikupol med en hård kolkärna. När en tangent pressas ned pressas tangenten ned mot gummi kupolen. Detta gör att kolkärnan trycks ned tills den pressas mot den hårda ytan under tangentmatrisen. Så länge som tangenten är nedtryckt så sluts kretsen för den delen av matrisen. När man släpper tangenten hoppar den tillbaks upp. Gummikupol tangentbord är billiga, har bra tangent respons och är ganska tåliga mot spill tack vare gummilagret som skyddar tangentmatrisen. Kapacitiva switchar anses vara icke mekaniska eftersom de inte sluter en krets som den andra tekniken. Istället flödar strömmen konstant genom alla delar av tangentmatrisen. Varje tangent har en fjäder och en liten platta fastsatt under tangenten. När man pressar ned en tangent kommer plattorna närmare plattan rakt under den. När de två plattorna kommer närmare varandra påverkar det mängden ström som går genom matrisen. Processorn känner av förändringen och tolkar det som en tangenttryckning vid den positionen. Kapacitiva switch tangentbord är dyra, men de lider inte av korrosion och har längre livslängd än något annat tangentbord. De har heller inget problem med tangentstuds eftersom de två ytorna aldrig kommer i kontakt med varandra. Metallkontakt och skumelement tangentbord är inte så vanliga som de brukade vara. Metallkontakt switchar har helt enkelt en fjäder under sig med en metall remsa på botten. När en tangent pressas ned kommer tangenten i kontakt med plattan under. Skum elementen switcharna är i grunden samma design, men med en liten bit svampaktigt skum mellan botten på fjädern och metallremsan, för att ge den en bättre respons vid nedtryckning. Båda teknikerna har bra respons och gör tillfredsställande klick och är billiga att producera. Problemet med dessa är att kontakterna har en tendens att nötas ut eller korrodera snabbare än på tangentbord som använder andra teknologier. Det finns heller ingen barriär som hindrar damm eller vätskor från att komma i direktkontakt med kretsarna på tangentmatrisen. När du skriver analyserar processorn I tangentbordet tangentmatrisen och avgör vilket tecken som skickas till datorn. Den lagrar tecknet som ska sändas i en buffert, därefter skickas tecknet till datorn via den anslutning som man har till datorn vanligtvis en USB eller PS/2 kontakt. Det som skickas mellan datorn och tangentbordet är dels matningsspänning vanligtvis på 5 volt, samt datan som ska sändas. I andra änden är kabeln ansluten till datorns tangentbords kontroller. Det är en IC-krets vars jobb är att behandla all data som kommer från tangentbordet och skicka det vidare till operativsystemet. När operativsystemet får ett interrupt från tangentbordet så kontrollerar OS:et först om det är system kommando tex. Ctrl-Alt-Delete på en windows dator, då sker en omstart omedelbart, annars skickas tecknet vidare till den aktiva applikationen. 9
PS/2 PS/2 anslutningen används av många möss, tangentbord och twiddlers den utvecklades av IBM. Den fysiska PS/2 porten kallas 6-pin mini-din. DIN standarden skapades av German Standardization Organization (Deutsches Institut fuer Norm). 6-pin mini-din (PS/2) 1 - Data 2 - Not Implemented 3 - Ground 4 - +5v 5 - Clock 6 - Not Implemented Det finns fyra intressanta pinnar på kontakten: Ground, +5v, data och clock. +5v står värden för (datorn) och enhetens jord är anslutet till värdens jord. Data och Clock är båda open collector, vilket innebär att de normalt ligger höga (logisk etta) men kan lätt dras ned till jord (logisk nolla). Alla enheter som du ansluter till värden ska ha stora pull-up motstånd på clock och data. Man lägger ut en nolla genom att dra linjen låg och en etta genom att låta den flyta hög. PS/2 protokollet är ett dubbelriktat synkront seriellt protokoll. Data skickas en bit åt gången på Data linjen och läses av varje klockpuls. Anslutna enheter kan skicka data till värden och värden kan skicka data till enheten, men värden har alltid högre prioritet och bestämmer över bussen och kan stoppa kommunikationen från enheten när som helst genom att dra clock låg. Data som skickas från en ansluten enhet till värden läses av på negativ flank (när clock går från hög till låg). Data som skickas från värden till den anslutna enheten läses på positiv flank (när clock går från låg till hög). Oavsett i vilken riktning kommunikationen går åt så är det alltid den anslutna enheten som generar klockpulsen. Om värden vill skicka data måste den första säga till den anslutna enheten att börja generera klockpulser. Den maximala klockfrekvensen är 33 khz, de flesta enheter arbetar inom 10-20 khz. 10
All data som sänds är arrangerad i bytes, varje byte skickas i ett fönster som innehåller 11-12 bitar: BIT FUNCTION 12 Acknowledge bit (Endast vid värd till enhet kommunikation) 11 Stop bit (alltid 1) 10 9 Paritets Bit (udda paritet) Data Bit 7 8 7 Data Bit 6 Data Bit 5 6 Data Bit 4 5 Data Bit 3 4 3 Data Bit 2 Data Bit 1 2 1 Data Bit 0 Start Bit (alltid 0) Paritets biten är satt om det är ett jämnt antal ettor bland databitarna. Den är låg (logisk nolla) om det är ett udda antal. Antalet ettor i data bitarna plus paritetsbiten blir alltid ett udda antal (udda paritet). Det används för felupptäckning. När värden skickar data till enheten skickas en handshaking bit från enheten till värden för att kvittera att paketet togs emot. Denna biten finns inte med när enheten skickar data till värden. 11
Enhet till värd kommunikation Timingdiagram, systemet tar emot data från ansluten enhet Det här beskriver den typiska sekvensen av händelser när systemet tar emot data från en ansluten PS/2 enhet. 1. Den anslutna enheten kollar clock. Om den är låg är utmatning från den anslutna enheten inte tillåtet. 2. Den anslutna enheten kollar data linjen. Om den är inaktiv tar controllern emot data från systemet 3. Den anslutna enheten kollar clock under sändning i intervall som inte överstiger 100 us. Om enheten upptäcker att systemet drar clock låg, kommer sändningen att avbrytas. Systemet kan avbryta sändningen när som helst under de första 10 klockcyklarna. 4. En sista kontroll för att se om sändningen har avbrutits görs minst 5 us efter den 10:e klockcykeln. TIMING PARAMETRAR Min/Max T1 Tid från DATA sändning 5/25 us till negativ CLK flank. T2 Tid från positiv CLK flank till DATA sändning. 5/T4-5 us T3 Tid som CLK ligger låg. 30/50 us T4 Tid som CLK ligger hög. 30/50 us T5 Enheten förbjuds att sända efter 11:e klockcykeln för att försäkra sig om att enheten inte påbörjar en ny sändning. >0/50 us 5. Systemet kan hålla clock låg för att avbryta nästa sändning. 6. Systemet kan dra data låg om den har data som den vill sända till den anslutna enheten. Data dras låg när startbiten (alltid 0) läggs ut på datalinjen. 7. Systemet släpper clock hög för att tillåta nästa sändning. Data och clock är båda open collector (håller normalt en hög logisk nivå). När den anslutna enheten vill skicka information kontrollerar den först så att clock ligger hög. Ligger den inte hög så buffrar enheten upp datan den ska skicka tills den får kontroll på bussen. När clock går hög kan enheten börja sända data. 12
Här skickas scankoden för Q (15h) från en enhet till värden. Kanal A är klockpulsen, kanal B är datapulsen. Klockfrekvensen är mellan 10-16.7kHz. Tiden mellan positiv flank till dess att en datasändning inleds bör vara minst 5 us. Tiden mellan en datasändning till dess att clock går låg ska vara minst 5 us och max 25 us, det är viktigt att timingen följs exakt. Vill man använda en microcontroller för att agera PS/2 enhet kopplas den på följande sätt: 13
Med denna uppkoppling sätter man en etta genom att sätta pinnen till input och låta resistorn dra linjen hög. Vill man ha en nolla sätter man pinnen till output och skriver en nolla till den pinnen, det kommer att dra den till jord. 14
Värd till enhet kommunikation Timingdiagram, systemet sänder data till en ansluten enhet Det här beskriver den typiska sekvensen av händelser när systemet sänder data till en ansluten PS/2 enhet. 1. Systemet kollar om den anslutna enheten håller på att sända data. Om en sändning pågår och har passerat den 10:e klockcykeln måste systemet ta emot datan. 2. Enheten kollar clock. Om den ligger låg är en I/O operation inte tillåten. TIMING PARAMETER Min/Max T7 Tid som CLK är inaktiv 30/50 us T8 Tid som CLK är aktiv T9 Tid från låg till hög CLK 30/50 us 30/50 us flank T4 Tid som CLK är inaktiv 30/50 us T5 Enheten förbjuds att sända efter 11 clockcykeln för att försäkra sig om att enheten inte påbörjar en ny sändning >0/50 us 3. Enheten kollar data. Om den är ligger låg har systemet data som det vill sända. Data dras låg när startbiten (alltid 0) placeras på data linjen. 4. Enheten drar clock låg. Systemet placerar sedan första biten på data linjen. Varje gång som enheten drar clock låg lägger systemet ut nästa bit på data linjen tills alla bitar är överförda. 5. Den anslutna enheten läser av data varje gång som clock släpps hög. Datan måste vara stabil inom 1 us från positiv klockflank. 6. Enheten kollar efter en stop bit efter den 10:e klockpulsen. Om data är låg fortsätter enheten att kolla tills data blir hög. Därefter skickar den ett Resend kommando till systemet. 7. Den anslutna enheten drar data låg, för att producera kontrollbiten. 8. Systemet kan dra clock låg för att stoppa sändningen från den anslutna enheten. 15
Det är alltid PS/2 enheten som genererar klockpulsen. Om värden vill sända data måste den först sätta clock och data i Request-to-send läge på följande sätt: Stoppa kommunikationen genom att dra clock låg i minst 100 us. Applicera Request-to-send genom att dra data låg, och därefter släppa clock. Enheten ska kolla efter det här läget i intervall som inte överstiger 10 ms. När enheten upptäcker det här läget ska den börjar generera klockpulser. För att göra det lättare att förstå. Här är de steg som ska utföras för att sända data till en ansluten PS/2 enhet. 1) Dra clock låg I minst 100 us. 2) Dra data låg. 3) Släpp clock 4) Vänta tills enheten drar clock låg. 5) Lägg ut första biten du vill sända på data. 6) Vänta på att enheten ska släppa clock hög. 7) Vänta på att enheten ska dra clock låg. 8) Upprepa steg 5-7 för alla databitar som paritetsbiten. 9) Släpp data. 10) Vänta på att enheten ska dra data låg. 11) Vänta på att enheten ska dra clock låg. 12) Vänta på att enheten ska släppa data och clock. Scankoder I twiddlers och tangentbord sitter det en processorn som övervakar tangentmatrisen. Om den upptäcker att en tangent trycks ned eller släpps upp skickar den datapaket till datorn, datan som skickas kallas scankoder. Det finns två typer av scankoder makecodes och breakcodes. En makecode skickas när man trycker ned en tangent, en breakcode skickas när man släpper upp en tangent. Varje tangent har en unik makecode och breakcode. När en tangent trycks ned skickas dess scancode till värden. Scancoden som skickas representerar koden för den tangenten som trycks ned, det finns inget samband mellan tangentens scankod och dess ASCII värde. Det är upp till tangentsbords kontrollern att översätta den till korrekt ASCII värde. 16
De flesta scankoder är en byte långa, men det finns ett antal extended keys som har scankoder som är 2 eller 4 byte långa. Dessa kan identifieras genom att deras första byte är E0h. En makecode skickas till datorn när en tangent trycks ned, en break code skickas när en tangent släpps upp. Varje tangent har en unik makecode, breakcoden är också unik för varje tangent. Det finns ett samband mellan makecode och breakcode. De flesta breakcodes är två byte långa, där första byten är F0h och den andra byten är tangentens makecode. Makecodes och Breakcodes för ett antal tangenter: Key (Set 2) Make Code (Set 2) Break Code "A" 1C F0,1C "5" 2E F0,2E "F10" 09 F0,09 Right Arrow E0, 74 E0, F0, 74 Right "Ctrl" E0, 14 E0, F0, 14 Ex: Vad som skickas till enheten om man trycker ned G på ett tangentbord/twiddler. Eftersom det är en versal måste man trycka ned shift därefter trycka ned G, släppa G släppa shift. Följande data skickas: 12h 34h shift G F0h34h Break G F0h12h Break shift. 17
Twiddler2 Den vanligaste twiddlen på marknaden är Twiddler2 som säljs av företaget handykey. Den har sexton tangenter för textinmatning. Det möjliggör att 1020 olika tecken kan matas in. Den har också en inbyggd liten joystick för pekfunktioner. Den fungerar med samtliga vanliga OS t.ex. MacOS, Windows och Linux. Det finns både PS/2 och USB modell. Det behövs inga ytterligare drivrutiner eller något annat utan den fungerar som ett vanligt tangentbord, och den lilla joysticken fungerar som en pekenhet. Sammanfattning Inmatnings enheter till wearable computers är fortfarande en relativt ny marknad. Eftersom wearable computers ska användas till så många olika uppgifter och i många olika miljöer, så innebär det att man nog inte kommer att hitta en enda inmatningsenhet som är optimal till alla tillämpningar. Twiddler2 verkar för tillfället vara en av de bättre inmatningsenheterna. Den har både textinmatning med ett ackordtangentbord samt pekmöjligheter med hjälp av den lilla joysticken på toppen. Dess enda nackdel är väl egentligen att man inte har båda händerna fria. Men de inmatningsenheter som erbjöder fullständigt hands-free har andra problem som gör att de är svåra att använda. 18
Källförteckning http://wearables.blu.org/links.html http://www.handykey.com/ http://about.eyetap.org/index.shtml http://www.the-labs.com http://www.informationwear.com/ http://www.redwoodhouse.com/wearable/?subid=26 19