0% found this document useful (0 votes)
6 views21 pages

Intelligent Racing Seat Design Research

The paper discusses the development of sensor technology in racing seats to enhance driver performance by providing real-time feedback on driving mechanics. Conducted by the Human-Machine Interaction Lab at Georgia Tech, the research combines qualitative and quantitative methods to identify the needs of competitive race car drivers. The findings suggest that implementing sensor-based accessories could significantly improve driving ability and reduce costs associated with racing performance.

Uploaded by

Bhone Min Thant
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views21 pages

Intelligent Racing Seat Design Research

The paper discusses the development of sensor technology in racing seats to enhance driver performance by providing real-time feedback on driving mechanics. Conducted by the Human-Machine Interaction Lab at Georgia Tech, the research combines qualitative and quantitative methods to identify the needs of competitive race car drivers. The findings suggest that implementing sensor-based accessories could significantly improve driving ability and reduce costs associated with racing performance.

Uploaded by

Bhone Min Thant
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

World Journal of Engineering and Technology, 2018, 6, 420-440

[Link]
ISSN Online: 2331-4249
ISSN Print: 2331-4222

Engineering Intelligent Racing Concepts Using


Design Research Methods

Trevor Hyman*, Wayne Li

Human-Machine Interaction Lab, School of Industrial Design, College of Design, Georgia Institute of Technology,
Atlanta, USA

How to cite this paper: Hyman, T. and Li, Abstract


W. (2018) Engineering Intelligent Racing
Concepts Using Design Research Methods. The automotive seat market is positioned to significantly grow over the next
World Journal of Engineering and Tech- five years. Research into how sensor implementation in every day driver cars
nology, 6, 420-440. can enhance driver wellness is becoming increasingly popular and visible in
[Link]
the automotive seat industry. However, in the competitive race car industry,
Received: April 5, 2018 drivers prioritize driving ability over wellness. To further examine this phe-
Accepted: May 27, 2018 nomenon, the Human-Machine Interaction Lab at the Georgia Institute of
Published: May 30, 2018 Technology took a unique approach to developing strong use cases for im-
plementing sensor technology to improve driving ability for race car drivers
Copyright © 2018 by authors and
Scientific Research Publishing Inc. by combining qualitative and quantitative research data obtained through
This work is licensed under the Creative modern design research and planning methodology. Following a process re-
Commons Attribution International lying heavily on user-centered design methods, the authors developed a busi-
License (CC BY 4.0). ness case concept for a sensor-based seat accessory that acts as a competitive
[Link]
racer’s driving coach that is able to identify the mechanics of braking, turning,
Open Access
and accelerating through pressure sensors in the driver’s seat pan surface.
This technology allows drivers to precisely understand when and how hard to
brake, turn, or accelerate out of turns, thus reducing heat times and financial
burden for drivers.

Keywords
Design Research, Design Planning, Automotive, Engineering Design, Racing
Accessories, Seat Design, Georgia Tech, Industrial Design, HMI Lab

1. Introduction
Between 2017 and 2022, the automotive seat market will experience an
on-average Compound Annual Growth rate of 10% [1]. The landscape of users
in this market include, but are not limited to, drivers that use vehicles to com-
plete everyday tasks, drivers that use vehicles as their workplace, and drivers that

DOI: 10.4236/wjet.2018.62026 May 30, 2018 420 World Journal of Engineering and Technology
T. Hyman, [Link]

use vehicles to compete in controlled, racing environments. Current research in


the automotive seat industry is headlined by ergonomic and wellness planning as
the development of autonomous vehicle technology dominates the future of
transportation design. With this in mind, the Human-Machine Interaction Lab
at the Georgia Institute of Technology decided to study competitive race car
drivers in order to understand both their implicit and explicit needs to ultimate-
ly assist OEMs and aftermarket manufacturers in designing a novel product that
would enhance the racer’s user experience while competing in their vehicle(s).
The discovery of needs is a crucial step in the design research and planning
process that the HMI uses to reveal gaps in existing solutions and characterize
user behavior. Traditional research methods work well in quantifying user’s
preferences among existing solution options, but they do little to reveal needs
that most people have trouble readily articulating [2]. In order to understand
this particular user group’s needs, HMI Lab researchers collaborated with the
Sports Car Club of America to attend racing events and observe and interview
drivers in a competitive racing environment.

2. Design Research and Planning Methodology


