Wij kregen de opdracht om een muis om te bouwen zodat deze niet meer op de conventionele wordt gebruikt. Tijdens het uit elkaar halen van de muis (met balletje), ben ik er achter gekomen hoe deze muis nu eigenlijk werkt. Er zitten 2 soort van tandwieltjes bevestigd voor 2 IR lampjes, met aan de andere kant een IR ontvanger. Deze tandwieltjes zijn voorzien van gaatjes die het licht doorlaten of juist blokkeren. Op deze manier kan de muis beweging geregistreerd worden.
Foto's en een update volgen nog!
update 1: ivm de vakantie laat alles een beetje op zich wachten en het feit dat ik gta4 in mijn bezit heb, heeft daar ook niks mee te maken! ^^
update 2:
Jaja dan eindelijk een paar foto's (ja letterlijk een paar).
Zoals je op deze foto goed kunt zien, zit er een wieltje met gaatjes voor de sensor en IR bron, zodat de beweging van de muis geregistreerd kan worden.

Hier zie je hoe ik de muis uiteindelijk heb aangepast. Aan de wieltjes heb ik 2 strookjes geplakt en verzwaard met paperclips. Als je de muis nu omdraait dan zullen de strookjes altijd naar beneden willen gaan. Wanner je de muis dus kantelt, zullen de strookjes naar beneden blijven wijzen waardoor je een soort balance board creeert.


Het volgende progje heb ik vervolgens geschreven om het geheel te registreren.
// start code
stop();
width = 550;
height = 400;
// mouse function
onMouseMove = function() {
// variables x & y coordinates of the mouse
var verT = _ymouse;
var horT = _xmouse;
// output x & y coordinates for feedback
yCoord.text = verT;
xCoord.text = horT;
// new mouse cursor
Mouse.hide();
moveBlock._x = horT;
moveBlock._y = verT;
// update the function
updateAfterEvent();
}
// start hit detection
onEnterFrame = enterFrameHandler;
// onEnterFrame handler
function enterFrameHandler() {
hitDetection();
}
function hitDetection() {
// see if the block hits the blue box
if (centerBlock.hitTest(moveBlock)) {
feedBack.text = "balanced";
outOfBalance = false;
// if not, display message
} else {
feedBack.text = "out of balance" ;
centerBlock._x = moveBlock._x;
centerBlock._y = moveBlock._y;
outOfBalance = true;
}
}
// center the scale
myListener = new Object();
myListener.onKeyDown = function() {
// if ke is pressed, centre the block
if (Key.isDown(Key.CONTROL)) {
centerBlock._x = moveBlock._x;
centerBlock._y = moveBlock._y;
feedBack.text = "centered";
}
}
Key.addListener(myListener);
// listen to key pressing
addListener(myAddlistener);
download source



