Close

Version 1 | 32Feet.net (std. Bluetooth)

A project log for Range of Motion Device (Prototype)

A Windows Forms user-interface for the range of motion device I'm developing

silas-waxterSilas Waxter 10/28/2020 at 06:330 Comments

User Experience (UX)

Check out the Device Description to understand what the device is supposed to do;  the user experience is the intuitiveness and efficiency of the device's features.  These are the targets:

Version 1 of User Interface

Device Topology

Version 1 of Device Network

Each of the EM7180_UltimateSensorFusionSolution IMUs were connected to the hub over a usb2.0 cable;  although the communication was i2c, the USB cable was used because it is a common, replaceable 4 wire cable.  In this configuration, the esp32 gathered data from each IMU (through an i2c mux) and transmitted it over standard Bluetooth to the windows machine running the UI.

Implementation

Bluetooth Connectivity

The user interface incorporated a .net library called 32Feet.net, which provided an API to the windows machine's Bluetooth capabilities.  A wrapper was designed to allow scanning, pairing, etc. from within the application.

Bluetooth Device Manager

AES128 encryption was used to secure communication between devices.

Range of Motion Reporting and Categorization

The reporting and categorization were implemented using a table, a familiar concept.  Cell (1, 1) is used to specify the body region.  The rows are used for the rotation type, and the columns are used for the repetitions.  This moves all the selectable data to the left of the window meaning that if the table were to grow larger than the available space (through the addition of repetitions or thinning of the window), all the selectable data would still be displayed.  It also means that as the repetitions are completed they are filled in left to right--the same way English is read.

The "New, Open, Save, Save As" were implemented in the common "File, Edit, View, Help" header.  Each is a dropdown to a list of further options.

The visual aspects of these features were completed, but the functionality (i.e. data processing and file modification) was never implemented.

Discussions