Data Collection Pipeline
We moved from using Adafruit Feather M0 MCU to Digilent Analog Discovery 2 for acquiring data from the sensor. Because “dwf” Python API allows simpler and more accurate manipulation of sampling rate through the Analog Discovery 2 device, it was favored over the previously tested MCU for data collection.
Data Classification Pipeline
Data for classification is acquired using the Analog Discovery 2 device. It is segmented through frequency domain energy calculations and smoothened to suppress random errors in the data. Simultaneously, the classifier looks for a signal in this segmented data if the signal crosses a threshold energy level. As was determined in the case of MCUs, Random Forest Classifier was experimentally seen to perform the best. “PyAudioAnalysis” Python library was used to calculate frequency and time domain features, and statistics were calculated on the features. Thus, a stable and accurate data processing pipeline was built that successfully distinguished 6 gestures. The required code is available in github and instruction for its usage is explained in Build Instruction section.
The present system makes use Digilent Analog Discovery 2 which is an expensive device and we DO NOT propose that it is a requirement for the successful functioning of Serpentine as a wearable device. Digilent device serves to prove that the sensing interface and data classification algorithms are functioning well and are ready to be integrated with MCU. Our ongoing research aims to achieve this integration of data acquisition over WiFi from MCU (refer to previously uploaded Python code for MCU) with segmentation and classification algorithms presented in the latest uploads.