| Literature DB >> 29596394 |
Alberto J Molina-Cantero1, Juan A Castro-García2, Clara Lebrato-Vázquez3, Isabel M Gómez-González4, Manuel Merino-Monge5.
Abstract
Applications involving data acquisition from sensors need samples at a preset frequency rate, the filtering out of noise and/or analysis of certain frequency components. We propose a novel software architecture based on open-software hardware platforms which allows programmers to create data streams from input channels and easily implement filters and frequency analysis objects. The performances of the different classes given in the size of memory allocated and execution time (number of clock cycles) were analyzed in the low-cost platform Arduino Genuino. In addition, 11 people took part in an experiment in which they had to implement several exercises and complete a usability test. Sampling rates under 250 Hz (typical for many biomedical applications) makes it feasible to implement filters, sliding windows and Fourier analysis, operating in real time. Participants rated software usability at 70.2 out of 100 and the ease of use when implementing several signal processing applications was rated at just over 4.4 out of 5. Participants showed their intention of using this software because it was percieved as useful and very easy to use. The performances of the library showed that it may be appropriate for implementing small biomedical real-time applications or for human movement monitoring, even in a simple open-source hardware device like Arduino Genuino. The general perception about this library is that it is easy to use and intuitive.Entities:
Keywords: Arduino; biomedical applications; digital signal processing; open-source hardware; usability test
Mesh:
Year: 2018 PMID: 29596394 PMCID: PMC5949041 DOI: 10.3390/s18041033
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Google trends for Arduino, Raspberri Pi and Beaglebone boards in the last years.
Figure 2A processing pipeline containing three layers. The pipeline is managed by three main processes (orange and red in the figure). The data acquisition is a synchronous process that periodically samples data guaranteeing that they are delivered to higher layers in the pipeline at a fixed rate. The non-blocking timing is also an synchronous process that updates a list of timers. The third one, the Task Manager, is continuously executing the rest of the layer processes asynchronously. Finally, the global context contains the information that all processes share. The queues, timers and global variables are all defined in this area of the program.
Figure 3Timer1 is configured to trigger the Analog to Digital Converter, ADC, at a frequency rate of . The End-of-Conversion (EOC) interrupt (1) makes the ADC interrupt routine to read the data, sends it (2) to the Digital Signal Processing or DSP layer through the appropriate queue and (3) updates the ADC multiplexer, ADMUX, to select the next channel for conversion.
Figure 4Support for non-blocking delays through Timer0 interrupts. Every 1 ms (1), an interrupt is generated, which makes an interrupt routine increase the aux variable. Every 10 ms (the default timer resolution), this routine searches for a list (4) of declared (3) and installed (5) timers in order to decrease their values. For example, Timer1 in the figure would expire after 1 s.
SWOT analysis applied to the software architecture
| • Open source | • The same | |
Figure 5Methodology phases followed for software testing. During the implementation, the unit and integration phases were simultaneously accomplished. Then, in the system testing, the integration with external libraries and the evaluation of the library in different scenarios were carried out. Finally, the library performances were measured and sent to the -tester who approved to proceed with the last part of the test in which some people (-testers) performed two programming exercises and filled in several surveys (SUS, TAM3).
SUS statements.
| SUS Statements | Disagree - Agree | ||||
|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
Specific statements.
| Programing Exercise Statements | Disagree - Agree | ||||
|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 2 | 3 | 4 | 5 | |
Qualitative questions.
| Time taken to understand the documentation: |
|---|
Determinants for perceived usefulness.
| Determinant | Definition | |
|---|---|---|
| Perceived Ease of Use | PEOU | The degree to which a person believes that using an IT will be free of effort |
| Subjective Norm | SN | The degree to which an individual perceives that most people who are important to him think he should or should not use the system |
| Job Relevance | REL | The degree to which an individual believes that the target system is applicable to his or her job |
| Output Quality | OUT | The degree to which an individual believes that the system performs his or her job tasks well |
| Result Demonstrability | RES | The degree to which an individual believes that the results of using a system are tangible, observable, and communicable |
Determinants for perceived ease of use.
| Determinant | Definition | |
|---|---|---|
| Computer Self-Efficacy | CSE | The degree to which an individual believes that he or she has the ability to perform a specific task/job using the computer |
| Perception of External Control | PEC | The degree to which an individual believes that organizational and technical resources exist to support the use of the system |
TAM3 statements.
| TAM3 Statements | Disagree - Agree | |||||||
|---|---|---|---|---|---|---|---|---|
| PU1 Using the system improves my performance in my job. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PU2 Using the system in my job increases my productivity. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PU3 Using the system enhances my effectiveness in my job. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PU4 I find the system to be useful in my job. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PEOU1 My interaction with the system is clear and understandable. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PEOU2 Interacting with the system does not require a lot of my mental effort. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PEOU3 I find the system to be easy to use. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PEOU4 I find it easy to get the system to do what I want it to do. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| I could complete the exercise using a library . . . | ||||||||
| CSE1 . . . if there was no one around to tell me what to do as I go.. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| CSE2 . . . if I had just the built-in help facility for in the documentation. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| CSE3 . . . if someone showed me how to do it first. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| CSE4 . . . if I had just the built-in help facility for in the examples. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PEC1 I have control over using the system. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PEC2 I have the resources necessary to use the system. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PEC3 Given the resources, opportunities and knowledge it takes to use the system, it would be easy for me to use the system. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| PEC4 The system is not compatible with other systems I use. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| SN1 People who are important in my professional environment think that I should use the system. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| SN2 In general, supervisors and workmates have been helpful in the use of the system. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| SN3 In general, the organization has supported the use of the system. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| VOL1 My use of the system is voluntary. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| VOL2 My supervisor does not require me to use the system. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| VOL3 Although it might be helpful, using the system is certainly not compulsory in my job. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| REL1 In my job, usage of the system is useful. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| REL2 In my job, usage of the system is relevant. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| REL3 The use of the system is pertinent to my various job-related tasks. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| OUT1 The quality of the output I get from the system is high. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| OUT2 I have no problem with the quality of the system’s output. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| OUT3 I rate the results from the system to be excellent. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| RES1 I have no difficulty telling others about the results of using the system. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| RES2 I believe I could communicate to others the consequences of using the system. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| RES3 The results of using the system are apparent to me. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| RES4 I would have difficulty explaining why using the system may or may not be beneficial. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| BI1 I intend to use it. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| BI2 I predict that I would use it. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| BI3 I plan to use the system in the future. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
Description of participant groups.
| Group | Subjects | Experienced with Arduino | Level | Percentage (%) |
|---|---|---|---|---|
| G1 | S1..S5 | Yes | Graduate | 45.4 |
| G2 | S6..S9 | Yes | Undergraduate | 36.4 |
| G3 | S10 and S11 | No | Graduate | 18.2 |
Figure 6Output results after applying different signal processing techniques: (a) : a double-zero low pass filter to remove lighting interference at 100 Hz ( = 250 Hz); (b) : an audio signal acquired at 4 kHz and its energy obtained by using a block class of length 50 and hop size equal to 25; (c) : the FFT applied to a one-channel stream of data at 250 Hz and 64 frequency bins; (d) : two 50-tap polyphasic low pass filters with a decimation factor of 4 applied to data sent by a two-axis accelerometer ( = 250 Hz).
Performances of the designed classes. Four parameters have been analyzed: program memory size, ; data memory size, ; number of clock cycles for some important class methods, on average, or in the worst case . (*) The must be increased by 996 if the filter class has not been previously loaded in memory.
| Program Size | Data Size | Mean Execution Cycles | Max. Execution Cycles | |
|---|---|---|---|---|
| Object |
|
| ||
| Hardware Layer | 1934/5.9 |
|
| 97 |
| Filter | 996/3 |
|
| |
| Poly. Filter | 626 */1.9 |
|
| |
| Goertzel | 55 */0.2 | 62 |
| 1786 |
| Block | 390/1.2 |
|
| |
| Non-Blocking Delays | 148/0.5 |
|
|
|
Figure 7Box and violin plots containing the marks of SUS statements (A1, A2, ..., A10) and specific to the basic signal processing library (B1, B2, ..., B7).
Figure 8Time spent by participants to carry out the suggested activities.
TAM3 results. Columns M and SD show the average and standard deviation of all explored parameters, respectively. The Spearman correlation coefficient and its significance among the explored variables are also shown. (*) p < 0.05, (**) p < 0.01.
| M | SD | PU | PEOU | CSE | PEC | SN | VOL | REL | OUT | RES | BI | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 6.4500 | 0.5104 | 1.000 | ||||||||||
| 5.5500 | 0.9987 | 0.975 ** | 1.000 | |||||||||
| 5.6000 | 1.3917 | 0.359 | 0.400 | 1.000 | ||||||||
| 4.8500 | 1.9808 | 0.718 | 0.800 | 0.500 | 1.000 | |||||||
| 6.3333 | 1.1127 | 0.379 | 0.369 | 0.105 | 0.738 | 1.000 | ||||||
| 6.5333 | 1.0601 | 0.158 | 0.103 | 0.872 | 0.205 | 0.108 | 1.000 | |||||
| 5.9333 | 0.8837 | −0.296 | −0.289 | 0.289 | −0.577 | −0.913 * | 0.296 | 1.000 | ||||
| 6.4667 | 0.5164 | −0.053 | −0.051 | 0.872 | 0.205 | 0.108 | 0.947 * | 0.296 | 1.000 | |||
| 5.0500 | 1.6694 | 0.918 * | 0.894 * | 0.112 | 0.783 | 0.648 | −0.057 | 0.645 | −0.229 | 1.000 | ||
| 6.3333 | 0.6172 | 0.918 * | 0.894 * | 0.224 | 0.447 | 0.000 | 0.000 | 0.000 | −0.229 | 0.750 | 1.000 |
Figure 9Theoretical maximum filter length as a function of the sampling rate () and decimation factor D. Each curve has been obtained by taking into account the room in the memory hosting the coefficients and the data, and the time available to compute the filter output as only one input channel is used.
Figure 10Theoretical maximum number of Goertzel filters as a function of the sampling rate () and number of iterations (N). Each curve has been obtained by taking into account the room in the memory hosting filter objects and the time available to compute them.
Resources for computing the FFT algorithm given in [43]
| N | Program Size | Data Size | Exec. Cycles |
|---|---|---|---|
| 256 | 5004 | 1334 | 232554 |
| 128 | 4116 | 758 | 107338 |
| 64 | 3684 | 470 | 49560 |
| 32 | 3468 | 326 | 22860 |
| 16 | 3368 | 254 | 10793 |
Figure 11(a) completion time in reading the documentation and performing the exercises according to groups. (b) time to accomplish exercises 1 and 2 for all participants.