2.1. Investigation of SCCA Solo Autocross Rules
Investigation of SCCA Solo Autocross rules was a critical first step in under-
standing users. Rules of Autocross dictate vehicle alterations and, consequently,
change the driving experience for competitors. Of the six main classes—Street;
Street Touring; Street Prepared; Street Modified; Prepared; Modified—over half
of the 70,000+ Autocross drivers across the United States compete in the Street
and Street Touring classes [3]. Drivers choose to compete in these two classes
due to the lowest barrier to entry—Street category rules prohibit virtually all ve-
hicle and seat modifications, affording any interested competitor the ability to
compete in the car they drive on a daily basis. Street Touring allows for minor
changes, with the most significant being that drivers are allowed to switch their
OEM seat out for a racing-specific seat so long as the seat weighs at least 25
pounds.

2.2. Stakeholder Analysis and Characterization


The HMI Lab research team used demographic data collected by the SCCA, qua-
litative data obtained through interviews with subject matter experts, and SCCA
Solo Autocross rules to characterize important stakeholders based on their car
design and behavior. These four stakeholders embody the different types of
driver that participate in SCCA Solo Autocross competitions. Figure 1 breaks
down the demographics for spending and participation behavior for the four
stakeholders.
1) Primary Stakeholder: The Stock Seat Driver
The stock seat driver uses his or her own car as both a daily driving and com-
petition vehicle. Street rules prevent this type of driver from making any

DOI: 10.4236/wjet.2018.62026 421 World Journal of Engineering and Technology


T. Hyman, [Link]

Figure 1. SCCA member survey data [4].

modifications to his or her vehicle, though multiple drivers may use the same
car. This type of driver may bring an extra set of competition tires to swap in
and out, however, they are attracted to the low financial commitment necessary
to be a competitive driver in this class. Despite there being a low barrier to entry,
many Solo competitors have expressed that there are plenty of Street drivers that
are overall better drivers than those that compete in the Modified class, for ex-
ample.
2) Secondary Stakeholder: The Racing Seat Driver
The racing seat driver uses his or her own car as both a daily driving and
competition vehicle, he or she minimal changes to the interior of the car, and he
or she has permanently switched out the OEM seat in exchange for an aftermar-
ket racing seat. The racing seat driver typically competes in the Street Touring,
though he or she is allowed to compete in all racing classes except for Street.
Street Touring is the ideal racing class for this persona due to the higher finan-
cial commitment required by the higher classes.
3) Tertiary Stakeholder: The Different Seats Driver
The different seat driver is a unique stakeholder, as he or she switches the
OEM seat prior to or upon arrival to the Solo competition. This stakeholder has
chosen to switch out their seats due to complaints surrounding daily driver
comfort and durability regarding racing-specific seats. This stakeholder com-

DOI: 10.4236/wjet.2018.62026 422 World Journal of Engineering and Technology


T. Hyman, [Link]

petes in all racing classes except for Street, and most commonly competes in
Street Touring and Street Prepared classes.
4) Quaternary Stakeholder: The Different Cars Driver
The different cars driver tows his or her competition vehicle to the Solo com-
petition via trailer. Modified and Prepared class rules allow for the large number
of changes that these stakeholders to their vehicles. The different cars driver
spends the most capital on changes vehicle changes—most of these vehicles have
very few OEM parts. As a result, this stakeholder not only requires the most fi-
nancial commitment, but also the most background knowledge of vehicular en-
gineering and design.

2.3. Problem Scenarios and Existing Use Cases


Observational research revealed three potential design directions for the project:
1) Daily driving durability in competitive racing seats; 2) Multiple-Driver inter-
changeability in racing seats; 3) Visibility and clarity of driving information and
advice to improve driving ability.
Design Direction (1) was uncovered through informational interviews with
drivers at Solo events. Examining video evidence taken of drivers revealed ergo-
nomic issues surrounding ingress and egress of permanent racing seat installa-
tion. These issues resulted in visible wear and tear over the driver’s side bolster-
ing, for those that have had their racing seat for longer than six months. Re-
searchers also took note of severe UV damage along the back bolstering on the
side closest to the driver’s door. This bolstering is critical in preventing sliding
during rigorous slaloming and turning while driving. A simple design change
eliminating or lowering bolstering height would save upholstery damages, how-
ever, as mentioned previously, this bolstering is critical in preventing sliding
during rigorous slaloming and turning during races. Without this bolstering,
many drivers explained that they are forced to brace themselves against their
doors and center console to minimize lateral movement. This oftentimes causes
intense bruising along legs, leading many to wear kneepads while driving.
Design Direction (2) was uncovered through informational interviews and
observations with drivers at Solo events. Solo drivers explained that the grega-
riousness of SCCA competitions is a main attraction for many interested drivers.
SCCA events are run completely by volunteers, and winning races based off of
skill as opposed to vehicle performance is highly valued. As a result, many driv-
ers will share their vehicles with drivers they know and trust. This presents a
problem for three of the four stakeholders, as racing seats are usually fitted for a
specific body height and waist width. For those who are too small to fit in
another driver’s racing seat, pillows and blankets are added as supplementary
upholstery to prevent the sliding that occurs in most OEM seats.
Design Direction (3) was uncovered through informational interviews and
observations with drivers at Solo events. HMI Lab researchers possess little
background in competitive racing, and as a result, tried to understand how one

