Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Handelingen op een console automatiseren

Pagina: 1
Acties:

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
Afgesplitst vanuit topic De Devschuur Coffee Corner - Iteratie 6

Ik wil wat handelingen op een console automaten. Nou ben ik absoluut geen hardwareman, maar om dit te bereiken kan ik volgens mij een aantal dingen doen:
  • Een Lego contraption oid maken die de knoppen op een controller bedient
  • Een controller uit elkaar schroeven en de switches verbinden met iets als een GPIO controller. Analog sticks en triggers worden dan waarschijnlijk wat problematisch maar ik denk dat ik wel wegkom met alleen de digitale knoppen (dpad, ABXY, start, back).
  • Een microcontroller programmeren die een USB controller simuleert.
De eerste optie is natuurlijk een goed excuus om een Lego Mindstorms setje aan te schaffen, dus dat is sowieso awesome :D maar ik ben bang dat de bediening zelf dan redelijk langzaam gaat (met een gelimiteerd set aan motors maak je waarschijnlijk iets als een beweegbare arm die maar 1 knop tegelijk kan indrukken).

Optie twee is iets dat ik mezelf nog wel zie doen. Ik heb eens gekeken naar GPIO controllers en deze zijn gewoon te krijgen in USB en Bluetooth vorm, met een variabel aantal IO pins. Ik heb zelfs nog een Raspberry Pi liggen die ik hiervoor zou kunnen gebruiken. Al met al is hier volgens mij een zeer geringe hoeveelheid aan hardwarekennis voor nodig.

De derde optie is het meest flexibel en wellicht ook het goedkoopst (als in, het kost me dan geen controller :P), maar een officiele Xbox 360 controller simuleren over USB doe je denk ik ook niet zomaar.

Iemand anders nog puike ideeën? Ik heb ook een beetje in de modscene zitten kijken, er zijn wel programmeerbare controllers te krijgen maar meer in de zin van automatische combo's en rapid fire, en niet iets dat direct met software is aan te sturen. Maar mijn kennis op dit gebied is gelimiteerd dus wellicht heb ik nog niet goed gezocht.

