Nunchuck-muis naar WASD keyboard

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 5
Geregistreerd: 24 Mei 2016, 23:57

Nunchuck-muis naar WASD keyboard

Berichtdoor MetaMus » 25 Mei 2016, 00:37

Beste Forumleden,

Ik ben voor mijn afstuderen bezig met een project en daarvoor heb ik een wii-nun chuck nodig die als WASD keyboard kan dienen (het pookje). Het project waar ik aan werk is het Metaverse Museum (http://www.metaversemuseum.eu) en ik ga voor mijn afstuderen onderzoeken hoe ik een interessante VR ervaring kan maken voor 45+ers d.m.v. een museumbezoek, Vandaar de (kleine interface van de) Wii Nunchuk.

Afbeelding

Ik heb de Nunchuck Mouse al voor elkaar (gesoldeerd en werkend) alleen moet de code nog aangepast worden. Nu heb ik mij al aardig verbeten op het maken van de nun-chuck muis (het is mijn eerste project) dus ik dacht; voordat ik de code aanpas, laat ik eens wat advies inwinnen. De code zonder libraries ziet er als volgt uit:

cpp code
//Brian Krukoski
//April 2012
//red-+5, white-gnd, green-sda, yllw-clck
#include <Keyboard.h>
#include <Wire.h>
#include "nunchuck_funcs.h"
#include <HID.h>

int loop_cnt=0;

// parameters for reading the joystick:
int range = 40; // output range of X or Y movement
int threshold = range/10; // resting threshold
int center = range/2; // resting position value

boolean mouseIsActive = false; // whether or not to control the mouse
int lastSwitchState = LOW; // previous switch state

void setup() {
// initilization for the Wiichuck
nunchuck_init();
// take control of the mouse:
Mouse.begin();
Serial.begin(9600);
}
void loop() {
if( loop_cnt > 10 ) { // every 10 msecs get new data
loop_cnt = 0;
nunchuck_get_data();
int sensorReading = analogRead(A0);
Serial.println(sensorReading);
delay(1);

//right and left click control
int leftState = nunchuck_cbutton();
if (leftState) Mouse.press(MOUSE_RIGHT); else Mouse.release(MOUSE_RIGHT); //Switched with Left
int rightState = nunchuck_zbutton();
if (rightState) Mouse.press(MOUSE_LEFT); else Mouse.release(MOUSE_LEFT); //Switched with Right

// read the x axis
int xReading = nunchuck_joyx(); //calls on nunchuck_funcs library for x axis reading
xReading = map(xReading, 38, 232, 0, range); // 38 and 232 arbitrarily determined through experimentation, maps to 0 and preset range
int xDistance = xReading - center;
if (abs(xDistance) < threshold) //if absolute value of xDistance is less than predefined threshold....
{
xDistance = 0;
}

// read the y axis
int yReading = nunchuck_joyy(); //calls on nunchuck_funcs library for y axis reading
yReading = map(yReading, 38, 232, 0, range); // 38 and 232 arbitrarily determined through experimentation, maps to 0 and preset range
int yDistance = yReading - center;
if (abs(yDistance) < threshold) //if absolute value of yDistance is less than predefined threshold....
{
yDistance = 0;
}

// move the mouse if the readings were above 0
if ((xDistance != 0) || (yDistance != 0)) {
Mouse.move(xDistance, -yDistance, 0); // -yDistance ensures inverted style joystick
}
}
nunchuck_print_data(); //prints nunchuck data to serial monitor for debugging purposes
loop_cnt++;
delay(1);

}


De onderstaande code zal vervangen moeten worden met het volgende

cpp code
// move the mouse if the readings were above 0
if ((xDistance != 0) || (yDistance != 0)) {
Mouse.move(xDistance, -yDistance, 0); // -yDistance ensures inverted style joystick
}
}