DOI: 10.4236/wjet.2018.62026 423 World Journal of Engineering and Technology


T. Hyman, [Link]

improves driving ability. Solo drivers explained that to be skilled, one must bea-
ble to drive by “the seat of the pants feel”. The “seat of the pants feel” is driver
jargon for one’s driving intuition and ability to naturally respond to feedback
from one’s own vehicle, communicated through the driver’s seat pan surface [5].
These natural reactions are the most effective way to navigate unfamiliar Solo
tracks; the ability to process information quickly and properly respond instan-
taneously is a skill that many drivers have expressed can only be developed
through “seat time”—driver jargon for the amount of time spent in the driver’s
seat competing in Solo events. Very few drivers possess OBD (on-board diag-
nostic) systems to relate brake and throttle position to specific instances on a
course as well as gravitational forces on car suspensions. Additionally, OBD sys-
tems are thousands of dollars and are unaffordable for most users that compete
in Autocross. For those that do make the financial commitment and purchase
this software, many have to take classes or workshops, another large financial
commitment, to understand the data that the software is presenting.
These design directions allowed researchers to test which scenario has the
largest share of stakeholders through consented survey data presented in Ap-
pendix A. Drivers of all skill levels and all Solo classes have the need to improve
racing ability, and existing solutions to improving ability are extremely costly for
drivers. The typical SCCA member will spend $1971 dollars per year on car im-
provements and upkeep [4]. Evaluating these stakeholders using quantitative
data to verify qualitative research insights confirms that research should contin-
ue in Design Direction (3), allowing us to develop stakeholder needs, impera-
tives and design principles to be outlined in Section 2.4.

2.4. Needs, Imperatives, and Design Principles


Figure 2 illustrates the needs hierarchy that HMI Lab researchers developed to
better define imperatives and design principles moving forward. Design impera-
tives encapsulate user needs while simultaneously guiding feasibility testing and
solution ideation that meet all levels of user needs, from high level needs like the
need to compete and socialize, to specific, qualifier needs like the need to pur-
chase lots of tires and racing equipment. There is a crucial relationship between
money and developing the “seat of the pants feel”; the more money one has, the
more events one can attend; the more events one can attend, the more time one
spends in the car under race conditions, thus, improving driving ability. Using
these important insights, researchers developed three design imperatives to
guide testing and ideation. A successful solution incorporates the following:
1) Informs drivers with important driving data.
2) Teaches users to drive with “the seat of the pants feel”.
3) Clarifies driving data into actionable advice.
These design principles suggest that sensor technology within the vehicle
could be leveraged to instruct drivers in how to improve race times, similar to
how a driving coach would if he or she was sitting in the passenger seat.

DOI: 10.4236/wjet.2018.62026 424 World Journal of Engineering and Technology


T. Hyman, [Link]

Figure 2. Solo driver needs hierarchy.

3. Testing Methodology and Development


3.1. Low-Fidelity Sensor Development
Researchers built upon code and Tekscan A401 force sensitive resistors devel-
oped and purchased, respectively, by mechanical engineering and industrial de-
sign students in an undergraduate capstone design course at the Georgia Insti-
tute of Technology to understand the forces that act on a driver’s seat pan sur-
face during racing competition. [6]. Building off of existing Arduino code, re-
searchers were able to read in arrays of data values into Excel. Once in Excel,
data was transposed from an m × n matrix into an n × m matrix so that each
sensor has its own column of data points per time. This facilitates reading in and
displaying values as a function of time in Matlab. Code for Arduino and Matlab
can be found in Appendices B and C, respectively; the circuit diagram for the
Arduino is illustrated in Figure 3.