[ Voor 2% gewijzigd door Creepy op 05-05-2014 21:19 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Robbiedobbie
  • Registratie: Augustus 2009
  • Laatst online: 09:16
.oisyn schreef op maandag 05 mei 2014 @ 16:09:
Ik wil wat handelingen op een console automaten. Nou ben ik absoluut geen hardwareman, maar om dit te bereiken kan ik volgens mij een aantal dingen doen:
  • Een Lego contraption oid maken die de knoppen op een controller bedient
  • Een controller uit elkaar schroeven en de switches verbinden met iets als een GPIO controller. Analog sticks en triggers worden dan waarschijnlijk wat problematisch maar ik denk dat ik wel wegkom met alleen de digitale knoppen (dpad, ABXY, start, back).
  • Een microcontroller programmeren die een USB controller simuleert.
De eerste optie is natuurlijk een goed excuus om een Lego Mindstorms setje aan te schaffen, dus dat is sowieso awesome :D maar ik ben bang dat de bediening zelf dan redelijk langzaam gaat (met een gelimiteerd set aan motors maak je waarschijnlijk iets als een beweegbare arm die maar 1 knop tegelijk kan indrukken).

Optie twee is iets dat ik mezelf nog wel zie doen. Ik heb eens gekeken naar GPIO controllers en deze zijn gewoon te krijgen in USB en Bluetooth vorm, met een variabel aantal IO pins. Ik heb zelfs nog een Raspberry Pi liggen die ik hiervoor zou kunnen gebruiken. Al met al is hier volgens mij een zeer geringe hoeveelheid aan hardwarekennis voor nodig.

De derde optie is het meest flexibel en wellicht ook het goedkoopst (als in, het kost me dan geen controller :P), maar een officiele Xbox 360 controller simuleren over USB doe je denk ik ook niet zomaar.

Iemand anders nog puike ideeën? Ik heb ook een beetje in de modscene zitten kijken, er zijn wel programmeerbare controllers te krijgen maar meer in de zin van automatische combo's en rapid fire, en niet iets dat direct met software is aan te sturen. Maar mijn kennis op dit gebied is gelimiteerd dus wellicht heb ik nog niet goed gezocht.
Ik denk dat dit inderdaad de enige opties zijn. Voor optie 3 kun je kijken naar xpad (de xbox 360 controller module voor de linux kernel). Het geeft je geen direct protocol, maar je kan dan wel precies zien hoe de xbox op jouw input zou moeten reageren.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
@.oisyn: Ik denk dat de GPIO optie by far de beste optie is, alleen moet je dan nog even kijken hoe het met de analoge controls zit. Daar zou je iets met een DA converter moeten kijken, maar dan heb je al wat meer kennis over het circuit van de controller nodig.

Voor optie 1 hoef je overigens niet perse een lego mindstorms set aan te schaffen. Al die sensoren en motoren zijn gewoon eenvoudige I2C dingen, dus je kunt net zo goed zelf wat spul bij conrad o.i.d. bestellen, en dat eventueel combineren met wat standaard technisch lego. De aantsturing kun je dan gewoon met een simpele uC doen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
Robbiedobbie schreef op maandag 05 mei 2014 @ 16:13:
[...]

Ik denk dat dit inderdaad de enige opties zijn. Voor optie 3 kun je kijken naar xpad (de xbox 360 controller module voor de linux kernel). Het geeft je geen direct protocol, maar je kan dan wel precies zien hoe de xbox op jouw input zou moeten reageren.
Hmm interessant. Er is ook een user mode driver. Op basis van die sourcecode zou ik in principe moeten kunnen achterhalen hoe een controller werkt.

Heb een beetje zitten zoeken op "USB emulators", en toen stuitte ik op de Arduino Leonardo, die heeft een on-board USB chip. Met de RPi schijnt het niet mogelijk te zijn, de USB connector heeft geen data pins (is power only) en GPIO is niet echt geschikt voor een USB verbinding.
Woy schreef op maandag 05 mei 2014 @ 16:19:
Voor optie 1 hoef je overigens niet perse een lego mindstorms set aan te schaffen [..]
En toen stopte ik met lezen :+
GateKeaper schreef op maandag 05 mei 2014 @ 16:32:
De console is (/de handelingen zijn) niet d.m.v. een keyboard aan te sturen?
Helaas niet, elke game moet zelf keyboard support inbouwen. In het systeemmenu werkt dat prima, maar of je dat verder in-game kunt gebruiken hangt van de game af, en de meeste games doen de moeite niet (logisch ook)

[ Voor 14% gewijzigd door .oisyn op 05-05-2014 16:34 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
I like the way you think O-)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Ealanrian
  • Registratie: Februari 2009
  • Laatst online: 15:59
en dan nog meer Mindstorm lego aanschaffen om het wel goed te krijgen

  • GateKeaper
  • Registratie: April 2004
  • Laatst online: 05-08 21:46

GateKeaper

#1 Procastinator

Gevonden, USB rubber ducky!

http://hakshop.myshopify....s/usb-rubber-ducky-deluxe
.oisyn schreef op maandag 05 mei 2014 @ 16:32:
[...]
Helaas niet, elke game moet zelf keyboard support inbouwen. In het systeemmenu werkt dat prima, maar of je dat verder in-game kunt gebruiken hangt van de game af, en de meeste games doen de moeite niet (logisch ook)
Tjah.. dan is dit geen optie. Maar blijft een leuk sticky :-)

[ Voor 46% gewijzigd door GateKeaper op 05-05-2014 16:47 ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
.oisyn schreef op maandag 05 mei 2014 @ 16:32:
[...]
En toen stopte ik met lezen :+
Het was meer input, dat je veel meer leuke dingen kan doen voor minder geld. Het valt prima te combineren met mindstorms spul ;)

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
.oisyn schreef op maandag 05 mei 2014 @ 16:09:
Iemand anders nog puike ideeën?
Aan QA vragen of ze een betere repro case kunnen vinden? :*)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
Hah als het voor m'n werk was dan had ik die controller debugger tool wel gebruikt waarmee je gewoon button presses naar de devkit kunt sturen :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Jammer dan, er zijn dingen als usbpcap die usb traffic kunnen recorden met wireshark. Alleen heb ik geen idee of ze ook het signaal terug kunnen afspelen. Check ook dit topic http://reverseengineering...dongle-traffic-monitoring

