Wiimote for Creative STEM Education

Educational Considerations

Creative Use of Wiimote in STEM education

Wiimote can be used in many different kinds of STEM activities such as:-

    1) measurement of acceleration (or actually reaction acceleration as the free fall will give zero reading) in 3D by its accelerometer

    • free fall or in an accelerating or decelerating place undergoing linear motion(e.g. lift or train)
    • circular motion (e.g. rotating disk, swirling wire, roller coaster, merry go round) on an inclined plane
    • acceleration in a pulley system with different ratios of weights on two sides
    • acceleration in a SHM system, e.g. oscillating spring or vibrating pendulum

    Advantages:

    Replace those corresponding expensive sensor (~US$200-300) in the datalogging expts.

    2) measurement of the roll and pitch angles (with respect to the direction of gravity)

    • direction of vibration on a solid plane or a boat in water
    • circular motion (including angular speed and direction of acceleration)

    3) measurement of time-varying positions of objects in 2D (up to 4 points simultaneously) using the IR camera (with either IR emitting objects or sunlight shining on IR reflecting objects)

    • projectile motion in 2D
    • collision and conservation of linear momentum for motion in 2D (including initial and final speed and direction of two objects under collision)

    Advantages:

    1. higher resolution (1024x768) than ordinary webcam;
    2. higher frame rate (near to 100 fps compared with 10-25 fps for webcam)
    3. just record positions of IR emitting objects and unaffected by ordinary lighting (i.e. no need to identify the location of objects manually)

    4) understanding geometric projection (by pointing the IR camera toward a plane at different angles and find the corner location with an IR source)

    • check if those formula are correct (application: smart whiteboard)
    • position of the wiimote respect to 2 IR sources which are separated by a known distance (with initial calibration to find its position under linear motion, i.e. perpendicular to the line joining the 2 sources)

    5) investigating the characteristics of bluetooth communication

    • max. distance of communication
    • effect of different types of obstacle

    6) it can switch on/off 4 LED lights, emit sound of a given frequency and set rumbling motion (which may terminate the bluetooth connection) and receive signals pressed by various buttons.

    7) rumble or vibration as a trigger for a human reaction test of hepatic stimulus.


Existing Software and Problems

There have been a number of different software available for connecting or using the wiimote in Windows, Linux or MacOS environments. Examples include wiimotej, wiigee, wiiMote, cwiid, WiinRemote, WiiYourself, HID-Wiimote, motej, wiipair, DarwiinRemote, Wiimotecommander, wiiuse, OSCulator, Dolphin, XWiimote, WiiCan, Touchmote, Libwiimote, WiimoteWhiteboard and Wiiphysics etc. Their varieties also reflect the popularity or widespread usage of wiimotes over the last two decades.

However, most of them were developed more than a decade  ago without recent updates.  Besides, they can function in a particular operating system or can no longer be used nowadays because of the security/Bluetooth issues (e.g. wiimotes no longer authenticated in MacOS 11+) or change in the Bluetooth protocol (e.g. L2CAP).  Furthermore, many of them overlook or omit various functions or capabilities (e.g. IR, z-component of acceleration, joystick, speaker or rumble) of Wiimote itself or its associated Nunchuk or Motion Plus, or being embedded with various types of bugs.


Wiimote for SESlogger

How was it developed

Based on the information or properties of wiimote as released in the public domain (Wii Remote and Wiimote/Extension Controllers), the wiigee package (which was partially completed for working in Linux only with limited functions) was further developed with substantial and critically important modifications and addition to integrate it with the HID Java library called purejavahidapi (after a few crucially important modifications). Eclipse IDE for Java and B4J software are used for developing the Java library and the Graphical User Interface, rendering the present cross-platform software for Windows, Linux and MacOS systems.

What is it used for

This software is developed to enable students' creative use of wiimotes for effective STEM education. It can instruct Wiimotes and Nunchuks to collect and process acceleration, joystick, button and infared camera data and to control a wiimote's LEDs, speaker and vibrator (rumble).

You may use the Wiimote as a mouse or the Nunchuk's joystick as a mouse. It works in the Windows, MacOS and Linux environment.

It is a standalone package but it could be submerged with another package called SESlogger which can collect, control and process data from a mobile logger.

How to use it

Watch the below demo videos which show how to connect a wiimote to the Bluetooth of the respective operating systems and use it in many different ways. In particular, you may use the Wiimote as a mouse by pressing 'B' and '+' buttons together. To move the mouse in the Left, Right, Up or Down direction, just rotate the Wiimote in the corresponding direction.

If connected to a Nunchuk, press buttons 'B', 'C' and 'Z' together to use the Nunchuk's joystick as a mouse.

In the mouse mode, press buttons 'B' and "Home" together if you want to use a virtual keyboard. For Linux system, a software called florence Virtual Keyboard needs to be installed.

Right click button to show more choices for different operations. Direction of 3D acceleration (given in unit of acceleration due to gravity g = 9.81m/s2) for the wiimote and nunchuk are shown in the photos below.

wiimote directions


Demonstration Videos

(1) Windows Environment

Play demo video (Windows Environment)

Click the video to play in full screen!
Play demo video of Motion Plus (Windows Environment)

Click the video to play in full screen!

(2) MacOS Environment

Play demo video (MacOS Environment)

Click the video to play in full screen!

(3) Linux Environment

Play demo video (Linux Environment)

Click the video to play in full screen!

Download

(Free for non-commercial use only)
Copyright(C) 2022-2024. Prof. YEUNG Yau Yuen. All Rights Reserved. Welcome to send feedback or comments by email to yeungy@acm.org