3.2. Low-Fidelity Sensor Feasibility Testing


The research team hypothesized that pressure sensors could correlate specific
driving behavior with leg position and pressure. By applying the sensor array to
different places of interest, seat pan surface, seat back, and seat belt, researchers
looked to test the following question:
1) Feasibility Question: Can the forces that seat sensors read from our legs
while accelerating, braking, and turning be correlated with a simultaneous action
being completed by the driver?
Research Scientist, Mr. Trevor Hyman, tested FSR array and Arduino code
through multiple “ride along” trials with drivers in multiple classes at the SCCA
Southeast Region Test and Tune, February 2018. Figure 4 illustrates the setup
Mr. Hyman developed for testing. Protocol for experiment were as follow:
1) Position four sensors in square formation on seat pan surface with one
sensor positioned on lower back of driver’s seat.

DOI: 10.4236/wjet.2018.62026 425 World Journal of Engineering and Technology


T. Hyman, [Link]

Figure 3. Arduino and FSR circuit diagram.

Figure 4. Mazda Miata testing setup.

2) Secure laptop and circuit and check for functionality.


3) Buckle seat belt, put on helmet.
4) Begin recording data when car stops at starting line.
5) Stop recording data the moment the car stops moving after completing a
run.
6) Save console output data in Excel spreadsheet by copy and pasting.
Figure 5 illustrates the data that was obtained in the first round of testing,
using the sensor array shown in Figure 6. The first round data were difficult to
develop strong insights from possibly due to the fact that each force sensor is
small relative to the area the driver’s leg covers during driving. However, an im-
portant data trend suggested that our hypothesis could be correct, as peaks in
one sensor were coupled with valleys in another, suggesting that those sensors

DOI: 10.4236/wjet.2018.62026 426 World Journal of Engineering and Technology


T. Hyman, [Link]

Figure 5. Round Two testing data.

Figure 6. Round 2 FSR array setup.

were on opposite legs, signifying a shift in body weight during a turn. In subse-
quent testing rounds, data was also gathered in a controlled driving environment
similar to that of an SCCA event. The primary goal of these testing rounds was
to confirm that additional sensor configurations would not yield clearer results.
These testing rounds confirmed researchers’ hypothesis that the seat pan surface
was the best setup for gathering data that would characterize driving behavior.

3.3. Higher-Fidelity Sensor Testing


The second design iteration utilized a Tekscan Body Pressure Measurement Sys-

DOI: 10.4236/wjet.2018.62026 427 World Journal of Engineering and Technology


T. Hyman, [Link]

tem Pressure mat to characterize driver seat movement across the seat pan sur-
face. Authors expected to see certain areas of the pressure sensor mat activate
based off of specific driving behavior or actions. Using these sensors combined
with synchronized video data of the course, researchers could confirm that sen-
sors were in-fact reading these movements properly. Figures 7-9, demonstrate
different driving actions and the corresponding activation of sensors due to leg
movement and pressure.

4. Development of Product Use Case Scenarios


The data confirm the possibility of three use case scenarios for users. Characte-
rizing what a driver is doing based on the activation of different areas on the
pressure mat, combined with GPS and video data could potentially be an in-
credibly valuable tool for drivers. Though our research has not developed into a
market-ready product or solution, the HMI Lab’s existing research demonstrate
that the needs, market, and technology exist for a racing product that leverages
force-sensor based seat technology. The HMI Lab will continue to iterate and
test designs that correspond with the following three use case scenarios de-
scribed in Sections 4.1, 4.2 and 4.3.

4.1. Use Case Scenario 1


By crowd sourcing turning, acceleration, and braking patterns by drivers across
the country, or through repetitive characterization of these driving actions, a
database of turns can be developed to be referenced by an artificial intelligence
platform. Driving advice could potentially be haptic or visual depending on the
medium through which information is presented back to the driver.

4.2. Use Case Scenario 2


A database of turns, acceleration and braking patterns are referenced by an AI
platform when a driver is performing an action. It compares and contrasts input

Figure 7. Acceleration.

DOI: 10.4236/wjet.2018.62026 428 World Journal of Engineering and Technology


T. Hyman, [Link]

Figure 8. Right turn, no acceleration.

Figure 9. Left turn while accelerating.

