Lägga till knappar i din X52-Pro Joystick med en Arduino mikro (7 / 12 steg)

Steg 7: Utöka din skiss för att skicka data

Nu miljön är rätt konfigurerad kan du lägga till koden till din testskript göra använda av HID deskriptor.

Ta en kopia av din testskript och ändra den följande. Först på toppen av skriptet måste du lägga till en variabel för att hålla styrspaken och en annan för att hålla reda på riktningsknapp

Skapa en variabel för att hålla hela staten av enheten för att passera över USB till HID driverJoyState_t joySt;
En variabel för att hjälpa oss att hantera knapparna 4 hatt för att göra en 8-vägs hat om vi vill
byte hatButtons;

Lägg sedan till en linje längst ned i den setup() funktionen att ange starttillståndet:

joySt.buttons = 0; Ange starttillståndet för knapparna

I det här exemplet de första 8 finns bara enkla knappar så kan vi helt enkelt räkna igenom alla knappar, mindre de senaste fyrana i hatt., och ange eller rensa lämplig bit med variabeln joySt.buttons.

om (jag < (switchCount - 4)) {
Vi tittar på alla men de sista 4 stift som enkla knappar i detta avsnitt
Om knappen staten har ändrats och det trycks för närvarande
om ((buttonState! = buttonLastState[i]) & & (buttonState == låg)) {
Ställa in knappen lite
joySt.buttons = bitSet(joySt.buttons, i);
}
Om knappen staten har ändrats och det släpps för närvarande
om ((buttonState! = buttonLastState[i]) & & (buttonState == hög)) {
Inaktivera buttonbit
joySt.buttons = bitClear(joySt.buttons, i);
}
spara den aktuella knapp staten för jämförelse nästa gång:
buttonLastState [i] = buttonState;
} annat {
...

Som en riktningsknapp behandlar vi de sista fyra knapparna. Det finns ett par sätt att hantera en riktningsknapp. Du kan behandla det som en enkel 4-vägs hatt (Nord, öst, syd, väst), eller du kan gå för en 8-vägs hat (N, NE, E, SE, S, SW, W, NW). En 4-vägs hat är ganska enkel att hantera så ska jag visa dig den 8-vägs versionen här. 8-vägs funktionen innebär att du behöver för att hantera mer än en knapp pressas så du inte kan ange saker när du går längs med knappar. Så, efter föregående kod, för de sista fyra knapparna du bör registrera tillståndet för var och en i den variabel som vi skapade tidigare. Jag använder en bitmask för att göra saker enklare som vi bara kan läsa heltalsvärdet efteråt för att få "ledning" av hatten.

} annat {
Vi tittar nu på de återstående fyra knapparna som hat växlar i detta avsnitt
Med en bit-mask, satt lite som motsvarar till varje knapp så vi kan
avgöra tillstånd för alla fyra knappar på en gång senare på
om (buttonState == låg) {
Ställa in lite om knappen trycks
bitSet (hatButtons, i - 8);
} annat {
Rensa lite om knappen inte är intryckt
bitClear (hatButtons, i - 8);
}
}

Nu vet vi vilken av hatten trycker på knapparna vi kan läsa värdet för variabeln hatButtons och passera rätt värde till objektet joySt:

Fastställa värdet för hatSw1 enligt de knappar som trycks
Detta använder de sista fyra bitarna i byten så vi behöver bara kontrollera värdet av
byte och uppsättning av joySt.hatSw1 värde om vi har en enda knapp intryckt eller
ett giltigt par knappar tryckte. Nedan har jag visat vad trycks med övre
fallet och vad är inte intryckt med gemener. dvs. ULdr = upp och lämnade tryckte
Nyckel: Upp = bit 1, vänster = bit 2, ned = bit 3, höger = bit 4
växel (hatButtons) {
fall 0: joySt.hatSw1 = 8; bryta; uldr: centrera: hatButtons = B00000000
fall 1: joySt.hatSw1 = 0; bryta; Uldr: 0: hatButtons = B00000001
fall 3: joySt.hatSw1 = 1; bryta; ULdr: 45: hatButtons = B00000011
fall 2: joySt.hatSw1 = 2; bryta; uLdr: 90: hatButtons = B00000010
mål 6: joySt.hatSw1 = 3; bryta; uLDr: 135: hatButtons = B00000110
fall 4: joySt.hatSw1 = 4; bryta; ulDr: 180: hatButtons = B00000100
ärende 12: joySt.hatSw1 = 5; bryta; ulDR: 225: hatButtons = B00001100
mål 8: joySt.hatSw1 = 6; bryta; uldR: 270: hatButtons = B00001000
mål 9: joySt.hatSw1 = 7. bryta; UldR: 315: hatButtons = B00001001
}

Nu återstår att göra är att mata det aktuella läget för att uppdatera datorn

Ring Joystick.setState och skicka data till datorn
Joystick.setState(&joySt);

Jag har bifogat koden för detta exempel att detta steg för att spara dina fingrar.

Se Steg
Relaterade Ämnen

Lägga till Flair i din trädgård med fantastiska planket

Om du letar efter en trä privatlivet staket, staket eller ett staket för att skydda din Pool, barn eller husdjur har du kommit till rätt ställe. Planket kan förvandla något öppet utrymme till en privat, säker och lugn miljö. Här finns flera top mönst...

Lägga till knappar i musen

Jag har spelat FPS spel på min dator ett tag nu och jag fann mig ofta i behov av fler knappar på min mus. Det är därför jag köpte en gång en Logitech G9, utan i vissa spel även knapparna på det är extra 4 de tycktes vara några. Någon gång köpte senar...