[ Voor 26% gewijzigd door PrisonerOfPain op 05-05-2014 18:11 ]


  • Ealanrian
  • Registratie: Februari 2009
  • Laatst online: 15:59
PrisonerOfPain schreef op maandag 05 mei 2014 @ 18:08:
Jammer dan, er zijn dingen als usbpcap die usb traffic kunnen recorden met wireshark. Alleen heb ik geen idee of ze ook het signaal terug kunnen afspelen. Check ook dit topic http://reverseengineering...dongle-traffic-monitoring
Op het moment dat je het signaal weet kan je deze natuurlijk ook zelf weer afspelen.

  • _360_
  • Registratie: Januari 2011
  • Laatst online: 18-11 11:24
Je zou ook eens naar Teensy kunnen kijken. :)

Dit project: Xbox 360 Controller Bridge for Teensy or TI-84 Plus/Silver Edition even snel gescand, probeert iets soortgelijks te bereiken.

Voordeel: geen hardware modifications, je kan je oplossing in code schrijven.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
_360_ schreef op dinsdag 06 mei 2014 @ 11:15:
Je zou ook eens naar Teensy kunnen kijken. :)
Beetje vergelijkbaar met de Arduino Leonardo die ik al eerder noemde, al is de Teensy 3.1 wel een stuk beter gespect.
[.edit: het lijkt met de Teensy ook wel makkelijker om je voor te doen als random hardware]

Al zoek ik nog wel iets van een manier om te communiceren met de PC. Arduino is daarin wel wat interessanter, behoorlijk wat off the shelve modules voor bijvoorbeeld ethernet of seriele communicatie via USB. Al zou ik daar ook m'n RPi voor kunnen gebruiken.
Dit project: Xbox 360 Controller Bridge for Teensy or TI-84 Plus/Silver Edition even snel gescand, probeert iets soortgelijks te bereiken.
Cool, thanks.



Ik stuitte op GiMX, wat min of meer lijkt te doen wat ik wil.

[ Voor 11% gewijzigd door .oisyn op 07-05-2014 01:47 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
Even een update, ik heb een 360 controller uit elkaar geschroefd, maar het simpelweg verbinden van de switches met een GPIO controller lijkt niet te kunnen. Hoewel op de start, back en dashboard button gewoon 3,3V staat, geeft m'n multimeter bij alle andere knoppen waardes tussen de 130 en 200 mV - denk ik, want als ik de polen omdraai dan krijg ik niet dezelfde negatieve waarde eruit, dus m'n multimeter heeft het er een beetje moeilijk mee. Ik vermoed dat er iets van een blokgolf op staat... Ik moet eigenlijk een oscilloscoop hebben* 8)7. Ook als ik de GND van de A-knop met de + van de B-knop verbind is het ook niet zo dat ie dan denkt dat B (of A) is ingedrukt. En als ik er gewoon +3.3V op zet dan interpreteert ie dat vaak als een compleet andere knop.


* Ik zit eraan te denken om 'm te verbinden met de line-in van m'n geluidskaart om op die manier te samplen wat eruit komt, hopelijk is 96kHz genoeg :P
.edit: hmm nee dat gaat niet zomaar werken, sound cards kunnen meestal maar max 1V dus dan zal er sowieso een divider tussen moeten. Eens kijken wat m'n RPi kan.
.edit2: crap die heeft geen ADC :/