data from the previous drive in real time, updating itself based on individual
driving habits to determine whether the driver is performing the correct driving
action and the precise moment. In this case, some type of digital driving coach
or avatar could be created from the AI platform.

4.3. Use Case Scenario 3


Leveraging GPS technology, the driver walks the course they will race on to map
out specific turns and obstacles. This GPS data syncs with an accompanying
smart phone application and mathematically calculates optimal driving line,
ideal braking time(s), ideal accelerating time(s) and instructs the user as to when
and with how much pressure he or she should initiate the affiliate action.

DOI: 10.4236/wjet.2018.62026 429 World Journal of Engineering and Technology


T. Hyman, [Link]

5. Conclusion
Though the directions to this project are open ended, there are specific qualities
in each use case scenario that align and meet the criteria specified by the afore-
mentioned design principles and imperatives. Drivers need to know how to im-
prove their driving, and a low-cost, technologically-advanced, sensor-based
technology that allows them to do so. This technology can additionally be de-
veloped to meet the needs of similar user groups, such as those in the Go-kart
industry, a primary segue for garnering interest in racing for young adults and
children. By informing, teaching, and clarifying driving data, this product aims
to give racers a competitive edge.

Acknowledgements
The authors would like to thank the members of the Sports Car Club of America
for their generous support of the project, specifically, Tom Gorman, Randall
Prince, and Dave Hardy—the SCCA Southeast Region Leadership. Also deserv-
ing recognition is Dr. Stephen Sprigle of the REAR Lab at the Georgia Institute
of Technology for letting the HMI lab borrow their Tekscan sensors. Finally, the
authors would like to thank General Motors and Autodesk through which this
research project was partially funded.

References
[1] Hiemstra-van Mastrigt, S., Kamp, I., van Veen, S.A.T., Vink, P. and Bosch, T.
(2015) The Influence of Active Seating on Passengers’ Perceived Comfort and Ac-
tivity Levels. Applied Ergonomics, 47, 211-219.
[2] Patnaik, D. (2017) Create Space Independent Publishing Platform. 4th Edition.
[3] SCCA. What Is Autocross? Sports Car Club of America.
[Link]
[4] SPORTSCAR Magazine (2014) RACER. SPORTSCAR Magazine Media Kit 2014
Issue. [Link]
[5] Fuller, R. (2005) Behavioral Research in Road Safety 2005: Fifteenth Seminar. Uni-
versity of Dublin, Department for Transport, London.
[Link]
[6] Learnard, D., Nguyen, G., Strauss, A., Zhang, I. and Eberle, M. (2017) Interactive
Sensor Based Driver’s Seating Design: General Motors Final Report. School of In-
dustrial Design, Capstone Studio Final Project Report, Georgia Institute of Tech-
nology.

DOI: 10.4236/wjet.2018.62026 430 World Journal of Engineering and Technology


T. Hyman, [Link]

Appendix A: Racing Seat Questionnaire

DOI: 10.4236/wjet.2018.62026 431 World Journal of Engineering and Technology


T. Hyman, [Link]

Appendix B: Arduino Code


/*
* Demo sketch for new "PLX DAQ v2"
* including most all common commands to be used
*
* Working Pressure Sensor
*/

int i = 0;
const int FSR_PIN = A0;
const int FSR_PIN1 = A1;
const int FSR_PIN2 = A2;
const int FSR_PIN3 = A3;
const int FSR_PIN4 = A4;
const float VCC = 4.98;
const float R_DIV = 1000000;
const int sampleSize = 500;
const int IRPin = A5;

