Developing a Wearable Assistant for Trekking Competitions
The goal of this project is to develop a wearable system to assist with navigation and time keeping for Crosstalk, my Enduro Trekking team. In this regularity competition teams navigate by foot through a predefined course at predetermined speed relying only on information given by step counting, compass bearing and chronometer. Good timing depends on a good estimation of the distance, which is problematic since terrain and speed changes the step length. Interface and usability details are also challenging due to very fast pacing of the sport.
Most graduated teams use equipments created for car and motorcycles enduros, exchanging the wheel odometer by a button that should be pressed for each step as you walk. I have developed my own several incarnation of devices using different microcontrollers, interfaces and sensors.
The very first version was an android app. Inserting data with the capacitive touch screen proved problematic due to sweat and humidity from rain and rivers during the activity. I later introduced a bluetooth keyboard, but it didn't have an stable connection and the screen was still difficult to read. Besides that, smartphones are not allowed in the competition due the possibility of gaining external help and using the GPS.
|
CLU (from Tron) was my second attempt. It used an intelligent LCD module from 4D Systems . The module enabled me to develop a very compact device, with an SD card that could store the distances and speeds of the course. The module has an ADC, which I used to read 4 hardware buttons. It also featured a cool color display capable to reproduce 65k colors with a resolution of 128x128 pixels. Unfortunately, the LCD also was difficult to read during very bright days.
The main problem with CLU was the lack of a keyboard, so the only practical way of inserting data was to open the device, remove the SD card, insert into a notebook and edit the file there. |
The 4DGL programming language is very easy. However, it only supports one variable type: 16 bits integer variables. Suddenly simple computations were overflowing or being truncated. So I needed to do all the math using fixed point arithmetics, including a very tricky clock calibration that took me some time to get right.
|
After some time I decided do build a third version, with a monochromatic display, a numeric keyboard and a microcontroller that could at least be programmed in C. Since I made the system in a hurry, I used an Arduino to read the keyboard and forward the keystrokes to a MSP evaluation kit from Olimex. The two microcontrollers exchanged information through a RS-232 link. So I called this equipment R2-D2. The most insane part was to implement the keyboard interfacing protocol without an osciloscope...
The final equipment allowed a very fast data input, using the keyboard arrows and some buttons as hotkeys. The main problem was its size. Running with this thing was really troublesome. |
After the failure of the third prototype I decided to improve CLU's input system by using voice control. So I modified the hardware to include a EasyVR board. So it was possible to use the voice to input and change the course, without the need of a physical keyboard. It performed very well indoor but when I tested during the competition, not a single command was recognized. Later I discovered that the board algorithm was very sensible to background noise. Too bad!
|
The current version is called Autobot. One of the most tedious aspects of the step counting is to remember to press the counting button at each step. The Autobot features an exclusive automatic step counting feature. The user wear a knee pad with an embedded bend sensor. The MSP samples the value of the sensor and determines when a step was taken, automatically updating the total distance. The sensor and the device are connected by a signal cable with fabrikit connectors.
I am currently working on integrating this sensor with an audio interface. The goal is to have a system able to alert and voice vital information during the competition to keep the team aware of the current condition without one having to look down or use the hands. For the voices I am using samples from Acapella Box text to speech system. For the main software I am using a more robust platform, a beagleboard-XM running linux Angstrom.