Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik ben bezig met het maken van een project dat zal bestaan uit een stuk hardware en software. Dit moet gehandicapte mensen in staat stellen Xbox 360 spellen te spelen. Het bestaat eigenlijk gewoon uit een microcontroller aangesloten op een computer via usb en aangesloten op de verbindingen van de buttons, joysticks en triggers van een Xbox 360 controller. Dit stelt de gebruiker in staat om allerlei middelen te gebruiken die aan te sluiten zijn op de computer om de Xbox te besturen (denk aan spraakbesturing, face tracking, vocal joysticks etc.).

Ik heb al een prototype gemaakt waarmee ik de Xbox kan besturen met een computer, maar ik wil het nu nog uitbreiden en ik zou dit graag goed (lees professioneel) aanpakken. Dit is ook de reden dat ik dit verhaal hier post, ik zou namelijk graag jullie ideeën horen zodat het uiteindelijke product (dat tegen kostprijs beschikbaar zal worden gesteld) zo goed mogelijk werkt en zo volledig mogelijk is.

Wat ik nu heb aan ideeën is als volgt:

Als microcontroller ga ik een 18f4550 gebruiken, deze is aangesloten op een computer via usb. De computer draait een programma dat de gebruiker in staat stelt allerlei verschillende inputs (denk aan muis bewegingen, toetsenborden, face tracking, een wii controller noem het maar op) te koppelen aan de inputs van een Xbox 360 controller. De microcontroller is verbonden aan een aangepaste Xbox controller (aangepast in de zin dat er een aansluiting voor een stekker die is aangesloten op de verschillende knoppen is toegevoegd) via een ribbon cable. Van de 18f4550 is dan PORTB verbonden aan de A, B, X, Y en de dpad knoppen. PORTD aan de rest van de digitale knoppen (de connect knop is nergens aan verbonden maar moet handmatig worden bediend). De 18f4550 heeft twee pwm poorten, deze worden door een weerstand en capacitor omgezet in simpele dacs voor de twee triggers. De analoge sticks worden aangestuurd door twee digitale potmeters, doormiddel van SPI met de 18f4550 verbonden.

Daarnaast moet het aantal ingangen nog worden uitgebreid (ze zijn namelijk nu al bijna op), zodat er tenminste 20 inputs zijn zodat de gebruiker speciale knoppen kan aansluiten die dan naar wens kunnen worden gekoppeld aan de verschillende inputs van de controller. De koppelingen moeten worden opgeslagen in het non-volitile deel van het geheugen van de chip, zodat de hardware ook zonder computer kan worden gebruikt als alleen deze koppeling nodig is. Naast de koppeling moet ook kunnen worden ingesteld of een input latching is of niet.

De lag moet natuurlijk zo klein mogelijk zijn, maar toen ik mijn prototype uitprobeerde was de lag zeker acceptabel, dus het is mogelijk.

Voor de software op de computer dacht ik eraan om als inputs waar je uit kunt kiezen (dus die je kunt koppelen aan je controller inputs) alle toetsen van je toetsenbord te nemen, de muis en standaard joysticks. Omdat alle andere input dan (al dan niet via software van derden) kan worden ingesteld toetsen na te bootsen, ofwel als een joystick werkt ofwel als muis kan dienen. Mijn software hoeft dan niet zelf voor de support van al deze verschillende input te zorgen. Ik ben met deze software ook al een heel eind.

Tot slot moet er ook nog support zijn voor macro’s, dus ik dacht eraan om wat extra eeprom geheugen toe te voegen waar deze in kunnen worden opgeslagen. Deze zijn dan ook zonder de computer te gebruiken (al moeten ze wel met behulp van de computer kunnen worden ingesteld, evenals de koppelingen van de inputs aan de controller inputs trouwens). Ik ben er nog niet helemaal uit hoe ik de timing van deze macro’s zal doen (ik zat aan interupts te denken, om de 1ms bijvoorbeeld, en dan de knoppen die niet in de macro voorkomen gewoon blijven pollen terwijl de macro wordt uitgevoerd).

Wat ik ook nog niet weet is of ik een voltage divider moet plaatsen tussen de 18f4550 outputs en de controller inputs, want die werken eigenlijk op een lager voltage, maar ik weet niet of ze ook op een hoger voltage kunnen werken.

Ik heb ook al wat nagedacht over de manier waarop de data is opgebouwd die via usb word verstuurd, maar dat zal ik later posten aangezien dit al heel wat informatie is.

Graag hoor ik wat jullie ervan vinden en wat beter kan of moet worden toegevoegd.

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Is er niemand die een opmerking heeft?

Acties:
  • 0 Henk 'm!

  • nephilimcrt
  • Registratie: Juni 2011
  • Laatst online: 09-09 18:12