void setup() {
// int fsrADC;
// open serial connection

[Link](9600);
pinMode(FSR_PIN, INPUT);
pinMode(FSR_PIN1, INPUT);
pinMode(FSR_PIN2, INPUT);
pinMode(FSR_PIN3, INPUT);
pinMode(FSR_PIN4, INPUT);
pinMode(IRPin, INPUT);
//[Link]("CLEARDATA"); // clears sheet starting at row 2
[Link]("CLEARSHEET"); // clears sheet starting at row 1

// define 5 columns named "Date", "Time", "SensorValue"


// [Link]("LABEL,Date,Time,SensorValue");
[Link]("LABEL,Value Num-
ber,Timer(s),PS0(lbf),PS1(lbf),PS2(lbf),PS3(lbf),PS4(lbf),Proximity(in)");

// set the names for the 3 checkboxes


[Link]("CUSTOMBOX1,LABEL,Stop logging at 100?");
// [Link]("CUSTOMBOX2,LABEL,Resume log at 350?");
// [Link]("CUSTOMBOX3,LABEL,Quit at 450?");

DOI: 10.4236/wjet.2018.62026 432 World Journal of Engineering and Technology


T. Hyman, [Link]

// check 2 of the 3 checkboxes (first two to true, third to false)


[Link]("CUSTOMBOX1,SET,1");
// [Link]("CUSTOMBOX2,SET,0");
// [Link]("CUSTOMBOX3,SET,0");

void loop() {

// simple print out of number and millis. Output e.g.,:


"DATA,DATE,TIME,TIMER,4711,13374,AUTOSCROLL_20"
// [Link]( (String) "DATA,DATE,TIME,TIMER," + i++ + "," + mil-
lis() + ",AUTOSCROLL_20" );// alternative writing method:
/* [Link]("DATA,DATE,TIME,TIMER,");
[Link](i++); [Link](",");
[Link](millis());
[Link](","); [Link]("SCROLLDATA_20"); */

float dataArray[5]; //create an array of all 5 data points for each second

int fsrADC = analogRead(FSR_PIN);


float force;
int fsrADC1 = analogRead(FSR_PIN1);
float force1;
int fsrADC2 = analogRead(FSR_PIN2);
float force2;
int fsrADC3 = analogRead(FSR_PIN3);
float force3;
int fsrADC4 = analogRead(FSR_PIN4);
float force4;
int Proximity;
// If the FSR has no pressure, the resistance will be
// near infinite. So the voltage should be near 0.
float IRvolts = analogRead(IRPin)*.0048828125;
Proximity = 10*pow(IRvolts,-1);
//distance = analogRead(IRPin)*5;
delay(1000); //displays data every 1/10 of a second
[Link]();

//////PS0
if (fsrADC != 0) // If the analog reading is non-zero

DOI: 10.4236/wjet.2018.62026 433 World Journal of Engineering and Technology


T. Hyman, [Link]

{
// Use ADC reading to calculate voltage:
float fsrV = fsrADC * VCC / 1023.0;
// Use voltage and static resistor value to
// calculate FSR resistance:
float fsrR = R_DIV * (VCC / fsrV - 1.0);
// [Link]("Resistance: " + String(fsrR) + " ohms");
// Guesstimate force based on slopes in figure 3 of
// FSR datasheet:
float fsrG = 1.0 / fsrR; // Calculate conductance
// Break parabolic curve down into two linear slopes:
if (fsrR <= 600)
force = (fsrG - 0.00075) / 0.0000000168;
//force = (fsrG - 0.00075) / 0.00000032639;
else
force = fsrG / 0.0000000328;
//force = fsrG / 0.000000642857;
// [Link]("Force: " + String(force) + " g");
// [Link]();
/////////////////
//delay(500);
}
else
{
// No pressure detected
}

//////PS1
if (fsrADC1 != 0) // If the analog reading is non-zero
{

float fsrV1 = fsrADC1 * VCC / 1023.0;


// Use voltage and static resistor value to
// calculate FSR resistance:
float fsrR1 = R_DIV * (VCC / fsrV1 - 1.0);
// [Link]("Resistance: " + String(fsrR) + " ohms");
// Guesstimate force based on slopes in figure 3 of
// FSR datasheet:
float fsrG1 = 1.0 / fsrR1; // Calculate conductance
// Break parabolic curve down into two linear slopes:
if (fsrR1 <= 600)
force1 = (fsrG1 - 0.00075) / 0.0000000168;
//force1 = (fsrG1 - 0.00075) / 0.00000032639;

DOI: 10.4236/wjet.2018.62026 434 World Journal of Engineering and Technology


T. Hyman, [Link]

//force1 = (fsrG1 - 0.00075) / 0.00000032639;


else
force1 = fsrG1 / 0.0000000328;
//force1 = fsrG1 / 0.000000642857;
// [Link]("Force: " + String(force) + " g");
// [Link]();
//delay(500);
}
else
{
// No pressure detected
}

//////PS2
if (fsrADC2 != 0) // If the analog reading is non-zero
{
float fsrV2 = fsrADC2 * VCC / 1023.0;
// Use voltage and static resistor value to
// calculate FSR resistance:
float fsrR2 = R_DIV * (VCC / fsrV2 - 1.0);
// [Link]("Resistance: " + String(fsrR) + " ohms");
// Guesstimate force based on slopes in figure 3 of
// FSR datasheet:
float fsrG2 = 1.0 / fsrR2; // Calculate conductance
// Break parabolic curve down into two linear slopes:
if (fsrR2 <= 600)
force2 = (fsrG2 - 0.00075) / 0.0000000168;
//force2 = (fsrG2 - 0.00075) / 0.00000032639;
//force2 = (fsrG2 - 0.00075) / 0.00000032639;
else
force2 = fsrG2 / 0.0000000328;
//force2 = fsrG2 / 0.00000075;
//force2 = fsrG2 / 0.000000642857;
// [Link]("Force: " + String(force) + " g");
// [Link]();
//delay(500);
}
else
{
// No pressure detected
}

//////PS3

DOI: 10.4236/wjet.2018.62026 435 World Journal of Engineering and Technology


T. Hyman, [Link]

if (fsrADC3 != 0) // If the analog reading is non-zero


{
float fsrV3 = fsrADC3 * VCC / 1023.0;
// Use voltage and static resistor value to
// calculate FSR resistance:
float fsrR3 = R_DIV * (VCC / fsrV3 - 1.0);
// [Link]("Resistance: " + String(fsrR) + " ohms");
// Guesstimate force based on slopes in figure 3 of
// FSR datasheet:
float fsrG3 = 1.0 / fsrR3; // Calculate conductance
// Break parabolic curve down into two linear slopes:
if (fsrR3 <= 600)
force3 = (fsrG3 - 0.00075) / 0.0000000168;
//force3 = (fsrG3 - 0.00075) / 0.00000032639;
//force3 = (fsrG3 - 0.00075) / 0.00000032639;
else
force3 = fsrG3 / 0.0000000328;
//force3 = fsrG3 / 0.00000075;
//force3 = fsrG3 / 0.000000642857;
// [Link]("Force: " + String(force) + " g");
// [Link]();
//delay(500);
}
else
{
// No pressure detected
}

//////PS4
if (fsrADC4 != 0) // If the analog reading is non-zero
{
float fsrV4 = fsrADC4 * VCC / 1023.0;
// Use voltage and static resistor value to
// calculate FSR resistance:
float fsrR4 = R_DIV * (VCC / fsrV4 - 1.0);
// [Link]("Resistance: " + String(fsrR) + " ohms");
// Guesstimate force based on slopes in figure 3 of
// FSR datasheet:
float fsrG4 = 1.0 / fsrR4; // Calculate conductance
// Break parabolic curve down into two linear slopes:
if (fsrR4 <= 600)
force4 = (fsrG4 - 0.00075) / 0.0000000168;
//force3 = (fsrG3 - 0.00075) / 0.00000032639;

DOI: 10.4236/wjet.2018.62026 436 World Journal of Engineering and Technology


T. Hyman, [Link]

//force3 = (fsrG3 - 0.00075) / 0.00000032639;


else
force4 = fsrG4 / 0.0000000328;
//force3 = fsrG3 / 0.00000075;
//force3 = fsrG3 / 0.000000642857;
// [Link]("Force: " + String(force) + " g");
// [Link]();
//delay(500);
}
else
{
// No pressure detected
}

dataArray[0] = force;
dataArray[1] = force1;
dataArray[2] = force2;
dataArray[3] = force3;
dataArray[4] = force4;

for (int j = 0; j < 5; j = j + 1) {


[Link](dataArray[j]);
}

// [Link]( (String) "DATA," + i++ + "," + millis()/1000 + ", "+


force + ", " + force1 + ", " + force2 + ", " + force3 + ", " + force4 + "," + Proximity
+ ", AUTOSCROLL_20" );
// [Link]( (String) "DATA," + i++ + "," + millis()/1000 + ", "+
force + ", " + force1 + ", " + force2 + ", " + force3 + ", " + force4 + ",
AUTOSCROLL_20");
//[Link]( (String) force + " " + force1 + " " + force2 + " " + force3 + " "
+ force4);

