92 |
controllers by providing a simple design for building |
controllers by providing a simple design for building |
93 |
controllers out of commodity parts, without requiring electrical or |
controllers out of commodity parts, without requiring electrical or |
94 |
mechanical engineering experience. |
mechanical engineering experience. |
95 |
The components that suit our purposes best are LEGO Technic |
The components that suit our purposes best are LEGO [lego32]_ Technic |
96 |
bricks and |
bricks and |
97 |
optomechanical computer mice. |
optomechanical computer mice. |
98 |
LEGO Technic bricks are popular toys because they can be used |
LEGO Technic bricks are popular toys because they can be used |
126 |
- no direct academic contribution to UI research |
- no direct academic contribution to UI research |
127 |
|
|
128 |
- a simple way to combine commodities to obtain flexibility: |
- a simple way to combine commodities to obtain flexibility: |
129 |
mouse and LEGO [lego32]_ bricks. |
mouse and LEGO bricks. |
130 |
|
|
131 |
- the particular structure of using a wheel on the mouse optomechanical |
- the particular structure of using a wheel on the mouse optomechanical |
132 |
sensor |
sensor |
203 |
the optomechanical mice. |
the optomechanical mice. |
204 |
|
|
205 |
.. figure:: required.jpg |
.. figure:: required.jpg |
206 |
:width: 7.5cm |
:width: 7.5cm |
207 |
:label: figrequired |
:label: figrequired |
208 |
|
|
209 |
The non-LEGO parts and tools required for a controller. |
The non-LEGO parts and tools required for a controller. |
210 |
A USB mouse would be preferred to the PS/2 mouse |
A USB mouse would be preferred to the PS/2 mouse |
212 |
to a computer simultaneously as separate input sources. |
to a computer simultaneously as separate input sources. |
213 |
|
|
214 |
.. figure:: mouseopen.jpg |
.. figure:: mouseopen.jpg |
215 |
:width: 7.5cm |
:width: 7.5cm |
216 |
:label: figmouseopen |
:label: figmouseopen |
217 |
|
|
218 |
The mouse, opened with the screwdriver. The screwdriver |
The mouse, opened with the screwdriver. The screwdriver |
219 |
will not be needed after this step. |
will not be needed after this step. |
220 |
|
|
221 |
.. figure:: mousemechanism.jpg |
.. figure:: mousemechanism.jpg |
222 |
:width: 7.5cm |
:width: 7.5cm |
223 |
:label: figmousemechanism |
:label: figmousemechanism |
224 |
|
|
225 |
The mechanism of the mouse: the mouse ball, which rotates |
The mechanism of the mouse: the mouse ball, which rotates |
226 |
from contact with the underlying surface, rotates |
from contact with the underlying surface, rotates |
228 |
|
|
229 |
|
|
230 |
.. figure:: optomechanism.jpg |
.. figure:: optomechanism.jpg |
231 |
:width: 7.5cm |
:width: 7.5cm |
232 |
:label: figoptomechanism |
:label: figoptomechanism |
233 |
|
|
234 |
In optomechanical mice, the motion of the axles is detected |
In optomechanical mice, the motion of the axles is detected |
235 |
by the IR light gate whose beam is cut by the slitted disk. |
by the IR light gate whose beam is cut by the slitted disk. |
249 |
affected: the gate missed a large fraction of the events. |
affected: the gate missed a large fraction of the events. |
250 |
|
|
251 |
.. figure:: wheelmechanism1.jpg |
.. figure:: wheelmechanism1.jpg |
252 |
:width: 7.5cm |
:width: 7.5cm |
253 |
:label: figwheelmechanism1 |
:label: figwheelmechanism1 |
254 |
|
|
255 |
The principle behind the current version of |
The principle behind the current version of |
256 |
our interface between the optomechanical mouse and |
our interface between the optomechanical mouse and |
270 |
[ref-figpressmechanism1]_. |
[ref-figpressmechanism1]_. |
271 |
|
|
272 |
.. figure:: pressmechparts.jpg |
.. figure:: pressmechparts.jpg |
273 |
:width: 7.5cm |
:width: 7.5cm |
274 |
:label: figpressmechparts |
:label: figpressmechparts |
275 |
|
|
276 |
The LEGO parts for the driving mechanism |
The LEGO parts for the driving mechanism |
277 |
|
|
278 |
.. figure:: pressmechanism1.jpg |
.. figure:: pressmechanism1.jpg |
279 |
:width: 7.5cm |
:width: 7.5cm |
280 |
:label: figpressmechanism1 |
:label: figpressmechanism1 |
281 |
|
|
282 |
The driving mechanism assembled. The mechanism is attached |
The driving mechanism assembled. The mechanism is attached |
283 |
to the LEGO framework by the long axle; the driving tyre |
to the LEGO framework by the long axle; the driving tyre |
297 |
|
|
298 |
|
|
299 |
.. figure:: framestart.jpg |
.. figure:: framestart.jpg |
300 |
:width: 7.5cm |
:width: 7.5cm |
301 |
:label: figframestart |
:label: figframestart |
302 |
|
|
303 |
The beginnings of the housing for the mouse case. |
The beginnings of the housing for the mouse case. |
304 |
|
|
305 |
|
|
306 |
.. figure:: framedrivers.jpg |
.. figure:: framedrivers.jpg |
307 |
:width: 7.5cm |
:width: 7.5cm |
308 |
:label: figframedrivers |
:label: figframedrivers |
309 |
|
|
310 |
The driving mechanisms (using a slightly different version |
The driving mechanisms (using a slightly different version |
311 |
than the one depicted in the previous figures) |
than the one depicted in the previous figures) |
335 |
focused node and the peripherally shown nodes. |
focused node and the peripherally shown nodes. |
336 |
|
|
337 |
.. figure:: loomcontrol.jpg |
.. figure:: loomcontrol.jpg |
338 |
:width: 7.5cm |
:width: 7.5cm |
339 |
:label: figloomcontrol |
:label: figloomcontrol |
340 |
|
|
341 |
A fully functional controller prototype, with two |
A fully functional controller prototype, with two |
342 |
absolute arm controls and a wheel control. All three |
absolute arm controls and a wheel control. All three |
364 |
by preserving its position |
by preserving its position |
365 |
|
|
366 |
.. figure:: joystick.jpg |
.. figure:: joystick.jpg |
367 |
:width: 7.5cm |
:width: 7.5cm |
368 |
:label: figjoystick |
:label: figjoystick |
369 |
|
|
370 |
A 2D joystick-like controller built from LEGO bricks as |
A 2D joystick-like controller built from LEGO bricks as |
371 |
a proof-of-principle. |
a proof-of-principle. |
416 |
|
|
417 |
.. raw:: latex |
.. raw:: latex |
418 |
|
|
419 |
$f(x)$ |
$f(x)$ |
420 |
|
|
421 |
at |
at |
422 |
|
|
423 |
.. raw:: latex |
.. raw:: latex |
424 |
|
|
425 |
$x$ |
$x$ |
426 |
|
|
427 |
as |
as |
428 |
|
|
429 |
.. raw:: latex |
.. raw:: latex |
430 |
|
|
431 |
$(f(x+\epsilon/2) - f(x-\epsilon/2)) / \epsilon$ |
$(f(x+\epsilon/2) - f(x-\epsilon/2)) / \epsilon$ |
432 |
|
|
433 |
instead of |
instead of |
434 |
|
|
435 |
.. raw:: latex |
.. raw:: latex |
436 |
|
|
437 |
$(f(x+\epsilon) - f(x)) / \epsilon$ |
$(f(x+\epsilon) - f(x)) / \epsilon$ |
438 |
|
|
439 |
|
|
440 |
|
|
451 |
handle is shown in Fig. [ref-figoctagonal]_. |
handle is shown in Fig. [ref-figoctagonal]_. |
452 |
|
|
453 |
.. figure:: octagonal.jpg |
.. figure:: octagonal.jpg |
454 |
:width: 7.5cm |
:width: 7.5cm |
455 |
:label: figoctagonal |
:label: figoctagonal |
456 |
|
|
457 |
A rugged and relatively comfortable octagonal |
A rugged and relatively comfortable octagonal |
458 |
handle built from slopes and inverted slopes. |
handle built from slopes and inverted slopes. |
464 |
modelling paste, as in [ref-figpaste1]_. |
modelling paste, as in [ref-figpaste1]_. |
465 |
|
|
466 |
.. figure:: paste1.jpg |
.. figure:: paste1.jpg |
467 |
:width: 7.5cm |
:width: 7.5cm |
468 |
:label: figpaste1 |
:label: figpaste1 |
469 |
|
|
470 |
An ergonomic handle implemented using |
An ergonomic handle implemented using |
471 |
air-hardening modelling paste. The handle was |
air-hardening modelling paste. The handle was |