nephilimcrt

Mad Scientist

Ik zie niet helemaal voor me waarom er een PC tussen zou moeten zitten. Ik begrijp dat het makkelijker experimenteren is, maar uiteindelijk zou bijv. een Arduino het werk toch op zich moeten kunnen nemen?

Je zou er dan een gelikt uitziend kastje van kunnen knutselen met aansluitingen die 'gekoppeld' zijn aan de functies van de XBox controller. Als ik dan een voetpedaal op de vuurknop aansluit, kan ik met m'n voet schieten. En als ik datzelfde voetpedaal op een andere knop prik, dan zou ik ermee kunnen gasgeven, of iets dergelijks.

Dummy proof, als je het mij vraagt. En ik denk dat als je het zo snel, safe en simpel kunt maken dat er ook best vraag naar is.

Tapping progress on the shoulder and saying: "More forwards, please!".


Acties:
  • 0 Henk 'm!

  • sebastius
  • Registratie: September 2000
  • Laatst online: 17-09 06:44

sebastius

Laten we lekker link gaan doen

Heb je al eens naar het werk van BenHeck.com gekeken? Die man verdient z'n geld (oa) met speciale controllers en modificaties voor gehandicapten. Als je zijn blog goed doorspit vind je echt bergen nuttige informatie voor wat jij aan het doen bent.

Afbeeldingslocatie: http://www.benheck.com/images/sales/left_handed.jpg

Afbeeldingslocatie: http://www.edimensional.com/images/accesssm.jpg
http://edimensional.com/index.php?cPath=24

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Het idee is ook dat het grotendeels autonoom zaken moet kunnen doen (dus ingebouwd in een kastje), maar voor sommige speciale zaken zoals bijvoorbeeld stem besturing en het volgen van de pupillen voor het besturen van bijvoorbeeld de joysticks heb je lijkt mij toch wat meer rekenkracht nodig dan een arduino kan bieden. Daarom heeft het geheel dus ook een usb aansluiting (wil je geen ingewikkelde dingen doen maar gewoon een voetpedaal gebruiken dan heb je aan dat kastje genoeg).

Ik ben deels op het idee gekomen door ben heck, maar niemand lijkt het nog met de computer aansluiting te hebben gedaan, wat de gebruiksvriendelijkheid en mogelijkheden naar mijn idee enorm vergroot.

Acties:
  • 0 Henk 'm!

  • sebastius
  • Registratie: September 2000
  • Laatst online: 17-09 06:44

sebastius

Laten we lekker link gaan doen

Okee, je wilt echt iets speciaals maken. Ik ben heel benieuwd naar de resultaten! Ik zou wat microcontrollers betreft eens zoeken naar mogelijkheden van de iets krachtigere proccessorbordjes met bv een ARM oid er op, of misschien zelfs wel een Raspberry-Pi (momenteel slecht leverbaar maar superkrachtig en mogelijk precies wat jij nodig hebt! (als PC vervanger dus!))

[ Voor 3% gewijzigd door sebastius op 04-05-2012 16:40 ]


Acties:
  • 0 Henk 'm!

  • lemming_nl
  • Registratie: Juli 2004
  • Niet online
Een PC lijkt me nodig om gebruik te kunnen maken van bestaande software. Dingen zoals pupilvolgsystemen wil je denk ik niet zelf programmeren.

Geluk is een weerloos oud vrouwtje, alleen op straat met een bom geld


Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
En wat denken jullie van de maximale input voltages voor de chip in de xbox controller? Ik kan namelijk nergens vinden of die 5V aan kan.

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Inderdaad één van de weinige dingen die ik met een Raspberry zou willen doen is bijvoorbeeld stembesturing voor domitica, maar zulk soort dingen wil je absoluut niet zelf programmeren. Dus totdat er stabiele, betrouwbare, programmas zijn die zulk soort dingen doen wil je echt geen Raspberry gebruiken. (Trouwens qua rekenkracht is hij natuurlijk erg sterk vergeleken met een atmega, maar uiteindelijk is het ook niet meer als een verouderde smartphone, spraakherkenning zal hij denk ik nog krap zijn qua rekenkracht).

Als je wat meer rekenkracht wil, maar wel gemak van een Arduino like omgeving, kan je naar mbed kijken. Al denk ik eigenlijk niet dat je dat nodig heb. Wat ik me wel afvraag is of de USB commandos niet goed bekend zijn van een xbox controller, dan kan je die gewoon direct versturen. (Al dan niet via een uC met twee USB poorten om wat translation te doen, gezien dat zowel computer als xbox USB master zijn, een mbed bijvoorbeeld kan tegelijk twee USB slaves spelen als verbinding).