// [Link]("SENSORVALUE,");
//// [Link](i++);
//// [Link](",");
//// [Link](millis());
//// [Link](",");
// [Link](force);
// [Link](",");
// [Link]("SCROLLDATA_20");
// clear some cells in Excel (rectangle range from B10 to D20)

DOI: 10.4236/wjet.2018.62026 437 World Journal of Engineering and Technology


T. Hyman, [Link]

// if(i==100)
// [Link]("ClearRange,B,10,D,20");
//
// // do a simple beep in Excel on PC
// if(i==150)
// [Link]("BEEP");

// read a value (in this case integer) from Excel (from a sheet by name)
// if(i==200)
// {
// [Link]("CELL,GET,FROMSHEET,Simple Data,E,4"); // ==>
request value from sheet
// // [Link]("CELL,GET,E4"); ==> short version to read from ac-
tive sheet in Excel
// int readvalue = [Link](10).toInt(); // get response.
Note: the '10' is important! Always use but never change ;-)
// [Link]( (String) "Value of cell E4 is: " + readvalue); // result dis-
played in Excel DirectDebugWindow to double check
// }

// check value of custombox1 on PLX DAQ in Excel and if


// checkbox is checked then send the command to pause logging
/* if(i==sampleSize)
{
[Link]("CUSTOMBOX1,GET");
int stoplogging = [Link](10).toInt();
// this information can be seen in the direct debug window on PLX
DAQ in Excel
[Link]( (String) "Value of stoplogging/checkbox is: " + stoplog-
ging);
if(stoplogging)
[Link]("PAUSELOGGING");
}
*/
// get a true random number from the computer
// if(i==300)
// {
// [Link]("GETRANDOM,-4321,12345"); // between -4321 to
12345
// int rndseed = [Link](10).toInt();
// [Link]( (String) "Got random value '" + rndseed + "' from Ex-
cel" );
// // Note: this information is not posted to the Excel sheet because