//in pseudocode
cpp code
if(xDistance =>0  then KeyboardPress w
if(xDistance =<0 then KeyboardPress S
If(xDistance = 0 then do nothing
if(yDistance =>0 then KeyboardPress A
if(yDistance =<0 then KeyboardPress D
If(xDistance = 0 then do nothing


Nu weet ik alleen niet hoe ik dit uitgevoerd krijg; WriteOut, PrintIn, Void echo LoopbackCallFunctionSetupMultiplier, geen idee. Ook de verdere C++ opmaak ben ik totaal niet bekend mee, dus de kans op fouten is aanzienlijk.

Zouden jullie mij op weg kunnen helpen, of zou iemand dit stukje code voor mij kunnen produceren? Ik kan later wel aanpassingen maken t.o.v. welke axis en waarden W, A, S, of D, zijn, en of het werkt in Unreal Engine (problemen met W+A of W+D, of het probleem dat hij na 1ms opnieuw aanslaat). Ik ben er alleen niet aan toe om een strijd aan te gaan met de syntaxis en de hele programmeerstructuur van C++ te doorgronden (Vleermuis smily voor de gedachte alleen al)

Mocht iemand nog andere tips hebben voor dit project dan zijn ze altijd welkom!

Verdere info
- Board: Leonardo
- De muisknoppen (links en rechts) heb ik gewisseld,
- Muis (en Mouse.h) is verder niet nodig, maar wellicht kan ik later nog iets met de knoppen doen
- keyboard.h al toegevoegd
My Compiler Errors keep haunting me!!!

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Nunchuck-muis naar WASD keyboard

Berichtdoor nicoverduin » 25 Mei 2016, 07:02

Ik denk dat het allemaal wel meevalt hoor. Ik ga het niet voor je schrijven, want dat is niet de bedoeling van afstuderen. Welke keyboard library gebruik je? (link)
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 5
Geregistreerd: 24 Mei 2016, 23:57

Re: Nunchuck-muis naar WASD keyboard

Berichtdoor MetaMus » 25 Mei 2016, 09:02

Hallo,

Ik gebruik de keyboard library die bij de arduino IDE is meegeleverd (keyboard.h uit de libraries). (link werkte niet)

Ter informatie: ik studeer Kunst en Economie (bedrijfskunde voor de creatieve industrie), ik word beoordeeld op mijn ondernemingsplan en onderzoek, en niet zozeer technische uitwerking daarvan. ter illustratie; de tech demo die ik hiervoor heb gebouwd met de Unreal Engine 4 is welgeteld 0 punten waard :(
My Compiler Errors keep haunting me!!!

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Nunchuck-muis naar WASD keyboard

Berichtdoor nicoverduin » 25 Mei 2016, 09:13

MetaMus schreef:Hallo,

Ik gebruik de keyboard library die bij de arduino IDE is meegeleverd (keyboard.h uit de libraries). (link werkte niet)

Ter informatie: ik studeer Kunst en Economie (bedrijfskunde voor de creatieve industrie), ik word beoordeeld op mijn ondernemingsplan en onderzoek, en niet zozeer technische uitwerking daarvan. ter illustratie; de tech demo die ik hiervoor heb gebouwd met de Unreal Engine 4 is welgeteld 0 punten waard :(
Nou schiet lekker op :)

Verder probeer ik jouw sketch te compileren maar de fouten vliegen mij om de oren.... Welke nuchuck lib gebruik jij?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 5
Geregistreerd: 24 Mei 2016, 23:57

Re: Nunchuck-muis naar WASD keyboard

Berichtdoor MetaMus » 25 Mei 2016, 09:33

Ik heb deze gebruikt als het goed is

http://www.instructables.com/files/orig ... HJKC70NX.h

Via

http://www.instructables.com/id/USB-Wii ... /Software/

Zoals in het bericht stond; als het problemen geeft mag alles wat met de muis te maken heeft er zo uit!

Bedankt voor het kijken alvast!

Groeten,

Kevin
My Compiler Errors keep haunting me!!!

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Nunchuck-muis naar WASD keyboard

Berichtdoor nicoverduin » 25 Mei 2016, 11:31

Dit zou het stukje code moeten zijn :
cpp code
if (xDistance != 0) {							// Bij geen beweging niets doen				
if (xDistance > 0) {
Keyboard.press('W'); // Stuur 'W'
} else {
Keyboard.press('S'); // Stuur 'S'
}
delay(100); // ff wachten
Keyboard.releaseAll(); // alle toetsen los
}
if (yDistance != 0) { // Bij geen beweging niets doen
if (yDistance > 0) {
Keyboard.press('A'); // stuur 'A'
} else {
Keyboard.press('D'); // stuur 'D'
}
delay(100); // ff wachten
Keyboard.releaseAll(); // alle toetsen los
}
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 5
Geregistreerd: 24 Mei 2016, 23:57

Re: Nunchuck-muis naar WASD keyboard

Berichtdoor MetaMus » 25 Mei 2016, 11:55

Whoop Whoop.. Ik ga hem testen!!
My Compiler Errors keep haunting me!!!

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Nunchuck-muis naar WASD keyboard

Berichtdoor shooter » 26 Mei 2016, 09:28

die keyboard library werkt maar met een paar soorten arduino, dus wellicht krijg je het zo niet aan de gang.
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Nunchuck-muis naar WASD keyboard

Berichtdoor nicoverduin » 26 Mei 2016, 09:54

Hij gebruikt een leonardo. Dat is een goede
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 5
Geregistreerd: 24 Mei 2016, 23:57

Re: Nunchuck-muis naar WASD keyboard

Berichtdoor MetaMus » 27 Mei 2016, 10:25

DDDDDDSWSWSWSWSWSWSSASASASASASAAAAAAAAAAAAAAAAAWWWWWWWWWWWWWWWWWWWDWDDDDDDDDDDSASASAAAAAAAAASASASASSSSSSSSSSSSSWSWSWSWSWSWSWSWDDDDDDDDDDDDDDDDDDDWDWDWDWDWDWDWDWDWDWWWWWWWWWWWWWWWAAAAAAAAAAAAAAAAAAAAAAAAAA

hij doet het hoor!! Bedankt!

Groeten,

Kevin
My Compiler Errors keep haunting me!!!

Volgende

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 32 gasten