Anyway dat is een beetje offtopic, gezien jouw laatste vraag, lijkt me waarschijnljiker dat het 3.3V is, maar als je toch een controller opensloopt kan je het nummer van chips in google intikken en uitvogelen. Sowieso je kan je PIC waarschijnlijk gewoon ook op 3.3V draaien als je wilt, en als alternatief desnoods met weerstandjes van 5V naar 3.3V gaan. Als je signalen van de controller zou moeten inlezen, 3.3V wordt door een uC die op 5V loopt ook gewoon als hoog gezien.

[ Voor 7% gewijzigd door Sissors op 05-05-2012 16:22 ]


Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Microsoft houdt die signalen helaas goed geheim, dus direct aansturen van de xbox zonder gebruik te maken van een beveiligingschip zoals die in de controller lukt niet. De 18f4550 kan je beter niet op minder dan 4,5V laten lopen, wat aan de hoge kan dus. Ik heb nu gewoon voor de zekerheid maar even een voltage divider gemaakt van twee weerstanden voor alle signalen naar de controller.

Acties:
  • 0 Henk 'm!

  • tomcool
  • Registratie: November 2009
  • Laatst online: 13:12
spannings deler met 2 weerstanden :'(

je weet hopelijk wel dat je er dan totaal geen stroom uit kan trekken. want anders is de verhouding weer helemaal weg.

want iets wat je niet wilt is opgeblazen chips ;)

voor de rest zit het project er wel leuk uit. maar wel veel programmeer werk. dus suc6 :)

Acties:
  • 0 Henk 'm!

  • sebastius
  • Registratie: September 2000
  • Laatst online: 17-09 06:44

sebastius

Laten we lekker link gaan doen

Gebruik dan zo'n 3v3 converter. Is overigens een digitale potmeter geen handig idee om te gebruiken?

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
huub8 schreef op zaterdag 05 mei 2012 @ 18:01:
Microsoft houdt die signalen helaas goed geheim, dus direct aansturen van de xbox zonder gebruik te maken van een beveiligingschip zoals die in de controller lukt niet. De 18f4550 kan je beter niet op minder dan 4,5V laten lopen, wat aan de hoge kan dus. Ik heb nu gewoon voor de zekerheid maar even een voltage divider gemaakt van twee weerstanden voor alle signalen naar de controller.
Je kan natuurlijk een losse FTDI chip gebruiken, en dan kan je de rest op een 3.3V uC draaien. (Ik heb even snel de datasheet doorgekeken, en hij kan wel op lagere spanning draaien als je low voltage versie gebruikt, maar ik begrijp nou niet helemaal wat hij precies aan USB spanning nodig heeft).

Spanningsdeler met twee weerstanden kan wel, beetje afhankelijk van de snelheid die je nodig hebt, en uiteraard de load. Als je iets rechtstreeks op ingang van een chip gooit, zal die meestal enkel een capacitieve load zijn, en als je dan niet teveel haast hebt lukt dat prima.

Ik moet wel zeggen dat een level shifter IC netter is. Wel opletten dat bij bijvoorbeeld I2C je geen standaard level shifter kan gebruiken (bij I2C kan je gewoon de pull up weerstanden naar 3.3V doen en het gaat wel goed).

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik denk dat ik dan inderdaad maar eens zo'n chipje koop, (had het eigenlijk nu zo gedaan omdat ik de spullen hiervoor in huis heb). Het programmeerwerk is inderdaad niet niks, maar ik heb de basis al wel af (op de macro's na, daar moet ik nog aan beginnen). Zo kan ik nu al een wii controler gebruiken (die tijdelijk op een pet is vastgemaakt) om rond te kijken in een spel door mijn hoofd te bewegen. Ik ben nog op zoek naar goede software voor het volgen van mijn gezicht met een webcam/camera, degene die ik nu heb werkt lang niet vloeiend genoeg.

Edit:
Een tweetal van deze zou toch moeten voldoen?
http://www.farnell.com/datasheets/1535028.pdf

[ Voor 14% gewijzigd door huub8 op 05-05-2012 23:54 ]


Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Overigens snap ik niet helemaal waar het voltage voor de analoge sticks vandaan komt. de potmeters zitten daar namelijk gewoon op de ground aan de ene uiterste pin, maar de andere heeft een voltage van iets meer dan 1.5V. Tevens verschillen deze voltages ook een beetje tussen de beide sticks. Ik kan natuurlijk deze voltages gewoon aftappen, maar om zo min mogelijk verbindingen te hebben met de controller zou ik liever zelf dit voltage opwekken. Hoe zouden jullie dit doen (een voltage regulator?)?
Pagina: 1