From 3cf7e2cf3ca52868b148b45b33dd5a704c26b6de Mon Sep 17 00:00:00 2001 From: Charles Mangin Date: Thu, 24 Oct 2013 11:35:45 -0400 Subject: [PATCH] Added Joystick Shield files --- .DS_Store | Bin 12292 -> 15364 bytes IIc-USB/Arduino/IIc_keyboard/IIc_keyboard.ino | 31 +- IIe-USB/arduino/IIe_keyboard/IIe_keyboard.ino | 6 +- Joystick-Shield/BASIC-calibration.txt | 19 + Joystick-Shield/Joystick Shield PCB.fzz | Bin 15960 -> 44635 bytes .../Joystick Shield PCB_contour.gm1 | 26 + .../Joystick Shield PCB_copperBottom.gbl | 6766 ++++++ .../Joystick Shield PCB_copperTop.gtl | 6803 ++++++ .../Joystick Shield PCB_drill.txt | 70 + .../Joystick Shield PCB_maskBottom.gbs | 321 + .../Joystick Shield PCB_maskTop.gts | 334 + .../Joystick Shield PCB_pnp.txt | 46 + .../Joystick Shield PCB_silkTop.gto | 18080 ++++++++++++++++ Joystick-Shield/Joystick Shield.fzz | Bin 13754 -> 0 bytes .../joystick_shield/joystick_shield.ino | 4 +- .../joystick_shield2_ino.ino | 95 - USB_Joystick/Arduino/SPI_test/SPI_test.ino | 67 + .../Arduino/USBHIDJoystick/USBHIDJoystick.ino | 86 + .../USBHIDJoystick/hidjoystickrptparser.cpp | 104 + .../USBHIDJoystick/hidjoystickrptparser.h | 60 + .../Arduino/digital_pot/digital_pot.ino | 90 + USB_Joystick/PCB/USB_Joystick.fzz | Bin 18274 -> 20570 bytes 22 files changed, 32906 insertions(+), 102 deletions(-) create mode 100644 Joystick-Shield/BASIC-calibration.txt create mode 100644 Joystick-Shield/Joystick Shield PCB/Joystick Shield PCB_contour.gm1 create mode 100644 Joystick-Shield/Joystick Shield PCB/Joystick Shield PCB_copperBottom.gbl create mode 100644 Joystick-Shield/Joystick Shield PCB/Joystick Shield PCB_copperTop.gtl create mode 100644 Joystick-Shield/Joystick Shield PCB/Joystick Shield PCB_drill.txt create mode 100644 Joystick-Shield/Joystick Shield PCB/Joystick Shield PCB_maskBottom.gbs create mode 100644 Joystick-Shield/Joystick Shield PCB/Joystick Shield PCB_maskTop.gts create mode 100644 Joystick-Shield/Joystick Shield PCB/Joystick Shield PCB_pnp.txt create mode 100644 Joystick-Shield/Joystick Shield PCB/Joystick Shield PCB_silkTop.gto delete mode 100644 Joystick-Shield/Joystick Shield.fzz delete mode 100644 Joystick-Shield/joystick_shield2_ino/joystick_shield2_ino.ino create mode 100644 USB_Joystick/Arduino/SPI_test/SPI_test.ino create mode 100644 USB_Joystick/Arduino/USBHIDJoystick/USBHIDJoystick.ino create mode 100644 USB_Joystick/Arduino/USBHIDJoystick/hidjoystickrptparser.cpp create mode 100644 USB_Joystick/Arduino/USBHIDJoystick/hidjoystickrptparser.h create mode 100644 USB_Joystick/Arduino/digital_pot/digital_pot.ino diff --git a/.DS_Store b/.DS_Store index 85d8338ae1225c08636f2d28a19b35c7edb18836..1cb8b53507dab4d8bf9b43385f70692198fafd30 100644 GIT binary patch literal 15364 zcmeHMUu+ab82`Rf=q}sBmeSG!!Xa3yw6z84A1rt+*9szma4jtbt#`LeyRf}&ZuhQe zEf$FQAObNyX`)1Z!o)u@zNqoR2Q`uyO$ZUA#>6+COwYx)}0+1{vH7``x zS%qZCmtkMd2uT(yC_+h!Q1q7=D8fk}^8LcToDoul1Nw^(^jk)Mg@U|wx_^kf1BQi^ zXNiDBpb!DJb}xly7zGQw!1}$rt|Heq?nEL++Dia@6*}3;Z!{Y>?ifXF6Jt4h0)6kY zz%tlPzXUYF07RiDKIu-xZ6{8acj6Pa<$5hG*RW(k>B2>2in3TKKQd?~4QH~)Nhb~W zaCFR>j9P{nkEI^tbuZ?n-JV#ATlUAiF|zP_zvI|cKjM22T81|^qSsDMwYGIMhFUjw zPB(_8I$GKrL+w1<4B105H(@3X zD>*t$vy=3!qn4RcE3r}SPsYYg5ml?LRP_&(BL?+ruVXMDgIly(ZH=NFX8N5elg>h| zuG7}5dQ9nesc+&I^=gBvyK4V&B83Ruq&6wKp$^!wxM>Sji@I6S_o#yzF#w^gQri@D zh&HIkse7)_b!rbP`WMRMtl>vvuD5T(Oj6t1cRW-{UFs<|L`6BoBDxL3G}eb3*lYu= z54VU4pb>V!0T?ExCt(uK!3%I6F2Kw12D}CD!AI~Jd=6j275Eyi!*}pK`~WxL zSNIKnN5sXbVFfP1DqM|s;aUvgJ=l!*V=HdP4(!Grj9@SB#e+DALm0zjcpS$uiPLx% z&*Mw@D!zu7@G`!SAB#SfWJ%m7uCr(SglhRrbu<1GS#n@b9`-Kp3;#Dfyk5cBx2$S; zbq%Lu$M){o8O@u-TrzR~2!e3pWQoD48D!&%+Pan6YIRMqsUINTnI{xRY`yF%_a>4u z66uP#tk)V8BDr3|FV#(26Qi)cKv+374OL$#tXtJ~MrXZLShuNNjJWzDVO_0;RaFOZ zQLjZ*MaM$E-Gptg6W2Z@rd@$=;2Qi0Kf^EZ2l1;6D{%$Z;ws|T8r+Btcpq-UCTzoY z?8I%@MeORsUAPN)$}Hjigu;B}mw<+DS{Bk8|S%hvX-{}e5Yjw*MGiaG@*N!z=QCaI|J9Mg0Y--3xM z>Km9UZGv&MsBa!SnXfDo0g1pJfxrSW$`ITC?=AlS{~dva9Hd0xPDKDqBhg3?jXt|Y zkPk!&DMEBSK?f_$Z$?NSLMP_J^n5#>F4%TF-xeVqUyS+ourFtXFc>@G|`C?-5PT2PZIW!>ZjVj?^+ z?PoKM6eb@K6XDCvhv|X}=}zVrH)1;Rd2*sSigK^XjpAs^K|)GQ1q_oLB@CF_UjZp4 z0VEgZ+bv)K$$ j32q?m3JU9uiQkzg^Q#1MFhXL0VRJms8s^Ok8Xx!pc&T(t diff --git a/IIc-USB/Arduino/IIc_keyboard/IIc_keyboard.ino b/IIc-USB/Arduino/IIc_keyboard/IIc_keyboard.ino index 201f675..16d3374 100644 --- a/IIc-USB/Arduino/IIc_keyboard/IIc_keyboard.ino +++ b/IIc-USB/Arduino/IIc_keyboard/IIc_keyboard.ino @@ -184,6 +184,7 @@ char modifierKeys[4]; unsigned long dTime = 0; char CAPSState; // Initialize this to a reasonable value. + boolean FKEYS = false; // used to set numbers to F-Key equivalent. currently tied to caps lock void setup(){ @@ -222,6 +223,9 @@ void loop() resetCapsLock = false; } +FKEYS = CAPSState; + + /*char CAPSState = digitalRead(CAPSPin); if (CAPSState == LOW) { Keyboard.set_key6(KEY_CAPS_LOCK); @@ -300,10 +304,33 @@ void loop() Keyboard.set_key4(0); Keyboard.set_key5(0); //Keyboard.set_key6(0); + + /* based on suggestion from Craig Brooks + uses CAPS LOCK to turn number keys into F-Key equivalent. + */ // Update keyboard keys to active values. - if( KPD.key[0].kchar && ( KPD.key[0].kstate==PRESSED || KPD.key[0].kstate==HOLD )) - Keyboard.set_key1( KPD.key[0].kchar ); + if( KPD.key[0].kchar && ( KPD.key[0].kstate==PRESSED || KPD.key[0].kstate==HOLD )) { + + //Serial.println(FKEYS); + + + if (FKEYS) { + if((KPD.key[0].kchar >= 0x1E) && (KPD.key[0].kchar <= 0x27)){ + KPD.key[0].kchar += 0x1C; + + // Serial.println( KPD.key[0].kchar, HEX ); + + } + + + + } + + Keyboard.set_key1( KPD.key[0].kchar ); + + + } if( KPD.key[1].kchar && ( KPD.key[1].kstate==PRESSED || KPD.key[1].kstate==HOLD )) Keyboard.set_key2( KPD.key[1].kchar ); diff --git a/IIe-USB/arduino/IIe_keyboard/IIe_keyboard.ino b/IIe-USB/arduino/IIe_keyboard/IIe_keyboard.ino index cdda43c..8f6af6d 100644 --- a/IIe-USB/arduino/IIe_keyboard/IIe_keyboard.ino +++ b/IIe-USB/arduino/IIe_keyboard/IIe_keyboard.ino @@ -162,7 +162,7 @@ void setup(){ // DEBUG - Serial.begin(115200); +// Serial.begin(115200); } @@ -288,14 +288,14 @@ FKEYS = CAPSState; // Update keyboard keys to active values. if( KPD.key[0].kchar && ( KPD.key[0].kstate==PRESSED || KPD.key[0].kstate==HOLD )) { - Serial.println(FKEYS); + //Serial.println(FKEYS); if (FKEYS) { if((KPD.key[0].kchar >= 0x1E) && (KPD.key[0].kchar <= 0x27)){ KPD.key[0].kchar += 0x1C; - Serial.println( KPD.key[0].kchar, HEX ); + // Serial.println( KPD.key[0].kchar, HEX ); } diff --git a/Joystick-Shield/BASIC-calibration.txt b/Joystick-Shield/BASIC-calibration.txt new file mode 100644 index 0000000..31bd603 --- /dev/null +++ b/Joystick-Shield/BASIC-calibration.txt @@ -0,0 +1,19 @@ +5 DP = .10: REM Deadzone Percentage +10 XLEFT = 0:YUP = 0:XRIGHT = 279:YBOT = 159: REM Screen Bounds +15 REM Set target box coordinates +20 HALF = XRIGHT / 2:D1 = INT (HALF - (HALF * DP)):D2 = INT (HALF + (HALF * DP)) +25 HALF = YBOT / 2:D3 = INT (HALF - (HALF * DP)):D4 = INT (HALF + (HALF * DP)) +30 HGR : HCOLOR= 3 +35 REM Draw edge box +40 X1 = XLEFT:Y1 = YUP:X2 = XRIGHT:Y2 = YBOT: GOSUB 2000:X1 = X1 + 1:X2 = X2 - 1:Y1 = Y1 + 1:Y2 = Y2 - 1: GOSUB 2000 +50 P0 = PDL (0):P1 = PDL (1): GOSUB 3000 +55 PRINT P0,P1 +60 GOTO 50 +2000 HPLOT X1,Y1 TO X1,Y2: HPLOT X1,Y2 TO X2,Y2: HPLOT X2,Y2 TO X2,Y1: HPLOT X2,Y1 TO X1,Y1 +2002 RETURN +3000 X = INT (P0 * 274 / 255 + 2):Y = INT (P1 * 154 / 255 + 2) +3010 X1 = X:X2 = X + 1:Y1 = Y:Y2 = Y1 + 1: GOSUB 2000 +3020 GOSUB 4000: HCOLOR= 0: GOSUB 2000: HCOLOR= 3 +3050 RETURN +4000 HPLOT D1,D3 TO D1,D4: HPLOT D1,D4 TO D2,D4: HPLOT D2,D4 TO D2,D3: HPLOT D2,D3 TO D1,D3 +4010 RETURN : REM End Draw Target Box diff --git a/Joystick-Shield/Joystick Shield PCB.fzz b/Joystick-Shield/Joystick Shield PCB.fzz index bcdc7ff1b48715bcd18ab2059e647456f9653489..ed8954a3253b7b8fc3541285c22ff75b8014a100 100644 GIT binary patch literal 44635 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 z zvj$gudSWZ$n-TwfEx71(#x}}gY;e+dhnGrVWI*Y_bkcW$mv zqrj@3QZpHj(8|m~^3}+oKH4EchN)8n8xib`_~5mk>{BKi5#)^cK*D13l;V|Kdeaj8 z=*|m5wX&iD-1=WCbG1|y80<=zqC3?=unKBY8p3QT#Ra**dq5``N9kLgW^QU!4fMTc z6m7;#LA8j$dTza85DT^BL8UD}VZrBz}VGvjXLkGms#nY3jkrTPkpzpJ{ zB8sOUr-GJVVN*4|9$-5#9rm5#rmA~A08$7ffhxJV4QQ9Vnz>=oN$}erG!fPsBlLv% zQi=<6@x?U|bRE9*8gS`SWc4Y24C62wQ1H$lkm*KTS#%>R;bS*s#x+!!mUW#cuXjjp zniuC&&wH%TfFN25qIB&=OTxck;#S?wlaCegPU-792A=f1JY$P|8?h9^JOoIpYH%M~ zGIm--yKJ`ciBAfSzd?QsbtfKqxITF}d1-!vWFqATC^JyFAk(F_|3AYnFo99`;t% zS!#-B%i0Vfynb|S&o{I!-}}fdA;=qu6p)p;HfyHTA!($n%63K&F~MzjX);t?;i81J z7qr8kAtpDuXx>R8j3bOhlQE~u%u`guQ*JWjkI}QKQR=O2owGc%fz4`wlcQ zX*WrWfOx?r@SbVVhdoKiC`ywoZ6il!a{q!eVxKNGgn9^ps{8(7OPq*X}6Yo=Vl}s+Dj9*;dSbL2Pdl{LmQmC1Zy0=%`PbL|^PJgVB-_YnUh0 zl`4`XCIDNA3raybBvv&63j#|Yi(q64=jsB_<&JpE5W4K-TpZkd*hnAIxamu!fPF7WiiogWGYyjz!bVXS6A+BcN!aCc$Z;g>ytxWuTx` zwIo3-lA{0iec@v>y<8H{pw}CXDHtZO041VWNH+p=_c>LhX`x;G*2a^LTI<}}LY++2 z*cZxJ56%}|ZebE{g?icb#Jzsu`||mQBh3eoDXpEA7zeENu{hyeNwT8^&k=n65A9;j z=k81oiae(SjF~sM#<#Tyo|JxkD0u$5-fh@kn@#j=Aje3VT_LxWe@~A!st%^44Si#D ztFY-#c6vcV6kCob^YN)5 zoer@;egYc}60~=^*!pgbIaZSag|LoxJS;hC19o#dn>y2&bval@3t@J`dH&>j*mG{5 zY6chd)UuVfJxNN~aP&XtF3E*QGQEg^u&5SEOGHOH#n}R_fo~txgLBL(+a!aP2ZG6> zwi-%445`@lkTfAu2rCsFRN2oct9@EhvII%!(>5sENS^n?k`A5T%Ml}+MKiM(F?4@S z;AjJFD$W7aaCus7Nb-hnCSS*{t3BKSqpl$bB)!#x+5 zyhcrh0NN5#mz^C%HnRE|&M4*~1s2sXOjX5{`*#H`#>Q}}>@g7P$3}HRxJ3SVapwqIbkF!a6p!C{#Ibsft~?=WHbUu{Zd9)a<+l01(bvDf zNFF16YXK5OE9rA-fy{BUteF$}EV{eE+TwZmS6`7mDIyAfM_X^C`h7Wa>v?ojVrpq&oRXe)YQB6lUbz&&L z*-o#kd6bxwX3f3qjy;5)E%<*&Ml>hEdF>P}97sxTb`))NHDn#5WTa6^2{y zkUPqfgW*x)JIatg@^xbhui6p&BR=ca(fGLk%1;>GgDoKP`I-p3x7wK?N$%$&HrrQt z1s)F!Mt7PN4Fgt6wP_e3SPV&|?>Hy|2@s9w>sR6>88InYRu$2!SyU#cqryfXxvVmT z^^0So%~eBCIkt0Jo-WR8A(mb~K#6_Ea7g9c^W7c6f6Hz-?%R6bE&3vCz;veabT zEIEu$DENJ8rb_&Esq3QZuA$ax9kPK!|GEll@c+7!htyyFzV64DTD}c?^xmR*@c!df z;9D%InV<)je-L+cooeP&en^hbbpYyjU8+g4gEdM$wg<{kyu?4L_bbtppElW4@#53AXo?idtNhMW^&#mU5AYE`Ao@z@aF2=l&eM1r zUMeXYk*G0W;+#_fiG#q9BUAdEQ&owB>X5Zylo1)c3@k=oDis@%>@krTCSEFa8 zU)7w`Vu=IO(6#xjy)Fw+`K!K_d8*G>0>=Z*qNA6tJ8zJ7;@$k8p8v@`?F0nZ+=G6- z3@nU%_K56Lo0r#y;EYq9YH8nQBv+OwW5^*SN6q5ms1xO-HP<5|1>>^Mg}NydZI)|& zU#TuGgFF0pkFnanBOQdYzTQj2WLyxr5EPB>v~$XdLwdyZ7CynQJaoJ?GBwpomCV7J z+O0;Gk76Xn>~;okpA?x3T?H-%nVc=C@+j4AW`^Z9W+4X+o6L+jWkcGRz8OqSYc2Ed z^nJbd0_P9r@~%$a9uyUkq~1EIvwJAf_sNo$4GyD{J+=`c+LWg%-6mwSLGL3I`A0%f zn8Ug*1Sl}g9+yhXlsg=`4vm{-7<$F6F{@~2g5=3!VVBop?39U1kt z<Oq>{wK8yU8=q8FQFHGPxoYW0(8{b#J|z$_da z$l~4Nz1OG}XBAhV(VNjyAX?4z1Lo~NfizzHMv zptkBmydZb3$kEw7KufEE>0v{?_M$CpfJoN2+hNthDSCWwiyi~FJ1dTXM?$x4+4Qj& zxRLGb!g2P^6uY|bWhC1ZQlH27+wH!N*L<)3)ynxpsiKi_FHd0!5m4(rsnEP)nmgSg%CPqYf@uI zOV`G21yjLW1UxX+>2PDV%B*0?j&XPVXJ)sfw7Eb*eNWYGzLC9lWSZ)8$Gwhb8aIDeCL$2WgZPxI!ioFUwV9< zUc`wR%rkvxcVX(@e3#($u83>;9bvY%u&`>%;f-l`ckZYs>k;^PY}Tf9`2D~?O{R~J zT{25&2}n-F6ibtJJgLrX)D;oE14J7ReKsXdwc0E5b5cew#B;0fHi?MOi!@@dM(z5_ z(^m)TKJ%UtDJCeJ`_oLXONm?Qg+Fn9(j7%49Z&O;G}BF>Y~0*s9mcBn2@1b!?sy(| zq);qnO7oiSVX=?a3Pi%Z#+#V!D)!43z$k*4A23++8O6?02a5=kP2M^7)aN?eb(}4e z%aeJj9y?jLowwEe@gi}-if-+Eoe7;ItkInI@@ccPcdM$As^YSW3sZOP{Xmd;0b zuk31x+h;-j#w5n*j>Q`R{V&zs+uaK{t~45p&g9X~W$vD2SuDp(l40&dRc!0?d6|+& z1}uHcug(#69qx+z>;xB!@YaWvvgn%u23hYLxmD+wu`ZZ@%nbInGYzwdm^;vd@#CZ^4 zgF+j3^4;A5LyhwK!=OtI(h{WBpy2lrWmh^}LOEvejE0IY6tnQ3iVSnUZ>=+m_3T=<{I+$MbT@njnnoje&yvod+)uSm+ks zt!A9Jwi_D;d`By9PUFyb^Z(xT?Zjr~{KTul-B-lp(f3~O^EcovR_(d3SvK{4=T~-m zm!`ExM=Ouw;8=&Qrp?Yji?$e^f4>y{?h~WZaTi-Zwo+eYW>zJNzw`lCbHw= zZZ97_2(p2x`4CFEC2(r;eGsWtO=Ko>zgj9FVLjDUv>^=5k*D`8fo7Xb>r9{fo~JG! z-!rGy^7BTO?^A=HuS(pyPrvlW!Q5-;{Lbb&_PNoi!NN3)^78w>=r=pA88Tgc6NPCE ziLH^kvWD7xqHkK^Ch)LP2=yfcg!3)4h_~6M2e=pR>v}TqH@v%WTY9A8s6`giU(sMzX@O=?ft zxtIh0=PJ&|6v zx41?uOJg~K5vaf;mJCT^0)0{)GhCQO7pHOgq9tXZms&Vo&N*U^Faj*6i&+8w8ChTV>`nJ!P*X_CL-O7IzWqsQ9Wpp?=u9l^^#OI4{RJLQx+#XMme4bR(}sLCv2N)7?7< z=-WusO=tud1O^Jlo=M&8iHF6)OO5a)Nsr1g-9wKmX7DAB^)Q){jMntLY#9+4F;8>E zgdQwhg;pt;lR;KeV5dj#w}~^`VOk$vhNQKtj>oc4#otSy`xMB}NK4q+x~>y3WuTOp zVT5Y(I!l^P-OM#?hchlym&E zB1p$2S7Fb?Mdo%%boa}BCMp)VFAru?=Z@}XZimIGIJdpuB))vwz#%A7Pq39$`F3Hc z=(wxb2!19mVZlN4mGeV7x@Ca|8!NQqk~x z^XA!zg3sntslHV=a(>uOd8N5s9 z12NTUx7?Rl*bnwJ)N);Jw7OX1*frPi-=anc-n5nN#GXxjM8o^|*32uWWY+JJSoh(Y z^a$bRiXt*lirk~AEy$~6hM$+b*24BqnCj%iJHMkMiOG{los%9+k7}FHFB>%|_ddK# zo-D0+nbS3pRpghUm8Vbgvpz z73s%y3|t(n?u>DSJ%FTZ+j^-mPd%7FV{KXQ_UN!Iw>B?-G?y8EwJpR5d5m+Ur8y~l zl>0onif7x@nzWZ4{6v=fa5{#x$mWIIE^gU91Xpozv5BR`dT&d}n9xwyhslT0!faDc zFN=y$-_nJwMTG^Q>(raGN!awr!@oN=sm_nrNVpiMq{@R#R^i@`CD0E|zO8YFqHw zz62;&KC{x&=opHp%_o-oSXS)RP{JW0VeBX7=Zd@09Dy+WBIi|lrZ*_hsdy)~j1^as zj)J35NxW!vM+xk-FlFBCZ)i?4vsB7ChrUJ|?^vo+GdE>B=%TSgt>cL5n5uT?&}R07 zktT@Ex%7b@Rk`N3q_c)@?ux3JuRL4frlRQQrZZSQkL;iY@lj6|RoErx4IjV{^mEG@ zj-E#(N5fUdVVB%njnE?PFa824Ak4H&(ix2iup|9wRHvKqaqQL8xxFK-DEN+&%HVj7 z{QqqfzuUc(VW8m#L zrtXly+*?MZ1z(Ot51!Lvmz8)c;X@B=X6ma$oW&olH(6iI*BUK-Me=mDr~9OeQv?)) zg|-5HOD;jThm{~~afCg4AYzAAE&S;SdtUNB*0`|6G4@A|FT%aY2@8?|SSTV=CkacE z5h?{I*ejB8SmGk|r`W5K|4hUA9K41pvav|$`U0fmekbc*)@-?+?_C{`?fQY}zMw#J zbw7nhe-i(Z);mAaea*(J10?QlQf@byJQ>SBQgxRj$JE1W(A*xhN?ZK@nc(}W;aA<8 zWZz?uwdJq;-A(50Y07mn?*{?R?rEj|Ab>34&s^XCYu%f)Anh>ZcmD1s^QLWioy@x- zuCse7t2e|uGX1+BU+;Ow-EoJe`=HEU8NQ#@Ukv?_++_RkYyM8Y0ckiE1)9IEk{`Ld zRlgr^`t&P4I(+jiyJH~QVDR$GP(#@rqro5fyT2L(sk_!cb90%XJGwhVzmj^_c|40| z*6R!(AQ81b)qW=?TIS!;j@WYib-&0y`}?NSk=N|Im+a5|4JOa=%2|?Bo=uAG*POVS zo((NaWoFw){F@hcaba!}RT8hj4oV3Mhbp|m zq2F|GHz0d-A?C8DXKt!ntt%^zJzI}eCA3;?F;RY@a8d18?Qq}W5j%KH#jd7 zkTA*Jr#jCcTwTEUhB?YuDK;x>#_w>+EVZaeB(}Az<*25Wh2O#SaJK=EW!`R@z!byM zM8oGU^2!Bgcgg%`zGUn57QJTj{&UlO4V*PictK5hqCL}jDruqQC1uObl4{Z}!Dlg# ztfw?^b~QcC46|leED!JHJs;Y+&(u1ZQ{ZsS$k^_K>Ba>6eCYk>91lXlyakePs)#}< zX(W0>-qt`}%AtUw`}{5TYzNQAzfyW^m~?8mB9;`)U`hLPZsedpWJ$9LPc;)IzU(S4 zqFn?ScFae?<5V%;EPzfP_lmwpoM*vmD&S6F2xEF%NO_{f*B!tVjp}VN=82Mg(}WjF zsV}f+J9<2xb=@o~pa{@Na`~m+tN7jL7e>{sZ%aRHdRERGlI&_4S=lh()MSEt9u*M& z_PVB85j!yGH|b;QTSR#s8KU{cz{p^q>qT9f9TMe1>v1mvgXWO-=h`Sie#r7>te)_E zRYlwXMc950=}=J_(0%l{af~;hbSOZhfY8VEF!XxVt|U42GiZ4nzemOq)6RLV1giff z=UI0#RC(KLpzqLeBIl_l@7mkR+hp(bpk%zD2hU=OK=73M)}6eLo4Jh?kWi>zh`F+Y zE(tDY#D;fZ+^gIU`O6K^&kN$xB>ma!tx$Xj8;MV^jmAll4R#@l;huu!DD*9NFw~6KQ z3qD7FF)F*^UVXJ{n6oM3Vxn`{zM-lqE7l%^G|ZVS-6;;4T4pA04G;+s0N{cM6uwHT z=;AbBYK5>-)Hd`jzrbVdlf0)D9xfdgU~a54=GHkS?H84AQ7(enI*ERy@Qz3qGg2kq|7Q=KzMp{#%ruD zp#4e*jlyHY9$86(;7ky1M4e#6I`@?K8+ZV0E|bO(zJZ22(n(S}oT{QmrT7jp3v)8l z)2A_UcFRz@81uXR9Q#!Gw|eo$Z_oPb8s=&cvo`C9s7pQ=rRSeTCx&U|matFSRunIC zOE9wY)b(3%-;UCPBV<9gS(oaR)SnpV0DiQ2@o);sMv`o-MH*54()<#3`v@%u$wmYC zShwCF?olAD<2vH3X13BZ5}iv}@RUZT8VW&MBx)?#ZnjK8RHI{3XZXo1Mw6rV3X7~8o?vamI}X)P2y%`KLU&Fq zDBTs@@HPT13tiWHS=UvC^3}|bpYUXRnZ6BQ|#vby^UUD{_2fmn4 z?&A?8cyFTq($JTI`S}~k40E@}r;FH?+J=Lp3Q`p7g_R}P zz~^#%CC0=q-a?{2Q9JR3X025DC*(@C#Fj}Xz647rQ+ER|VypsmV_4*TN1Yi(R>=ku z1!6+*z>cpH>Emczkt6A3$;FmWaKhs`If}WKxR1Hyy)Fkx%;sPUWUs1~R%^Ow<49az zMbJr;b1px`36H+0V>A=MX~V{N>TkDrF)0&vbg8PyWwE!$ut1q%@N z=1|AMyHdYG>y|=i3?edfbrYYL5NaoeUna(u@fSGhsiwlbbomqxCweuE#$|wP6!EMQ zZJ7`k?4paF27V*T=WQ#y%JQ!wcw0NCh5Q z;mi~EIF4W6xZb=((yBE29iUD}zGh@Y2uLw!U$FaG1y3vw!9n~{L8VXjv zQBlGZ2Jr<{0${qYpaK36bBay;>E=8h$O99-m&FT&2Qx(LnEvPHEr$!(2Rn@{I$3xjs!ir8tecIg-L< zZV79H(K-&*YMp%LXoy{-Tx-dr+i0tk$v;qL%4jqMYCo^>q38$~Pulp}Mkd2x#kQDc z=LXP1tv4W@t$m6NHS9MPM?uxy>uA5R;-}5O1~DUIKhr4<5|<6LP7Q@>) z-VEv*2mdMhg{<6XkJVHFm=A_p|7)DZvV`I+05;b+3k8NW9KGmElS3rvjX`1K2XaF} z@ERYXA}GfH5Owg}Ob(@9v>z1ye?jL1X+Q+UduXfwBKn1@qw5c(g;Ri^n?r}r09M}j z8#m#)vz~R)8(bSkuIRfmJ*2vxIKVehs0MH?{O1CyZ&68qH~l@s;p5h0hS-j%<`g4O zCt6Hb!W>Ca^?7~k_9Nw)SLd@Tu3{u&2U(tVqkh=@rdN?CVP&ao3Kgk54 z<(b0p!@|m^?(3r>g&5kK;q6Ra;cup@o0kMtt@Q7n7hzT`Nw%YiUQ9m`^g9kA&pZNU zUQ{J|ohK06q&d%+l<&Fm#c0i0e-D#8jCYjA?wR*|kt)mhiE)_v^surFc6H#M&$F+U zhA^u&Kq4%oWN%4=F4~!kKA~S-aFbusmbU9zA^esi)7c@)av$*F)@)E_ zoEiC9yB9hriYW9;F31qSAUeriErES#oULy?7vB&+H=5gBEreZu3=Gr4B-)6d75#Aw z?0l3<=QE!8a{ZN&y9I|}4H1Rz1($a%(aZPIaa&-SKc#yE>mx>oR@arFQa^o}qvhuv zO{*L`C(&eA%a1ymKCtaQFN^oq>2H6Z(EKLJYv0qk?E{(fF`{xRIVZ0=(cTZbf9@sl zcJUi;RgiQEB6soC-d2vMi%GDa5xrb&UF_o`G|$vJo;sR}qOv~Nt?cGWTS;M*uvBT@ zL*X8r@<7$^5BqxTiozEmZnABz4en31I%It}TCKj<8RVWEqO1gYOQ<@_s*D?^sApI? zJ=p8#3hx)-?hoXOi+0tC$ulFzT5%!Pd)tH^7vU-vvtmk)xneV;&&}Xt_(oNR;j4$Q zieG{(D<98hZk#m%RZ8o-ZKHahksX42n;!E`#k0EAwbIspqqFmy_e)4Gk+d$Mk+tMa zV4d(@(#H1zmOIva;gI8mkCMJvr_d;y5(_p2i$o;kq%Gczu}?Yb8U8(HPxY<*8M$ih zKZ(bH)QDN+D&+RS0M*Eq#Ss#Zu4jp!m8j6u%UzeZk}To*=N-bl6nT~3Kb{c~ zE%-b8o>4FtUR5=m*ABP1CWw}AUrp6GS^sr%2D5~;m1W7F@@IeyJuLHAi2dv2%#uf$ z_KSZN0{=K}bE7i3R3tI;@8d7Jy2}1SX9wd{340+=!POM@HV&Q}@p91PGYbQM#kau8 z7nc7#+Va;~8U~2p2LxSq=aq+a1JL-HW_Z={>EBWEA6i}4;yY8J0{92Vv<_)(Ba6z1sI(ze@a@$MPc>ziF~BJ3T`a{ekGFcEWYl zqCW|!uIEGh39C>1+duT)1AgW3*D;sBPPSYV(1R^nKf51q6#{z{mzG*HFVJ zVM(4eLvmW?R1T4I%oaJDiHK0kxdRcB-z`s1_5HrS&+Gg9{rU5{Uhdu3{k}h+&wX9H z-rGKVe|Aej#Z9q#WI*X64HZXV_3n0FKAK(=rwL=u&wcJ&YCbj(d{el>b7k$-HzmrI zPdqbD^pA@-QK2cWpBZzG%;#-h{p7L_%o=Jm4_@n2Z!_rGzK6R`kqTlz3(qvt*uKblq|P-z5LCiq{3kWb0fiGNFtOa>=kghx>o_mL!Ni&7e7_C8?2Arc8 zsJO*u4d&||3sosKFQ@lingilmgqO~O~T8(m|iTxIo$QF*^HcNN=K^9-J9M!e> z6a*r2(#~2yftPjbvOQ6jbMHiC&`_!B{@rI?US^tk`#zd@d_TvmM;?5q+n$qw+@n@Y zE3>ZK`{`8xXM7yFcZquYK)}>e>RXMw!xuvbJ`~2Rkjh2giU!*59P$aJFRgOQMc$P? z?g&gCIS`t+l*-Yd44(^4{-DHqK12J;toGq|cU_2Ak5Ruw5XTcG5T~xB?8M4+u4e@| zBz^tOw>th%x-12Bt%m&F_m?6NNHTs;DsG&y@a(T68>a*LLHQp-zzt@~*-!-nJ0D#G zT&05o{QvKAz&~05Qu|f^_n$M1Z4HFksRfRv%luL8gCnZZQiop|ZqvancmlPoh9-8s&^2-5jjpDDBT z#*o&9p38nkK7L(c6sqcbhTl$k=~;PkCl664=paK>hzJdLyHDnAdWAd~%Rt$>j$J4K zpYf$g!^mmP^`?%c0Z;Nln+DO3Qve;yQ%}9x7nd7tG?IA3{nH948uhMETrgvg@#GJQ zhdk@%&&jk913y{v<=sIeYlH;Z`Lp=Z+oZpG0uzJ;i4I$aB?PW0v)hAeJC^)jzo_U~ zv^#z*lyq8WZpyhaO+3IxcuB8Ty`vGxYphB>7}4KLeQ^2ry3pM6_aC1c>AdYIhGQwS zbH-I20UrA9T37s8n_9+_VeW_8UW;&E=(pj&ES>Ma?7!nTP{@5XKpn?NMTFioO_~`% zXT&$@R$w)k%0P%(v#|uP7+Q&UTt|bh-nX7Zks)DF|2?xKii7n2a+>yvZ8W}j=B@Qu zS8-co=_f9hn(iWvN=ssl)5c?Np+}`gjhEfQZr<782>)|x+gBIRhfTg1gFV2yOfB{} z@=6%<}1Gyr1ko`*mI?>Da1- zepy5=ndrU8)dNr|Vro6bT2+o(!ntkiibgvv-Dx}bZ1;5RvyCX^cWYu7mtQm?-F^u# zQi(^8B()Z*BsrlDS2dgsh-e1x9e9=zC~c((&q4-Dmngt7cI5AXutQO?Z$`B3PRHfT ze;(^3h7$r(j$va|kNu|14$r#>KP_pzc0Q^_WYN8AZ$KgpM)GU9awWIOX1)gedk;;z z5HWY@;#R~FBtzviL&b$L&nx^fgr$PTfw}GY!tLOqu|aih*oJrK4$oe(3}S6@5+qO~PXygYa`!t%_XK1d4zxsYEW)BN~^Dh0Cbzw}70rihZtu z;>bk=z*ZCd5#*eZhQOKx>JUP8Qu3Q6Lv=>a08X1Wadq88^~sY~UiT-mBDv+ixrBhH{|lahAD7r9&m)9bKb^9F^XtDoYZKvw(*N1B>CkUufhbNL#gBqL^k}GNCP# zb8PNV;}HkGJyipI$UQ0}ZSoOe?aC2P>3Pn|7}^=E)Gpf5bwLYy7~bCT*Z`6sTw)s zL=~W^*~(kGMjTeN#hb)S!GT7)9o>VZkuyactj=y*Z?4%A-$2=kLiP=n^-RUM=bir`5)MIcPB`<9V~xxCkuG}+1+|f>1yBIO%D7sR;%&{7Pz|g z(0;kPbl@U?akoAMy?;mSW%~Ux*1i54mNOpt0}BMc9{x4QsYDtGO%RTnbA4U)t-CV2*s=PxqE1Wl z3G)C-fCtC=a#BAg4Zju=XUCn>(MdmYi+18*(qu@Iry0W#%DyuQhkJ*O z9;8GQu(IMAw9uQ^h-RJ7#dmCDH^VQsW-PCL>KQXVzf~HVH2LgaR}A8d50+lhMqc**2KQ-#>7>74cU3`*sjDeE3hXag1YBU zWJ+?Ttj99vEA@t`p7rCWviD{x4@I^DpM50Quj@6_`CxHHju7>I?u+>8Gz_HZ;O*6_ z*%MnNk3@fo;e1b4BEN;|hA7y}}`=E_-?9VG= z`|TKwj0s;b!8%i!i7?Gni)34%N>!@!v|@(cfg9s?El$5J5h)aUmiw4o-qXBRw<^nY zXdj*GgkHHMGZwP2SRtQy(pKv=JW^q+?H|CYkBu&-s)By;7-bQ4o4t; zYN#?cYju0OJ5N9tUJaW0w=-f&^4g;&Yjps%`GZCLmoR^)JkO>rnNO!JW7}Sh-v{21 zVA+j0emGzFgzeFDYGG3dRhc!p*mKxMh@uW9saf3AH_!l;^&yLO`7!)Mix3LbEgC7` zdY;z{qMM;VBf>u-B>BXyb<-=Tj8cjJ3Wh3DEY0qFSBjSotspxn1-sUdlcXft=(|tx znHoXVFw3M!sSFTP*X$fo7PE)4OyXP(0M|)%BQuVy-iO{7YklY|pctx1dVjsaBQXjc zTm#R>o8g^ zf!d1Qs(hoqxu|+`*YW~A&F&sDsh!MEe~}GNjDlufGlM+B#@1&*wwfAIv{sM3g&`%P zX~wR+G0Z+i0^^~PkZ)i&s-4hsBs7TtL<_`$l;|F`-82XTZm*i1be#<2)ozn}#C!;@ zLmdngPK8Fot&FlzAvUdw5dmNwRmEL^k*s~driVPC0r*6N7NH4J8DwYdqy~7?3^WIv z1zt@Z$RmdDUlTWfJv`08sxog~r*;kZTbeb(1tXEy21BE(04?@ytJvG;%n-Mvb3Kz{ z34!mk>|CE>8K7kUTw+Vlpxjn_(#zp8e8kpljEUO*rza9@ZU&~StNIu){8IcVZFvgP z%B*)fs)FhA%rK2ST+}5>b=Tqu={$_9h`g&ha*~T7ZrI||}VL%^Y z@9C*-%ot@h{iIb4b6gReadsgHH4YLrYd+(tiwuJYTiYT0M$xromQ2VWufpqJNHlaLq zl)-4n#Z%LHsgS5kwvyRczs!mntx`v|)LkdW(znm0SVB7&c6+6nJfJ3+k(s+s!4HA4 z7E1Y-i+0CzfMMJvHT8;jUnK*g|p3;w- zw$3Sv{yLA}Y-0#^^$k|55z8+*aPLk@Hkt4x=HN0K18CPZ7?&I+7|<{!COrvb%LTKl z7JrNYyPGSTc;1_?oGLjxcS_=N_w{1yir-F|r)H-pg*i8hJd^JfjvGpJc$dX^4}Z>4Cf0CT}xSO^k8P)#Vk!ydy} z5DP6m>Kxm33y(^ zxC@6l1n%{p8seUrCU?UdYe2#N81WsCSt zw(x(IcTz)Mxxb-mbvMR#`KYf3@N z^I?lj&vbPRP$Sm0Ue;qpdR}h!PSEi*cD>>Y;!pq;{~XqpIoXyhz3_Wb-~Mpm@c{%_ zcM_=6%AgU`qlq^0+GUwrgaLT4+Q*rSMQh)l6Of`xXJ44T*k+K^-XKS{Ik$G8s4N(x zR@*)=M#ZaS`Z~?7S2jP=Pl3hdu8u(U`i)rA4pd%{Ztg-TJ*r@0J_-a) zFa|nH0YOOx^15v7RpVTufjgmW#;Nj+)sW2gjPIwHUsMZF|EPK`0Ufp=p4wF?V*ZhW7{J3H6$QZr`#NNIf<4Q zt7PH$Y{;`CaLFxK*%K;}9=0r?yl87D?ye$Obi0i!{WRrF2}nV*fINwR-31Bj z<{G8Jc3wl{Tc_=}(RasVF8Nbn$OP&{1XcHWTi*?sukCtoF~Fn1lVEPk`pX6|?OT05 z;q^{q7F(t_NHz$d?)dFbay>^x__+V13Zf~nPLy5`nC{LW!l{`OR%WIpHAQt?XeKNx zFP2N8B5M6#H-=O1?5lfdJilZN`@4+CF1E{U7o zEci9C(kCAT8=(>Xuo%V5YUJ0px|dCgo?AO3djU(RG{U zBF7?dTaUkqZuY4@KaBlcdk-YAOBg62Dj|<+RlhJ^Ai*5xD=idBW#j&G_TZXh{*`#j zxE2!pG~D^xJ$h#z>P#`2h%kmghVCVKz1!|O%!^N=V{TFMpA9{+;z6g-4 zyX%L`&&!phqCE1SV5$h)C@H&kxc)H@LaD%>NB2*Q>`jn7j~>Pb`r~$zok<6*aTj7? zdwEX>ER>sFEoN*-X~tT&ZfaDKaaE^;WRCQiKty%qA`P8!cSU{Zz|BE#6g%({*wMRy z^0AKr4T^r`_NpAvLS0PKW2qS8h2DqS5u8_F5voWYA=WATEaF90qT=)O=-#{Ua-p7X zag>*>rD#7`ol=?{Y|W&_n=-!7f%ZIl*cpVi$#>HviP1R|5nZ~Pp1sM*eI&cR?E@#H zJ^SzYKQ$+Xf^^eomJ(4Ob`~^dhsP!7v6-YB{^#=0enC%w72x=>6dw$fQTklPjaz30 z_0eP_bvw}+PSy5kRNrkmYPwl6lahOya?Gj<9`JiTyfisx|Fv5;EickV%1CTq;5ikr`Qv#$&pSO z0E0IWRQY1;ApFKEBu}@NRXObFVSlgfzb|4|8WyN0=*gMn$SPU08%I-!Tls-sJvafd z(Ew0MIw`*lg{Wu5%y{M)kkl9sc}$1V60mzg8h$bh0sXBF>L=apLLKFqqek2u2(Wry ziH*yxJYX5Eu5>dic(q(-kG6sTT(xcKz>Q0V4sW-sCMCm87GQ>63k#ayDz6VS?qZo0D=3{teZ{Lf}4%IBaAsz;FPyrV_#!Qi& z3vPc1LGNQ}&#l~AaaVM`^}wE48alXqHss2qnz{>HSZ~`WW_~B@UDRHSe`LC}`bmGa zW9=HlbZx3`Ro}vN({Ef{LR?&2yj%w6NJEL(p_H})F0M7!R<1oj@A}`SjScYsq*suy lAI{bNfE5zjeRd+o!7gRCm?xeRi$2 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 diff --git a/Joystick-Shield/joystick_shield/joystick_shield.ino b/Joystick-Shield/joystick_shield/joystick_shield.ino index f29bcc9..41cc3ba 100644 --- a/Joystick-Shield/joystick_shield/joystick_shield.ino +++ b/Joystick-Shield/joystick_shield/joystick_shield.ino @@ -148,7 +148,7 @@ int CalibrationMax = 800; // allows for weird "jumpy" joystick potentiometers. t Serial.print(" -- "); Serial.print(digitalRead(Button1Pin)); Serial.println(); -*/ -// delay(100); + delay(100); +*/ } diff --git a/Joystick-Shield/joystick_shield2_ino/joystick_shield2_ino.ino b/Joystick-Shield/joystick_shield2_ino/joystick_shield2_ino.ino deleted file mode 100644 index 4f48b55..0000000 --- a/Joystick-Shield/joystick_shield2_ino/joystick_shield2_ino.ino +++ /dev/null @@ -1,95 +0,0 @@ -/* Complete USB Joystick Example - Teensy becomes a USB joystick with 16 or 32 buttons and 6 axis input - - You must select Joystick from the "Tools > USB Type" menu - - Pushbuttons should be connected between the digital pins and ground. - Potentiometers should be connected to analog inputs 0 to 5. - - This example code is in the public domain. -*/ - -// Configure the number of buttons. Be careful not -// to use a pin for both a digital button and analog -// axis. The pullup resistor will interfere with -// the analog voltage. -const int numButtons = 2; // 16 for Teensy, 32 for Teensy++ - - - int XPin = A7; - int YPin = A8; - - int Button0Pin = 9; - int Button1Pin = 10; - -void setup() { - // you can print to the serial monitor while the joystick is active! - Serial.begin(9600); - // configure the joystick to manual send mode. This gives precise - // control over when the computer receives updates, but it does - // require you to manually call Joystick.send_now(). - Joystick.useManualSend(true); - for (int i=Button0Pin; i= 360) angle = 0; - Joystick.hat(angle); -*/ - // Because setup configured the Joystick manual send, - // the computer does not see any of the changes yet. - // This send_now() transmits everything all at once. - Joystick.send_now(); - - // check to see if any button changed since last time - boolean anyChange = false; - for (int i=Button0Pin; i + +// set pin 4 as the slave select for the digital pot: +const int slaveSelectPin = 4; + + + + + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "hidjoystickrptparser.h" + +#include +#include +#include +#include + +USB Usb; +USBHub Hub(&Usb); +HIDUniversal Hid(&Usb); +JoystickEvents JoyEvents; +JoystickReportParser Joy(&JoyEvents); + +void setup() +{ + // set the slaveSelectPin as an output: + pinMode (slaveSelectPin, OUTPUT); + // initialize SPI: + SPI.begin(); + + + + Serial.begin( 115200 ); + Serial.println("Start"); + + if (Usb.Init() == -1) + Serial.println("OSC did not start."); + + delay( 200 ); + + if (!Hid.SetReportParser(0, &Joy)) + ErrorMessage(PSTR("SetReportParser"), 1 ); +} + +void loop() +{ + Usb.Task(); + + int joyX = .7 * JoyEvents.X; + + digitalPotWrite(19, joyX); + + // int joyY = JoyEvents.Y; + + // digitalPotWrite(18, joyY); +} + + + +int digitalPotWrite(int CommandByte, int value) { + // take the SS pin low to select the chip: + digitalWrite(slaveSelectPin,LOW); + // send in the address and value via SPI: + SPI.transfer(CommandByte); + SPI.transfer(value); + // take the SS pin high to de-select the chip: + digitalWrite(slaveSelectPin,HIGH); +} + + + diff --git a/USB_Joystick/Arduino/USBHIDJoystick/hidjoystickrptparser.cpp b/USB_Joystick/Arduino/USBHIDJoystick/hidjoystickrptparser.cpp new file mode 100644 index 0000000..c8aeef9 --- /dev/null +++ b/USB_Joystick/Arduino/USBHIDJoystick/hidjoystickrptparser.cpp @@ -0,0 +1,104 @@ + + + + +#include "hidjoystickrptparser.h" + +JoystickReportParser::JoystickReportParser(JoystickEvents *evt) : + joyEvents(evt), + oldHat(0xDE), + oldButtons(0) +{ + for (uint8_t i=0; iOnGamePadChanged((const GamePadEventData*)buf); + + for (uint8_t i=0; i> 4); + uint16_t changes = (buttons ^ oldButtons); + + // Calling Button Event Handler for every button changed + if (changes) + { + for (uint8_t i=0; i<0x0C; i++) + { + uint16_t mask = (0x0001 << i); + + if (((mask & changes) > 0) && joyEvents) + if ((buttons & mask) > 0) + joyEvents->OnButtonDn(i+1); + else + joyEvents->OnButtonUp(i+1); + } + oldButtons = buttons; + } +} + +void JoystickEvents::OnGamePadChanged(const GamePadEventData *evt) +{ + +X = evt->X; +Y = evt->Y; + Serial.print("X: "); + Serial.print(X); + //PrintHex(evt->X, 0x80); + Serial.print("\tY: "); + Serial.print(Y); +// PrintHex(evt->Y, 0x80); + Serial.println(""); + + +} + + +void JoystickEvents::OnButtonUp(uint8_t but_id) +{ + Serial.print("Up: "); + Serial.println(but_id); + if(but_id == 1) { + Butt0 = false; + } + + if(but_id == 2) { + Butt1 = false; + } + +} + +void JoystickEvents::OnButtonDn(uint8_t but_id) +{ + Serial.print("Dn: "); + Serial.println(but_id); + + + if(but_id == 1) { + Butt0 = true; + } + + if(but_id == 2) { + Butt1 = true; + } +} + + diff --git a/USB_Joystick/Arduino/USBHIDJoystick/hidjoystickrptparser.h b/USB_Joystick/Arduino/USBHIDJoystick/hidjoystickrptparser.h new file mode 100644 index 0000000..02b46a3 --- /dev/null +++ b/USB_Joystick/Arduino/USBHIDJoystick/hidjoystickrptparser.h @@ -0,0 +1,60 @@ +#if !defined(__HIDJOYSTICKRPTPARSER_H__) +#define __HIDJOYSTICKRPTPARSER_H__ + +#include +#include +#include "avrpins.h" +#include "max3421e.h" +#include "usbhost.h" +#include "usb_ch9.h" +#include "Usb.h" + +#if defined(ARDUINO) && ARDUINO >=100 +#include "Arduino.h" +#else +#include +#endif + +#include "printhex.h" +#include "hexdump.h" +#include "message.h" +#include "confdescparser.h" +#include "hid.h" + +struct GamePadEventData +{ + uint8_t X, Y; +}; + +class JoystickEvents +{ +public: + virtual void OnGamePadChanged(const GamePadEventData *evt); + virtual void OnButtonUp(uint8_t but_id); + virtual void OnButtonDn(uint8_t but_id); + +uint8_t X; +uint8_t Y; + +uint8_t Butt0; +uint8_t Butt1; + +}; + +#define RPT_GEMEPAD_LEN 5 + +class JoystickReportParser : public HIDReportParser +{ + JoystickEvents *joyEvents; + + uint8_t oldPad[RPT_GEMEPAD_LEN]; + uint8_t oldHat; + uint16_t oldButtons; + +public: + JoystickReportParser(JoystickEvents *evt); + + virtual void Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf); +}; + +#endif // __HIDJOYSTICKRPTPARSER_H__ diff --git a/USB_Joystick/Arduino/digital_pot/digital_pot.ino b/USB_Joystick/Arduino/digital_pot/digital_pot.ino new file mode 100644 index 0000000..5783947 --- /dev/null +++ b/USB_Joystick/Arduino/digital_pot/digital_pot.ino @@ -0,0 +1,90 @@ +/* + Digital Pot Control + + Based on the original sketch for AD5206.... + + This example controls a Microchip digital potentiometer. + The MCP42 has 2 potentiometer channels. Each channel's pins are labeled + PAx - connect this to voltage + PWx - this is the pot's wiper, which changes when you set it + PBx - connect this to ground. + + The MCP42 is SPI-compatible,and to command it, you send two bytes: + + The first byte is the Command Byte which has this format when + the next byte is to be data: XX01XXpp + note these bits ...............^^.... the 01 means the next byte is data + (where pp = potentiometer selection, X= don't care) + pp= 00 = dummy code, no pot selected + pp= 01 = pot0 + pp= 10 = pot1 + pp= 11 = both pots + + Simplest case is to have X= 0 so the Command Byte will be: + pp= 00: 00010000 = 16 + pp= 01: 00010001 = 17 + pp= 10: 00010010 = 18 + pp= 11: 00010011 = 19 + + The second byte is the resistance value for the channel (0 - 255). + + The circuit: + * All PA pins of MCP42 connected to +5V + * All PB pins of MCP42 connected to ground + * An LED and a 220-ohm resisor in series connected from each PW pin to ground + * CS - to digital pin 10 (SS pin) + * SI - to digital pin 11 (MOSI pin) + * SCK - to digital pin 13 (SCK pin) + + created 10 Aug 2010 + by Tom Igoe + + Thanks to Heather Dewey-Hagborg for the original tutorial, 2005 + + Version for MCP42xx April 2013, Jim Brown + +*/ + + +// include the SPI library: +#include + + +// set pin 4 as the slave select for the digital pot: +const int slaveSelectPin = 4; + +void setup() { + // set the slaveSelectPin as an output: + pinMode (slaveSelectPin, OUTPUT); + // initialize SPI: + SPI.begin(); +} + +void loop() { + // go through pp=01, 10, 11 for pot0, pot1 and both together of the digital pot: + for (int CommandByte = 17; CommandByte < 19; CommandByte++) { // 17, 18 and 19 + // change the resistance on this pot from min to max: + for (int level = 0; level < 255; level++) { + digitalPotWrite(CommandByte, level); + delay(10); + } + // wait at the top: + delay(100); + // change the resistance on this channel from max to min: + for (int level = 0; level < 255; level++) { + digitalPotWrite(CommandByte, 255 - level); + delay(10); + } + } + +} + +int digitalPotWrite(int CommandByte, int value) { + // take the SS pin low to select the chip: + digitalWrite(slaveSelectPin,LOW); + // send in the address and value via SPI: + SPI.transfer(CommandByte); + SPI.transfer(value); + // take the SS pin high to de-select the chip: + digitalWrite(slaveSelectPin,HIGH); +} diff --git a/USB_Joystick/PCB/USB_Joystick.fzz b/USB_Joystick/PCB/USB_Joystick.fzz index 3282dfc7885303d7eac0726f619c2b0603f4b9f9..639c49850670b994dcde0d96672b03ce4713a892 100644 GIT binary patch literal 20570 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

=*>UF(2dftJtZ($N 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