A new trend in pointing devices is based on MEMS sensors (air mouse, air presenter) with wireless function. The most of pointing devices use proprietary RF solutions.
Standardized wireless protocols 802.11b, g, n (Wi-Fi) and 802.15 (Bluetooth) versions 2.1 or 3 are energy-intensive.
Bluetooth version 4 introduced BLE (Bluetooth Low Energy) mode. Coupled with small dimensions of MEMS sensor, a BLE device like RSL10 Sense Board can act as very small pointing device (or wearable device) with very low power consumption.
In this example, I've used RSL10-SENSE-GEVK to implement a 3d pointing device that can be used to operate a robotic arm.
The robotic arm is Dobot Magician, you can read my review of this excellent robot arm.
DOBOT Magician is a multifunctional desktop robotic arm for practical training education. Installed with different end-tools, DOBOT Magician can realize interesting functions such as 3D printing, laser engraving, writing and drawing. It comes with multiple interfaces (USB, Bluetooth, WiFi...)
It supports secondary development by 13 extensible interfaces and over 20 programming languages. In this project I use .Net (C#) interface to native 32bits Dobot API DLL.
The project consists of two parts :
- Embedded software on RSL10 Sense Board that streams orientation data (a vector for X, Y and Z angles in degrees) every 100ms.
- An Universal Windows Platform software that listen to Bluetooth messages and transmits Dobot command throw UDP interface. UWP supports BLE operations like Device, service and characteristic discovery and read/write/notify operations.
I have already used a useful software (Bluetooth LE Explorer from Microsoft) for BLE device discovery.
The source code is straightforward, when you move RSL10 Sense board on a direction, a command is sent to Dobot Magician to move the corresponding joint (X, Y or Z) by the same amount of rotation.