Lägga till glam i din tråkiga håraccessoarer med enkel DIYS

Är du uttråkad av plain svart och vitt hårtillbehör? Idag delar jag några lätt DIYs att piffa upp tråkiga hårtillbehör till glamorös och kära. Rhinestone håraccessoarer kan kostar mycket men när du DIY dem är det bara en bråkdel av pengarna. Dessa id...

Att lägga till Freon i din bil Air Condtioning system

varje bildelar butik jag går i dessa dagar har freon till salu. När R-12 var runt var jag tillstånd att köpa och använda den. Jag trodde att det var bra eftersom du kan skadas allvarligt och eller göra $$ av skador på systemet din arbeta på. Jag best...

Göra ett flash filter för att lägga till dramat i dina bilder

med billigt material kan du göra en gel filterhållare att lägga till färg till din flash bilderSteg 1: Skär toppen av av läsk flaska Jab saxen genom sidan av en ren klar plast läsk flaska. Inte stöta din hand. Börja skära av toppen. Prova och göra et...

Lägga till LED i din kostym

mycket enkel LED setup för din kostym!Steg 1: Skaffa lite skräp! jag gjorde en "promenad för the Cure" för bröstcancer medvetenhet. Min mamma var att vinna kampen, så ville jag människor att njuta av i humor och kärlek till livet hon höll genom...

Lägga till Internet-kontroll i Raspberry Pi Robot med Runmyrobot.com

Hur dela din Robot med världen och låta andra människor spela med den med runmyrobot.com. Denna webbplats beta-testning men det bör fungera. Om du har några frågor, låt oss veta genom att publicera på webbplatsen Disqus sida.BTW, måste du ansluta din...

Lägg till flair i din trädgård med återvunnet material

Vi har ingått en ny fas i vårt engagemang för en hållbar miljö genom återvinning. Återvinning av produkter som dörrar & fönster för fäktning handlar om kreativitet, ekonomisk strategi och vår miljö. Här är fantastiska nya idéer för upcycling dina gam...

Lägga till en router tabell med dammsamlare din tabell såg

Detta Instructable visar hur jag ändrade min bärbara tabell såg att ersätta tabellen rätt förlängning med ett gångjärn router bord. Den svängbara tabelldesignen ger enkel åtkomst till ändra routern bitar och justera bitdjup. Avsnittet router är också...

Lägga till POI platser till OSM med din iPhone

att lägga till platser av intresse (POI) platser på öppen gata karta (OSM) projektet är ett bra sätt att öka den digitala representationen av din omgivande samhället! Det är ännu enklare än du tror, eftersom du kan enkelt lägga POI platser med hjälp...

Nybörjarguide till OpenGL: Bygg din egen CAD-program

Min Autodesk Maya elevtillstånd löpt ut nyligen. Så jag gjorde vad någon skulle göra, bygga min egen 3D CAD-programvara (se upp Autodesk).Så jag började skriva mitt program i C++ använder OpenGL, SDL och i ungefär en vecka, detta var resultatet.Några...

Lägga till riktiga strängar i en Guitar Hero controller - OpenChord.org

idag vi kommer att visa dig hur ändrar en Ashley Rock Axe eller liknande "guitar hero controller byggd av en riktig gitarr" till en controller som tillåter dig att spela gitarr hjälte/Rock Band med riktiga strängar och band, så att du kan öva ri...

Lägga till lysdioder i en Nes-kontrollant

Easilly lägga till led i din nes controllerSteg 1: Huvuddelen av det lägga leds till en Nes-kontrollant är helt enkelt allt du behöver är några tråd, lysdioder, sauder, och vissa epoxi eller en annan stark självhäftande.efter öppnandet den nes contro...

Chia Fresca: Lägga till näringsämnen i någon drink

du kan skal ut förladdningar av kontanter att köpa chia utsäde barer och tillskott eller du kan bara lägga till dem i din drink för en läcker och smidig texturerat boost!Det finns en hel del av näringsmässiga fördelar att Chia frön, vet också som löp...

Dölja din rörig bokhylla med ikea paneler

syftet med projektet är att bygga vissa billigt, lätt och flyttbara paneler för att dölja en rörig bokhylla eller använda som en dörr.Detta instructable kan också användas för att bygga en färg från en bra utformad tygNY: Jag publicerade den instruct...

Lägga till pedaler eller ergonomiska knappar på datorns tangentbord

förvandla eSmacks öm knogarna till emacs excellence.tappity-Klonk-tappity-kran.ÖversiktAtt trycka på en knapp på en klaviatur stänger en krets. Lägga till en längre switch parallellt till en viss knapp genom lödning/koppar tejpning tråd inuti tangent...

Lägga till en Pro Sound / Line-utgång till en Super Game Boy

Välkommen. Idag installerar vi kallar mest "pro sound" utdata till en Super Game Boy. Det är en line-utgång som kringgår alla oönskade kretsar buller och ger dig en bättre signal-brus-förhållande (mindre hum, mer bas) och låter dig använda RCA,...

Hur lägga till påskägg cookies till din webbplats!

Har du en webbplats? Gillar du påskägg?Väl sedan detta instructable är för dig!Detta kommer att visa hur du lägger till en överflödig lilla påskägg cookie till din webbplats att människor som är smart nog och surfar kan hitta."En HTTP-cookie är en li...

Ananas kjol (att lägga till mönster till Sketchbook Pro)

om du gillar piña coladas... då kommer du att älska denna läckra ananas kjol. Jag ska visa dig hur enkelt lägga till en färdiga mönster till din linje konst i Sketchbook Pro!Att dröm det, rita det, bära det behöver du:En färdiga mönsterSkiss boka Pro...