DOI: 10.4236/wjet.2018.62026 438 World Journal of Engineering and Technology


T. Hyman, [Link]

"DATA" is missing
// // instead this information can be seen in the direct debug window
// }

// and now resume logging


// if(i==350)
// {
// [Link]("CUSTOMBOX2,GET");
// int resumelogging = [Link](10).toInt();
// if(resumelogging)
// [Link]("RESUMELOGGING");
// }

// post to specific cells on default sheet as well as named sheet


// if(i==400)
// {
// [Link]("CELL,SET,G10,400 test 1 string"); // default sheet active
in PLX DAQ Excel
// [Link]("CELL,SET,ONSHEET,Simple Data,G,11,400 test 2
string"); // named sheet available in PLX DAQ Excel
// }

// and for forced quit of Excel with saving the file first
// if(i==450)
// {
// [Link]("CUSTOMBOX3,GET");
// if([Link](10).toInt()) {
// [Link]("SAVEWORKBOOKAS,450-Lines-File");
// [Link]("FORCEEXCELQUIT");
// }
// else
// [Link]("No forced Excel quit requested!");
// }
}

Appendix C: Matlab Code


clc
clear all

%this code reads in values from a specified excel data sheet containing
%code for A401 Pressure Sensors and displays the pressure data for each
%sensor as a function of time (1/5 of a second—there are five data points
%for each second).

DOI: 10.4236/wjet.2018.62026 439 World Journal of Engineering and Technology


T. Hyman, [Link]

%define variables for reading in values

datafilename = 'example_data.xlsx';
sensor0data = 'B1:B37';
sensor1data = 'C1:C37';
sensor2data = 'D1:D37';
sensor3data = 'E1:E37';
sensor4data = 'F1:F37';
seconds = 'J1:J37';
sheet1 = 1;

%/ read in the values from xls files

readseatsensor0 = xlsread(datafilename, sheet1, sensor0data);


readseatsensor1 = xlsread(datafilename, sheet1, sensor1data);
readseatsensor2 = xlsread(datafilename, sheet1, sensor2data);
readseatsensor3 = xlsread(datafilename, sheet1, sensor3data);
readseatsensor4 = xlsread(datafilename, sheet1, sensor4data);
readtime = xlsread(datafilename, sheet1, seconds);

%plot seat sensor data as a function of time. 'hold on' command allows
%multiple plots to be shown on the same figure.

figure

plot(readtime, readseatsensor0);
hold on
plot(readtime, readseatsensor1);
hold on
plot(readtime, readseatsensor2);
hold on
plot(readtime, readseatsensor3);
hold on
plot(readtime, readseatsensor4);

legend('Right Rear Sensor', 'Left Rear Sensor', 'Right Front Sensor', 'Left Front
Sensor', 'Back Sensor')
xlabel('seconds');
ylabel('force in gs');
hold off

DOI: 10.4236/wjet.2018.62026 440 World Journal of Engineering and Technology

You might also like