USB-Wii Classic Controller (4 / 18 steg)

Steg 3: Förståelse USB




USB använder två ledningar, brukar kallas D + och D-, överföra seriella data med hjälp av icke-retur-noll kodning. Dessa två kablar är ett differentiella par, vilket innebär att D-'s signal kommer alltid att D + är inverterad staten. Detta gör det möjligt att överföra data riktigt fort över en lång kabel (5 meter kabel på 480 Mbit/s om du använder USB 2.0 hög hastighet), Läs här för mer http://en.wikipedia.org/wiki/Differential_pair

USB-bussar har en enhet och mottagande, datorn är vanligen värd, våra spelkontroll är en enhet, närmare bestämt en HID (human interface device). Det är viktigt att notera att värden alltid påbörja kommunikation eller värddatorn kontrollerar enheten ofta för att se om det har något att säga. Enheten har inte förmågan att initiera kommunikation, det kan bara vänta tills det talas till.

Det finns pull-up motstånd på D + eller D - beroende på om enheten är USB 1.0, USB 1.1 eller USB 2.0. Närvaron av dessa pull-up motstånd är också hur en dator vet när något har ansluten. På USnooBie och de flesta V-USB-kretsar är pull-up resistor alltid på D-signalen sedan V-USB är endast kan genomföra låg fart USB-enheter.

De två 68 ohm motstånd på D + och D-signaler avslutande motstånden, deras impedansen beräknas (med hänsyn tagen till AVR: s interna kretsar) matchas med den karakteristiska impedansen av USB-kabeln. Detta minimerar signal reflektioner. Läs http://en.wikipedia.org/wiki/Transmission_line för mer information.

När en enhet ansluts till en värd, försöker värd att "räkna" enheten. Om den underlåter att göra så (enheten svarar inte eller svarar med skräp), det är då Windows säger "enhet känns inte igen".

Värd- och enheten talar över kanaler kallas "slutpunkter", slutpunkter identifieras av ett nummer. Det finns några slutpunkter som ett reserverat för särskild användning, medan andra kan konfigureras för att fungera i olika lägen (avbrott, bulk, etc).

Värden kommer alltid först använda "kontrollslutpunkt" (slutpunkt 0) först att begära en beskrivning av enheten, detta "deskriptorn" kommer att innehålla enhetsidentifierare (vendor ID och produkt-ID, etc), tillsammans med dess enhetsklass, underklass, etc (HID som mus eller tangentbord? eller kanske masslagring?). Sedan begärs konfiguration deskriptorn, som också innehåller antalet slutpunkter tillgängliga på enheten. Varje slutpunkt har sin egen deskriptor. All denna data skickas som paket data-byte som representerar en välkänd angivna datastruktur.

V-USB och andra USB-ramar/stackar har API: er och andra metoder för att programmeraren ändra innehållet i beskrivare. Du måste först förstå varje deskriptor, och sedan finns i dokumentationen på V-USB för att se hur du ändrar dem (jag ska visa er senare).

Värden gör begäran genom att skicka "setup paket" till "kontrollslutpunkt". Setup-paket har en definierad struktur gör det enkelt för enheten att förstå vad värden vill. V-USB (och liknande ramar) vanligtvis hanterar standard setup paket. En programmerare kan skriva drivrutiner som skickar anpassad installation paket, i vilket fall firmware måste hantera paketen installationsprogrammet manuellt, V-USB (och andra) ger några metoder för att hjälpa med det.

Senare i detta instructable, har jag inkluderat en soptipp beskrivare fångas upp av min USB-traffic analyzer. Du kan ta en titt och matcha det med USB specifikationer att se vad varje del representerar.

När alla beskrivningar har hämtats från enheten, kan värden sedan förstå enheten och kommunicera med den. Vi kommer titta på samtliga beskrivare i detalj senare.

Jag har en annan Instructable som visar dig hur man bygger ett USB-tangentbord som typer ut koden lagras i RFID-taggar:

Läxor: Läsa USB i ett nötskal http://www.beyondlogic.org/usbnutshell/usb1.shtml vilket är ganska mycket en USB-bibel

Viktigt: De flesta av USB-terminologin är ur värden (datorn), så orden "i" och "input" betyder från enheten till mottagande, och orden "out" eller "utgång" betyder från mottagande enheten.

Se Steg
Relaterade Ämnen

Teensy USB Wii Classic Controller

Jag är ett fan av Wii Classic Controller, men jag har aldrig brytt mig för att hålla trådlösa handkontroller som ansvarar för en tillfällig släng av nostalgi. Vore det inte bra om jag kunde använda min Wii Classic Controller via USB? Detta är hur jag...

Arduino lins Controller - synkroniseras Zoom/fokus med Wii Classic Controller

min Lumix GH2 Micro Four Thirds kamera skjuter inte bara fantastiskt hög definitionen video, men med billiga adaptrar kan jag använda den med äldre manuella objektiv som är billig och ofta mycket hög kvalitet. Jag skjuter en hel del prestanda videor...

USB-Wii Gamepad med Arduino Leonardo

Förra helgen jag provat den nya RetroPie på min härliga nya Raspberry Pi 3, men bara spelenheten jag har är oldie Wii Classic Controller; så hur kan jag konvertera den till en vanlig USB-spelenhet?Efter lite forskning fick jag reda det är ganska lätt...