[ Voor 18% gewijzigd door .oisyn op 03-06-2014 00:18 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 19-11 20:27

Super_ik

haklust!

Klinkt als een scan matrix, dat is wel op te lossen met optocouplers of een 4066 ofzo.

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
Aan een 4066 zat ik ook aan te denken inderdaad, loop vanmiddag wel even langs de lokale electronicaboer.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16-11 18:33
Had je deze al gezien? Blijkbaar is het een (bijna) standaard HID device. Met een goedkope devkit kun je al een HID device maken

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • steffex
  • Registratie: Augustus 2003
  • Laatst online: 12-08 00:24
Kijk eens naar een XIM module (http://xim4.com). Deze kun je gebruiken om een toetsenbord en muis te koppelen aan een xbox 360 via een mapping.

In plaats van een keyboard en muis, zou je bijvoorbeeld een teensy 2.0 kunnen pakken en die als muis en toetsenbord koppelen. Die kun je gewoon via arduino software eenvoudig programmeren om toetsen in een loop te laten uitvoeren.

Het kost misschien iets meer, maar dan hoef je geen hardware te hacken. :)

Dit dus:
.oisyn schreef op woensdag 07 mei 2014 @ 00:36:
[...]

Beetje vergelijkbaar met de Arduino Leonardo die ik al eerder noemde, al is de Teensy 3.1 wel een stuk beter gespect.
[.edit: het lijkt met de Teensy ook wel makkelijker om je voor te doen als random hardware]

Al zoek ik nog wel iets van een manier om te communiceren met de PC. Arduino is daarin wel wat interessanter, behoorlijk wat off the shelve modules voor bijvoorbeeld ethernet of seriele communicatie via USB. Al zou ik daar ook m'n RPi voor kunnen gebruiken.


[...]

Cool, thanks.



Ik stuitte op GiMX, wat min of meer lijkt te doen wat ik wil.

[ Voor 44% gewijzigd door steffex op 03-06-2014 11:48 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
farlane schreef op dinsdag 03 juni 2014 @ 11:39:
Had je deze al gezien? Blijkbaar is het een (bijna) standaard HID device. Met een goedkope devkit kun je al een HID device maken
Dat is de Xbox 1 controller. In de Xbox 360 controller zit een TPM chip die een challenge moet berekenen om zichzelf te authorizeren. Vandaar dat je hiervoor nog steeds een originele 360 controller moet hebben die de authorizatie doet. Daarna kun je gewoon random commando's doorsturen. Ik heb iig al 2 Teensy 3.1 bordjes besteld. Probleem hierbij is wel dat het dus alleen werkt voor USB devices. De Xbox One controller is wireless only, dus vandaar dat ik mijn huidige methode ook aan het onderzoeken ben, want dat gaat waarschijnlijk sowieso werken op elk type controller op elke console.
steffex schreef op dinsdag 03 juni 2014 @ 11:46:
Kijk eens naar een XIM module (http://xim4.com). Deze kun je gebruiken om een toetsenbord en muis te koppelen aan een xbox 360 via een mapping.

In plaats van een keyboard en muis, zou je bijvoorbeeld een teensy 2.0 kunnen pakken en die als muis en toetsenbord koppelen. Die kun je gewoon via arduino software eenvoudig programmeren om toetsen in een loop te laten uitvoeren.

Het kost misschien iets meer, maar dan hoef je geen hardware te hacken. :)
XIM werkt (nog niet) met PS4 en Xbox One helaas :). Bovendien, het hardware hacken maakt het juist zo leuk :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • SinergyX
  • Registratie: November 2001
  • Laatst online: 20:51

SinergyX

____(>^^(>0o)>____

.oisyn schreef op dinsdag 03 juni 2014 @ 11:53:
De Xbox One controller is wireless only, dus vandaar dat ik mijn huidige methode ook aan het onderzoeken ben, want dat gaat waarschijnlijk sowieso werken op elk type controller op elke console.
Als je de controller van XBO op de USB hangt, wordt het een directe verbinding, niet meer wireless.

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Die blokgolf, is dat geen PWM-signaal afhankelijk van hoe hard je op de knop drukt? Ik meen te herinneren dat de Xbox knoppen drukgevoelig zijn? Die zou je nog steeds eenvoudig met een GPIO kunnen nabootsen.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
Nee, de knop zelf is niets meer dan een geleider op een rubbertje. Xbox 1 knoppen waren drukgevoelig, vanaf de 360 niet meer.
SinergyX schreef op dinsdag 03 juni 2014 @ 11:54:
[...]

Als je de controller van XBO op de USB hangt, wordt het een directe verbinding, niet meer wireless.
Weet je dat zeker? Voor de 360 gaat dat iig niet op (met zo'n charge 'n play kit), die gebruikt de USB verbinding louter voor stroom.
.edit: wat jij zegt lijkt inderdaad het geval :)

[ Voor 63% gewijzigd door .oisyn op 03-06-2014 13:08 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • SinergyX
  • Registratie: November 2001
  • Laatst online: 20:51

SinergyX

____(>^^(>0o)>____

http://support.xbox.com/e...-controller-wont-power-on
Uit een random support pagina
The Xbox One Wireless Controller is designed to act like a wired controller when it's connected to the Xbox One console using a USB-to-micro-USB cable. For more information, see Using the charge cable without a battery like a wired controller. If your wireless controller works when it is connected to the console using the cable, double-check the battery solutions above.
Dus je zou daar stuk verder mee moeten komen, je kan via de PC de USB signalen ws opvangen.

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
M'n twee Teensy 3.1 bordjes zijn geshipped, hopelijk morgen in huis.

Capturen op de PC heeft niet zo heel veel zin, waarschijnlijk heeft de Xbox One controller net zo'n authorisatiestap als de Xbox 360 controller. Zonder die authorisatie zal de console de controller niet accepteren, al werkt de controller zelf wel prima zonder die authorisatie (bijv. op de PC, maar daar heb ik dus natuurlijk aan). Ik zal dus de communicatie tussen console en controller moeten capturen.

[ Voor 4% gewijzigd door .oisyn op 03-06-2014 15:16 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16-11 18:33
.oisyn schreef op dinsdag 03 juni 2014 @ 11:53:
Dat is de Xbox 1 controller. In de Xbox 360 controller zit een TPM chip die een challenge moet berekenen om zichzelf te authorizeren. Vandaar dat je hiervoor nog steeds een originele 360 controller moet hebben die de authorizatie doet.
Niet goed gelezen,sry. Is die TPM chip nog niet gehacked? >:)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
Even een update :)
.oisyn schreef op dinsdag 03 juni 2014 @ 15:16:
Capturen op de PC heeft niet zo heel veel zin, waarschijnlijk heeft de Xbox One controller net zo'n authorisatiestap als de Xbox 360 controller. Zonder die authorisatie zal de console de controller niet accepteren, al werkt de controller zelf wel prima zonder die authorisatie (bijv. op de PC, maar daar heb ik dus natuurlijk aan). Ik zal dus de communicatie tussen console en controller moeten capturen.
Het is me niet gelukt om dit gewoon via USB te doen met een Teensy. Hij doet zich voor als een Xbox One controller, en ik reroute alle traffic via een seriele poort naar de PC en uiteindelijk naar een authentieke XO controller aangesloten op m'n PC. Ik zie een shitload aan communicatie voorbij komen, maar daarna doet hij niets meer. Hij pairt wel met de console overigens, als ik de USB unplug kan ik 'm daarna gewoon gebruiken.

Hang ik mijn Teensy ook aan de PC dan werkt het wel gewoon en denkt Windows dat er een Xbox One controller is geattached (nee niet de originele :P), en dan kan ik 'm ook besturen met het origineel.

Moest overigens nog wel wat missende onderdelen van de USB stack in de Teensy source code implementeren om zo ver te komen :X. Was wel een leuk projectje though, hoop geleerd :)

Uiteindelijk maar overgestapt naar optie 2 uit de startpost. Heb de controller uit elkaar geschroefd en kan de buttons besturen dmv wat 4066 IC'tjes :P

[ Voor 6% gewijzigd door .oisyn op 07-01-2015 13:05 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1