USB: - DC Motor Controller med PIC18F4550 (keyboard)

USB: - DC Motor Controller med PIC18f4550 (keyboard)Hej vänner,KravUSB-DEMO gränssnitt styrelseL293D motor controller chipDetta ett litet projekt på att kontrollera DC motor med USB pic18f4550 gränssnittskortet med L293D motor Driver.Ett litet progra...

USB-Biofeedback Game Controller

bygger på våra senaste tutorial, som lärt dig hur man bygger en muskel sensor, har vi beslutat att ge dig ett projekt som verkligen visar upp kraften i våra muskler (EMG) sensorer. Advancer Technologies "USB-Biofeedback Game Controller" utnyttja...

Wii Nunchuk Controller

Denna tutorial lär dig hur man styr VEX motorer med en Wii Nunchuk.Det kan vara mycket bekvämt när du vill styra din robot med en Arduino och inte en VEX cortex och controller.Steg 1: material Arduino UNOWii NunchukLaptop/datorTrådlösa mikrokontrolle...

24 kanal USB ansluten LED Controller, upp till 1A per kanal

Denna enhet är avsedd att vara en mångsidig hög-aktuell LED-controller, med förmåga att sjunka eller / och källa strömmar upp till 1A per kanal med försvinnande av upp till 2.5W per kanal. De olika tröjor och transistor placering tillåta att enheten...

Bygga en USB 6 servo controller

Hej, jag letade efter en servo controller och hittade detta. Jag trodde att andra som jag skulle finna det intressant att bygga. Dock inte ens försök göra detta om du inte har kunskapen att bygga circuitboards. Det är bassicly en hemlagad modell av A...

PC USB Media volym Controller baserat på Arduino

Hej alla och Välkommen till min tredje Instructable.En vän till mig har ett ljudsystem med en urtavla för volymkontroll, och den sitter på hans skrivbord ser riktigt snyggt. Jag ville ha något liknande men med extra funktioner och anpassningsbara. Ja...

Arduino Wii Nunchuck controller

Hur man styr 2 servon trodde wii nunchuck.Steg 1: delar Wii nunchuckArduinoen2 servoSkärbrädaHoppare ledningarSteg 2: Anslut Anslut wii nunchuck som detta schema.Steg 3: Ladda upp kodenSteg 4: gjort!!! Du kan nu kontrollera 2 servon trodde wii nunchu...

Funtendo - en multistick retro controller för din PC

Funtendo är ett helt fristående retro gaming & controller för din dator.Det är kan använda den ursprungliga Nintendo controller, N64 handkontrollen och Wii Classic controller på samma gång!Funtendo är USB powered och innehåller också en flash-enhet s...

Skapa animering och spel: kapitel 1 komma igång.

Välkommen till först av en multi-del serien:Att skapa animering och spel: kapitel 1 komma igångDenna serie kommer att dyka in med Propeller microcontroller baserat system för att skapa din egen grafik, animering och video spel. Jag antar att du bara...

Komma igång med Mini fickdatorer

Om en och en halv månad sedan, jag skapade ett projekt kallat Mini fickdator och skrev en Instructable på hur man bygger den. Detta Instructable tar hela projektet ett steg längre genom att hjälpa dig att komma igång med din fickdator Mini. Har inte...

Bygg din egen mini fickdator

någonsin vill uppleva 70- och 80-talet datoranvändning utan mixtra med knarrig gammal hårdvara och 5,25 disketter?I detta Instructable, ska jag lära dig hur man bygger och programmera din egen mini fickdator.Utforska mikro computing med en maskin som...

Skapa animering och spel: kapitel 2 spelenheter

Välkommen till andra av ett flerdelat series:Att skapa animering och spel: kapitel 2 spelenheterDenna serie kommer att dyka in med Propeller microcontroller baserat system för att skapa din egen grafik, animering och video spel. Jag antar att du bara...

Hur man använder en Wiimote som din datorns mus

någonsin undrat vad coola saker du kan göra med en Wiimote? Så detta är definitivt där du bör start-använder den som en mus!Steg 1: Steg 1: material1. en Wiimote (naturligtvis)2. WiiMotionPlus (faktiskt är inbyggd i vissa nya Wiimotes!)3. Bluetooth-a...

Trådlös Wii Nunchuk-till-Mouse USB-minne för PC, Mac, och Tablet PC-spel

Redo att känna sig som den legendariska "Bruce Lee" med trådlös Wii Nunchuks på en rolig stickman kung fu PC video fightingspel kallas En Finger Death Punch (OFDP). Vad sägs om att spela Jetpack Joyride på Facebook eller din Android Tablet? Kans...

USB-mus gjord av A Wii Nunchuck

detta instructable kommer att beskriva hur du omvandlar en Nintendo Wii Nunchuck controller till en USB 2-knappars mus med en Teensy USB. Teensy USB är en mycket användarvänlig utveckling styrelse som kan programmeras i en Arduino miljö. Teensy USB u...

NES Controller USB-minne

jag blev inspirerad av en konversation på sidan Lego USB Stick!Detta är inte svårt. Det tog 10 minuter! (Inte inklusive köpa saker)! Lätt, roligt och lite töntig!(Använd den här metoden om du vill spara elektroniken, annars... du kan göra detta eller...