Vous êtes sur la page 1sur 66

Shell Eco-Marathon Competition

Submitted to:
Mr. Darek Bruzgo
1500 Illinois Street
Golden, CO 80401

ATTN: Richard Passamaneck

Submitted by:
Team CSMPG
Division of Engineering
Colorado School of Mines
Golden, Colorado 80401

CSM Engineering Senior Design Program:


Final Design Report

Team Members:
Alexander Timberlake, Team Leader (atimberl@mines.edu)
Asher Clinger (aclinger@mines.edu)
Brian Smith (bsmith0@mines.edu)
Chester Gemaehlich (cgemaehl@mines.edu)
Jonas Cafferty (jcaffert@mines.edu)
Lee Mortimer (lmortime@mines.edu)
William Sekulic (wsekulic@mines.edu)
Faculty Adviser: Darek Bruzgo (dbruzgo@mines.edu)
Technical Consultant: Jason Porter (jporter@mines.edu) -

April 30, 2013

Acknowledgments
Team CSMPG would like to thank our client, Richard Passamaneck, for
presenting us with the opportunity of working on the Shell Eco-Marathon Competition
car. In addition to the opportunity, we would like to thank Dr. Passamaneck for the
engineering insight he has given us regarding the project.
We give thanks to our technical consultant, Jason Porter, and all the professors
who agreed to be interviewed. Their technical expertise has proven to be very valuable
for our project. We appreciate the time they have taken out of their busy schedules to
assist our team.
Lastly, we would like to thank our Faculty Advisor, Darek Bruzgo, for the
guidance he has given us regarding our project. His assistance has been very beneficial to
our team.

Table of Contents
List of Figures ................................................................................................................................. 3
List of Tables .................................................................................................................................. 4
Executive Summary ........................................................................................................................ 5
1. Introduction ............................................................................................................................. 7
2. Design Methodologies ............................................................................................................. 8
3. Body, Frame, and Material ...................................................................................................... 9
4. Steering .................................................................................................................................. 13
5. Wheels and Hubs ................................................................................................................... 14
6. Wheel, Steering and Body Integration .................................................................................. 17
7. Electrical System ................................................................................................................... 19
8. Engine .................................................................................................................................... 24
9. Conclusion ............................................................................................................................. 25
10. Patents and References .......................................................................................................... 27
Appendix A ................................................................................................................................... 29
Appendix B: Electrical ................................................................................................................. 44
1. Schematics...................................................................................................................... 44
2. Arduino Code for Automatic Start and Throttle System................................................ 47
3. Procedure for Operation Auto Start/Throttle System ..................................................... 61
4. LCD Display Code ......................................................................................................... 61
Appendix C: Mechanical Design .................................................................................................. 62
Appendix D: Steering ................................................................................................................... 65
List of Figures
Figure 1: Mind Map ...................................................................................................................... 30
Figure 2: Black Box Model........................................................................................................... 30
Figure 3: Function Structure ......................................................................................................... 31
Figure 4: BOM Exploded View Callouts - Steering ..................................................................... 31
Figure 5: BOM Exploded View Callouts - Car ............................................................................ 32
Figure 6: Quality Function Deployment ....................................................................................... 33
Figure 7: Force/Energy Analysis Calculation ............................................................................... 33
Figure 8: Starter Circuit - Old Car ................................................................................................ 34
Figure 9: Throttle Circuit - Old Car .............................................................................................. 34
Figure 10: Work Breakdown Structure ......................................................................................... 35
Figure 11: Full Project Gantt Chart .............................................................................................. 43
Figure 12 Car Electrical Schematic ............................................................................................. 44
Figure 13 Arduino Auto Starting and Throttle Control System .................................................. 45
Figure 14 RPM Sense Circuit ...................................................................................................... 46
Figure 15 Arduino Code Flow Diagram ....................................................................................... 47
Figure 16: Carbon Fiber Shell....................................................................................................... 62
Figure 17: Carbon Fiber Shell Cutaway View .............................................................................. 62
Figure 18: Carbon Fiber Shell with Design Intent ........................................................................ 63
3

Figure 19: Front Structure Initial Design ...................................................................................... 63


Figure 20: Front Structure Intermediate Design ........................................................................... 64
Figure 21: Front Structure Final Design ....................................................................................... 64
Figure 22: Final Design SolidWorks Simulation .......................................................................... 65
Figure 23: Correct Ackermann Steering Principle........................................................................ 65
Figure 24: Rack and Pinion........................................................................................................... 66

List of Tables
Table 1: Total Budget ................................................................................................................... 29
Table 2: Morphological Matrix ..................................................................................................... 29
Table 3: Bill of Material ............................................................................................................... 32
Table 4:Tensile Testing (Round 1) ............................................................................................... 36
Table 5: Tensile Testing (Round 1) Results ................................................................................. 36
Table 6: Tensile Testing (Round 2) .............................................................................................. 37
Table 7: Tensile Testing (Round 2) Results ................................................................................. 37
Table 8: Steering Purchases .......................................................................................................... 38
Table 9: Wheel Purchases ............................................................................................................. 39
Table 10: Body Purchases Part 1 .................................................................................................. 40
Table 11: Body Purchases Part 2 .................................................................................................. 41
Table 12: Electrical Purchases ...................................................................................................... 42
Table 13: Turn Radius Design Calculation ................................................................................... 66

Shell Eco-Marathon Competition


Prepared by: Alexander Timberlake, Asher Clinger, Brian Smith, Chester Gemaehlich,
Jonas Cafferty, Lee Mortimer, William Sekulic
Team CSMPG
Division of Engineering
Colorado School of Mines
Executive Summary
The objective of the Shell Eco-Marathon Competition is to create a car that maximizes fuel economy.
In previous years, Colorado School of Mines teams have achieved reasonable results using off the
shelf components and hardware. The 2013 competition team placed in the top 10 with an average
fuel economy of about 966 mpg. Building a new competition car from the ground up will give Mines
students the opportunity to experiment with novel concepts in fabrication, materials selection and
engine control systems. The processes used to create concept variants for a new design involved
reverse engineering the old car as well as using several design methodologies covered in EGGN 491.
The reverse engineering portion of the class opened up the teams minds to possible solutions for
creating a car. It showed the team what has worked and what hasnt worked in the past. The design
methodologies utilized were the quality function deployment, morphological matrix, function
structure, brainstorming, and force/energy analysis. These design methodologies helped develop
ideas that could be improved upon as well as uncover the major challenges that will be presented to
the team during the design process. Based on the design methodology, designs for the four distinct
subsections of the car were developed. The body and frame structure was built as a unibody framed
system. Materials were tested in order to make an informed decision as to the proper layup, structural
support and necessary rigidity. Wheels and steering have been designed around a similar sub
structure as the previous CSM competition cars. The main differences in the new design will come in
form of lubricants, more efficient wheels and minor tweaks to the sub-frame alignment to reduce
overall rolling resistance. The electrical system was redesigned from the ground up. Wiring
assemblies, engine controller interface and driver interface were designed in order to reduce driver
variability and improve the safety of the car. The engine being used in the old car was found to be
excessive in size and horsepower. In order to squeeze the most efficiency out of the new design,
software tools were setup in order to determine the required power necessary to move the car and
driver around the course at a 15 mph average speed. When chosen, the new engine should be smaller
and more efficient to operate. The teams end goal was to design a new car to achieve 1500 miles per
gallon. We planned on achieving this by making the car lighter and more aerodynamic, having an
improved electrical system, correctly sizing the engine, upgrading the transmission, and tuning the
steering. The car was made lighter by making a unibody shell design out of carbon fiber that requires
little to no internal framework. The team designed a new body in SolidWorks and used the flow
simulation software to reduce the coefficient of drag of the design. Installing a throttle controller for
the acceleration of the vehicle is an example of an improvement to the electrical system. Controlling
the acceleration electronically is beneficial because it removes the driver induced variations that
lower gas mileage. Through calculations it was determined that the current 50 cc engine is too large
for the car and it would be beneficial to switch to a smaller engine. Upgrading to a three speed rear
hub is another example of an improvement made to the vehicle. This will allow for lower RPMs at
cruising velocities which will maximize our engine efficiency. Lastly, regarding the steering, the
caster, camber, toe, and Ackerman angle can all be tuned to help the performance of the car. In this
report, we will discuss the concept variants that have been developed for each subsystem of the car,
the process of developing the detailed design for each subsystem, and the process of constructing
several subsystems.
5

Shell Eco-Marathon Competition


Prepared by: Alexander Timberlake, Asher Clinger, Brian Smith, Chester Gemaehlich,
Jonas Cafferty, Lee Mortimer, William Sekulic
Team CSMPG
Division of Engineering
Colorado School of Mines
1. Introduction
The steps that have been followed to develop a new design for the 2014 Shell Eco-Marathon
Competition are the following: identify customer needs for each subsystem of the car, develop
concept variants for each subsystem, choose the best concept variant based on engineering
analysis, create a detailed design for each subsystem, and finally begin construction of the car.
Customer needs were determined through interviews with lead users and other stakeholders,
namely previous years competition team members and experts in different fields of design.
Based on seven interviews, several latent and constant needs became apparent for our project.
These needs included making the frame and body lighter, making the car more aerodynamic,
improving the alignment, improving the electrical system, resizing the engine, and increasing the
drivetrain efficiency. All of the customer needs from the interviews were used to create a Mind
Map with three main categories of focus and minor points corresponding to each of the
categories.
The first point is vehicle weight. The current Mines Shell Eco-Marathon car has a weight of
approximately 120 pounds, but there are several cars at the competition which carry a weight of
less than 100 pounds. Based on this fact, one of our goals has been to redesign the frame and the
shell such that our car also weighs less than 100 pounds. We have set a delighted goal of 85
pounds meaning we dont necessarily expect to achieve this result, but we would be delighted if
that is the end result.
Secondly, from the interviews we conducted, we determined that there were several components
and imperfections that could use major improvements. The aerodynamic shape of the car was
identified as an area of concern. One noticeable issue with the current Mines car is the lip
between the windshield and the body; the windshield overlaps the body causing a discontinuity
in the airflow resulting in eddies and turbulence. During the interview with Dr. Sullivan, he
explained that this lip could be a significant percentage of the total drag [1]. A proposed solution
was to create notches in the body so the windshield sits flush with the surface and has a smooth
transition to the rear of the vehicle. Another area of concern regarding the aerodynamics was the
bottom of the car and its non-rounded design. During the interview with Dr. Passamaneck, he
pointed out that the shear drag from the bottom of the car would be large. The large drag is due
to the flat shape and close proximity to the ground [2]. A suggested fix was proposed to slightly
round the bottom of the new body design. In addition to this, lifting the car slightly higher off the
ground would reduce this viscous shear on the bottom of the car. The lift would compromise the
cars stability slightly, but that was accounted for with other design choices. Finally, the wheels
and axle provide a significant percentage of drag due to their blunt cross section. There were two
7

recommended solutions: design a body where the wheels will fit inside the shell or install
aerodynamic covers that deflect the air around the wheels & axle.
Third, from interviews with the old team members, it was determined that the electrical system
was in need of an upgrade and reorganizing. The old team members pointed out that a major
improvement to the gas mileage of the car could be achieved through proper tuning of the
electrical system. They also suggested the improvement of upgrading to MegaSquirt III from
MegaSquirt II. Also, driver induced variations in the acceleration were identified as consuming
extra gas. A useful electrical system that could be implemented is a throttle control that could
automatically manage the acceleration of the car.
Lastly, Dr. Passamaneck emphasized the importance of tuning the alignment of the car [2]. The
variables to consider are the camber, caster, toe, and Ackerman angle. The camber and toe need
to be zero degrees due to the fact that this causes the least drag. Even though there are stability
and control benefits from adjusting these two variables, they will negatively impact the rolling
friction. Ultimately the team is more concerned with reduced friction rather than improved
stability or control. The caster should be about one to two degrees with the steering pivot point in
front of the contact point, as this makes the car more stable. The last variable is the Ackerman
angle; this is the angle between the front axle and the pitman arms when they are in the neutral
position. The basic rule of thumb is that the pitman arms should point straight at the center of the
rear axle.
2. Design Methodologies
Team CSMPG conducted several design methodologies during the post-disassembly analysis of
the old Shell Eco-Marathon competition car in order to develop concept variants. These design
methodologies included creating an exploded view, bill of materials (BOM), quality function
deployment (QFD) matrix, morphological matrix, function structure, force diagram, and
performing a subtract and operate procedure. Out of these methodologies the ones that had the
most insight were developing the function structure, QFD, force diagram, and morphological
matrix.
To start, the final function structure follows the inputs of information, energy, and mass through
the system. The informational input deals with steering the car. While the driver is driving the
car he/she is taking in visual, auditory, and tactile information. Some examples of the types of
information are: the driver can see where the car is going and if the car is on course, the driver
can hear the engine as the car accelerates, and the driver can feel the steering wheel turn with the
road. These sensory inputs are used to make decisions on whether or not to accelerate/decelerate
or turn the car. To perform either of these actions requires a human interface. This is where the
mass input comes into effect. The driver uses their hand to turn the steering wheel or apply the
throttle/brakes. This is human energy being transferred into mechanical energy. This mechanical
energy is then transferred to the wheels where it is converted into rotational energy. This
rotational energy is then transferred to the ground where it is converted into translational energy
and thermal energy caused by friction. The translational energy causes the car to change
direction or accelerate. Thus, the outputs of the functional model are direction, acceleration,
translational energy, thermal energy, and the drivers hand. By creating the function structure,

energy flows were much easier to identify. Eventually this helped the team members develop
better concept variants for the subsystems of the car.
The QFD helped solidify the stakeholders needs and organize them based on priority. It also
helped explore the different ways to meet these needs and the obstacles that will need to be
overcome. For example, the QFD helped identify the engineering metrics that have a positive
and negative correlation for the vehicles performance. A few metrics that have a negative
correlation are reducing the weight of the car by 10kg and all of the strength requirements of the
car. It will be a challenge to maintain the strength of the car while also reducing the material.
Depending on the design, the more material used in the frame and on the body, the stronger those
components will be. The options to overcome these obstacles are laid out in the morphological
matrix.
Lastly, a force diagram was evaluated for the car, based on the analysis; the rolling resistance
constitutes most of the drag applied to car at an average velocity of 15 mph. An EES program
was developed to evaluate the forces affecting the cars overall fuel efficiency. From these
results, aerodynamic drag accounts for 28% and rolling resistance accounts for 72% of the
influence on fuel efficiency at the average velocity.
3. Body, Frame, and Material

During the reverse engineering portion of this project customer needs were gathered from
research and interviews with knowledgeable professors. As previously mentioned, it was
determined there were two main needs that pertained to the body and frame of the car. These
needs were to make the car lighter and more aerodynamic while still maintaining the strength of
the design [3]. There are many options to achieve these needs such as changing the design or
material of the body and frame. The concept variants were determined through many
brainstorming sessions. Some tools that were used in these sessions were creating a mind map
and playing Brainball.
From the brainstorming sessions, it was determined there are two primary directions that could
be taken for design of the body. The first option is to use the current concept of a structural frame
with an outer shell. The second option is a unibody car that has its structural supports built into
the shell. There are pros and cons for each design; for example, a unibody car will have better
aerodynamics because it will get rid of the lips created by interfacing a frame and shell. In
addition to removing lips, it is possible to design an overall better aerodynamic shape for the
unibody because the structural members are built to fit the shell design [4]. Conversely, with
option one, the body design has to be constrained to fit the frame. If designed properly, a
unibody will also be lighter because it will get rid of the weight of the frame. However, a
unibody design requires more engineering, longer time to construct, and is challenging to build.
An advantage of option one is that it has been done by previous teams. This would provide a
foundation for a new design, again, making option one an easier route. Option one is clearly
simpler but it has certain limitations that go with the design.

Through much brainstorming and the use of a decision matrix, the team decided a unibody
design would be the best alternative. The primary reasons for this are the team believes a
unibody design is more advanced and has a higher potential for performance. If engineered
correctly, a unibody will be lighter, more aerodynamic, and have greater strength due to the
structure being implemented directly into the body.
A decision that was made in parallel with choosing a unibody was what material to make the car
out of. Since a unibody was chosen, the practical materials to choose from were carbon fiber and
fiberglass. It was not immediately clear which option was best because they are similar in nature.
Carbon fiber has a greater strength to weight ratio, but it is more expensive. To make an
informed engineering decision, our team performed tensile tests on many different samples of
carbon fiber, fiberglass, and combinations of the two. Results from the testing can be seen in
Tables 4 through 7. From this testing and analysis of our budget, we decided carbon fiber was
the better option. We had more than enough money to purchase all the carbon fiber we needed
and the results from the tension testing conclusively proved carbon fiber was superior in
strength. We also determined the number of layers of carbon fiber we should use for the car
through the results of our testing. We determined that six or more layers should be used in areas
of high stress and four to six layers should be used in areas of low stress.
Before we could begin the design of the car, there were a few other decisions that needed to be
made that affected the geometry of the shell. These decisions were: three wheels or four wheels,
wheels inside or outside the body, engine in front or behind rear tire, and front or rear wheel
steering.
The first of these decisions that needed to be made was whether to have a three wheel design or
a four wheel design. The three wheel design won by a landslide in our decision matrix. A three
wheel design would weigh less, be simpler to design, cost less, give the car better aerodynamics,
and be easier to build. There is basically no reason to have four wheels for this competition, as
history shows that virtually all of the top performing cars are three wheel designs.
The next decision to be made was whether to have the wheels on the inside or outside of the car.
This decision was not as easy as some of the others because there were uncertainties in the
criteria. For example, it was not clear which decision would actually result in a better
aerodynamic shape. Having the wheels on the inside of the car would reduce the viscous drag
from the wheels and axle, though having a larger frontal area for covered wheels would increase
overall drag. To determine which design would be best, the team performed SolidWorks Flow
Simulations on several different designs. From the results, it was evident that having a smaller
frontal area was more important to aerodynamics than having the wheels on the inside of the
body. Some other benefits of having the wheels on the outside of the body are greater stability
(from a wider wheel track) and less weight (from a smaller body). Thus, the team decided to go
with the wheels on the outside of the body.
Next, we had to decide whether to have front wheel or rear wheel steering. The primary criteria
for this decision were the stability, the rules, and ease of interfacing the engine. Having front
wheel steering is more stable than rear wheel steering due to weight distribution throughout the
car, especially during a turn. The rules make it difficult to incorporate rear wheel steering. Also,
10

if you have rear wheel steering it makes it harder to interface the engine. Thus, the teams
decision was front wheel steering.
Once the team decided on front wheel steering, the next decision was where to place the engine
in the car (in front of or behind the rear tire). One benefit of having the engine in front of the rear
tire is it helps shift more weight to the front tires. Since we have front wheel steering, this is
beneficial. However, having the engine behind the rear wheel greatly reduces our wheelbase
which improves the turning radius of the car. Also, if the engine is in the back, the exhaust can
be released into the pressure void behind the car which improves the aerodynamics. After
performing the decision matrix, it was determined that having the engine behind the rear tire
would be most beneficial.
Now that these four decisions were made, it was possible to begin the detailed design of the
shell. The design method of choice was SolidWorks due to its immense computational abilities
and ease of use. To determine dimensions of the car, measurements were made for the foot
space, head room and length required to fit a 5 6 driver. The dimensions were rounded up
slightly to ensure the inside of the design would not be so small that the next team could not find
a suitable driver. Based on these dimensions, three cross sections were made on offset planes
representing the foot space, head area, and back taper of the car. These three cross sections were
connected by four guide curves; one on top, one on bottom, one on the left, and one on the right
of each cross section. Using these guides curves, the three cross sections were lofted together to
give the car a smooth and gradual transition between the three cross sections. Once this major
part of the body was completed, the nose and fin were created using several other SolidWorks
features. The goal of the design was to minimize the drag. Therefore, flow simulations were
performed in SolidWorks to optimize the guide curves. The guide curves could be slightly
adjusted to tweak the shape of the design. Many iterations were made between adjusting these
curves and testing the results in the flow simulations. After about a week of these iterations, the
team came up with the final design for the shell which you can see in the Appendix. The final
design came out being 136 in length and 18 wide by 21 tall at the largest cross section with 9
radius fillet. Also the rear cross section has a height of 8.6 and width of 5.6 while the front
cross section is a 5.5 radius circle with a flattened bottom.
Once the final design was set in stone, the construction of the mold could begin. This process
took several months to complete. Other than being a time consuming process, we experienced
delays in shipping of vital materials. The process begins with making the basic shape of the mold
out of styrofoam. Two of the team members developed a clever method of projecting cross
sections of the design in Solidworks onto flat sheets of styrofoam to accurately cut out the 72
cross sections necessary to build the molds shape. These styrofoam cross sections were then
glued together and smoothed out using a cheese grater. Grating ensured there were smooth
transitions between each individual cross section of foam. Once this basic shape was created, the
next step was to apply bondo on top of the styrofoam to create a smooth outer layer on which we
could apply carbon fiber. Unfortunately, the team learned that when bondo is mixed with its
hardener, an exothermic reaction is created which shrinks the styrofoam. To mitigate this, the
team began to place drywall tape over the styrofoam to create a layer between the foam and the
bondo. Applying the bondo was not a simple task. It took many applications to cover the entire
surface and required many iterations of applying bondo and sanding to get the right shape. Once
11

we reached an acceptable shape, several layers of primer were added on top of the bondo. These
layers of primer were then wet sanded to make the outer surface silky smooth. We needed the
outer surface of the mold to be as smooth as possible because if there were any imperfections,
resin would get trapped and make it difficult to pull the carbon fiber off the mold.
After many Tuesday and Thursday mornings of alerting the senior design lab to our presence
with the deafening noise of power sanders and the pungent smell of bondo, we were finally ready
to construct the shell. This process does not take nearly as long as making the mold. In fact, it
had to be done all at once over the course of a few hours. Despite being a much faster process,
the difficulty is substantially greater. One mistake from laying up the carbon fiber could cost the
entire semester of work. Realizing this, we did a practice run before doing the final lay up.
For the practice run the team laid carbon fiber on the top half of the mold to get an idea of what
to expect. Just doing the top allowed us to pull off the carbon fiber without damaging the mold.
The basic process involved first applying wax and PVA to the entire mold. These two both help
the carbon fiber from sticking to the mold so that we can pull the shell off the mold after it has
hardened. Next, we applied one base layer of resin over the car and begin laying carbon fiber
pieces over the car. After each layer of carbon fiber, we applied more resin and use flat paddles
to squeegee the resin into the carbon fiber.
The resin is an epoxy based resin that we mixed with a hardener before applying. To ensure a
constant ratio of resin to hardener, we had the same person do all the mixing and pouring of the
resin. Before starting this process, we precut different pieces of carbon fiber, ranging in size from
about 2 x 4 to 2 x 11. This was required as we needed to lay up the carbon fiber quickly or
else the resin would harden prematurely and prevent the different layers from bonding together.
From our test run, we determined we should have pieces that go lengthwise down the car, pieces
at a 45 degree angle, and pieces at a 90 degree angle to the lengthwise pieces.
The primary difference between the test run and the actual lay up was the final lay up required
wrapping the carbon fiber pieces completely around the mold. Thus, we needed a system to
suspend the car in the air. The solution was to use adjustable straps to hold the mold in the air.
We attached these straps to the I-beam in the ceiling in the senior design lab. This added a
significant degree of difficulty to the process because every time we needed to apply another
layer in the area of one of the straps we had to remove it and reattach it somewhere else. Thus,
for each layer of carbon fiber this had to be done three times while squeegeeing resin into the
shell. The straps presented another problem besides just creating an awkward working
environment. They put pressure points on the carbon fiber and caused the layers to move and
fold. This unexpected circumstance made it even more difficult for the pieces to lie flat and
without wrinkles. Needless to say, there were many areas during the lay-up process which could
have proven to be disastrous. The team was prepared and efficient in their work so luckily any
major setbacks or problems were avoided.
The final lay-up has three layers of lengthwise pieces, four layers of alternating 45 degree pieces,
and two layers of 90 degree pieces. From the tensile testing it was determined we needed a
minimum of six layers; however, we decided a few extra layers would be beneficial with regards
to strength and safety of the shells integrity. After all the layers of carbon fiber were squeegeed
12

full of resin, the next step was to cover the entire car in peel-ply and place it in the vacuum bag.
To add more resin on top of the car we also inserted a green mesh sheet. The mesh stores resin in
the weave, so we poured a very generous amount on the car at the end. Once this was done, the
final step was to connect the vacuum bag to the vacuum pump and pump out all the air and
excess resin. Once the carbon fiber and resin had hardened, we cut out three sections from the
shell. There was one cut-out for the engine placement, one for the windshield, and one more for
the driver to enter the car. The entirety of the foam and bondo mold was removed from the
interior through these three sections.
The completed shell weighs 56 pounds and is very strong; it can easily support the weight of an
average sized human and it withstood being hit by a sledgehammer many times (we hit the
outside of the shell many times to loosen the mold from the carbon fiber). Since the shell came
out so strong, it was determined that we will not need to add any additional carbon fiber support
structures. The only thing left to do with regards to the body is fit a windshield to the shell and
make minor changes to the shell to interface the other subsystems into it. This will be left for the
next team to complete.
4. Steering
One of the main decisions made at the nascent of the project was whether to use front or rear
wheel steering. There were clear advantages and disadvantages for each option. Front wheel
steering is widely in use in automobiles and other vehicles. Since most existing automobiles use
front wheel steering, there is a plethora of good information that already exists. It would also be
easier and more affordable to get parts if we went with front wheel steering. An advantage of
using rear wheel steering is that it would allow a lower cross sectional area in the front of the car
to allow it to be more aerodynamic [4]. From group discussions, we determined that it would be
difficult to make one end of the vehicle responsible for both steering and the drivetrain
connection. One of the main reasons we found this to be a challenging configuration is that the
wheel(s) would be introduced to torque-steering, causing unpredictable feedback for the driver.
An easy way we avoided this interference was by making the front wheels become the mode for
our steering and the rear wheel to transfer the power from the engine.
An important concept we considered and future teams will have to take into account is the
Ackermann steering principle. This principle is the relationship between the front wheels and
how they relate to each other during a turn. While in the middle of a turn, the front inside wheel
will be traveling at a smaller circle and a greater angle than the outside wheel [6]. With our goal
to achieve the most efficient vehicle, we designed to achieve the correct relationships and
geometry of the wheel alignment. If there is an incorrect alignment, then the vehicle would be
compromising fuel economy and could have other problems arise. Camber, caster, and toe were
also alignment criteria we considered when designing. Optimizing these three values leads to
minimal friction between the tires and the road.
Through brainstorming and research we discovered several ways that we can incorporate steering
into our car. They included: lever-arm actuated steering, rack and pinion, and electrical steering.
The lever arm steering was the most basic design, and there are several different types that could
have been incorporated into a car [7]. This type of steering can be seen on equipment from
13

companies such as Toro, Walker, Bob Cat, and John Deere. Some of these applications are
controlled by hydraulics, brake, clutch or lever mechanisms and allow the vehicles to turn in a
very small radius. We could have taken the basic principle and used connecting rods to interface
the wheels and steering apparatus. With the Shell Eco-Marathon Rules, we were restricted to
using a steering wheel type of device where both hands are able to obtain full control of the
vehicle at all times. One advantage of this is that is it a fairly inexpensive method to apply to our
vehicle. One of the disadvantages of this steering is that it will have metal rods and more pivot
points, which could cause the car to weigh more and become less aerodynamic due to a large
frontal area.
Another steering method we considered was using a rack and pinion. This is widely used in
almost all automobiles today. After conducting research on the topic, we found a few external
rack and pinions in which there was a two gear connection that was exposed to the outside. One
gear is a round gear connection from the steering device, and the other is a flat gear that connects
to the wheels and turns them to the desired direction. While this device is compact and has few
components, it still has external moving parts that pose a potential for other problems. With a
more modern rack and pinion, everything is housed internally except for the tie rod end
connections. The advantages with this type of system include: reduced moving parts, fewer
connections and a very adaptable platform that will allow us to incorporate the Ackermann
Steering Principle.
The final option we looked into was an electronic steering system. This method is allowed in the
competition, but the rules emphasize to ensure the safety of the driver. This means a backup
mechanism would have been required in the case of a failure in the system. Overall this system
had some great advantages. One of these was that it would allow us to place the steering device
at almost any location. Another would have been the small footprint in the cockpit of the vehicle,
as the components involved in an electronic steering system are typically spread throughout a
car. There were also some disadvantages that came about from the systems need for electric
power. This would have added weight to the vehicle through the requirement of a larger battery.
A bigger battery would be needed to ensure the system had sufficient power to operate for the
duration of the competition. It would have also made the steering components more complex and
required more effort to ensure it followed all of the rules set forth by Shell.
Based upon several design criteria, the team decided to select a rack and pinion steering method.
This decision came down to a desire to keep the steering simple and remain well within all rules
specified by Shell. The rack and pinion method poses the least risk to the driver. It also is very
widely used, so finding spare or replacements parts would be rather easy. We were able to order
parts for the rack and pinion, but we ran into a familiar problem of not receiving the parts in time
to complete the project. The components were ordered about 2 months prior to the date of Trade
Fair, but they failed to reach our hands in time. Upon completion of this report, we have still not
yet received the needed parts.
5. Wheels and Hubs
When considering ideas for the wheels and hubs of a new car design, the rules presented by Shell
for the competition allow for freedom of choice for both matters. The wheel size and tire type is
14

not restricted, but, in accordance to Article 41 of the 2013 Shell Eco-Marathon Rules, The
wheel axles must be designed for cantilever loads (like in wheel chairs) rather than for load
distributed equally on both sides (like in bicycles). This note by the race organizers promotes
the engineering of a more complex hub and axle system, for which many concepts have been
brought about in our brainstorming process.
When conceptualizing different designs for the CSMPG vehicle, the wheels, hubs, hub/axle
mounts, and braking methods were all considered as a subsystem due to the dependence on each
other for their integration into the car body/frame subsystem, as well as the steering subsystem.
The main design concepts that were approached for this subsystem were wheel size, wheel and
hub strength parameters and requirements, hub/axle mounting mechanism, hub/axle mount
integration, rear hub capabilities, and brake design compliance with the foregoing parts of this
subsystem.
The design constraints for the wheels and hubs of the car were to be determined by the overall
design of the body and drivetrain, as front or rear steering and weight distribution for the car play
a large role in determining wheel size and strength, and, therefore hub mounting configurations.
For example, a stronger wheel construction will be required for a heavier weight distribution on a
single wheel, and a lighter wheel construction will be allowed for a lower weight distribution
between two wheels. Hub choice is also dependent on the hub/axle mount configurations that
will be determined by the overall vehicle layout and steering. Once the body and frame
subsystem ideas have been determined for the vehicle, the following concepts presented for the
wheels, hubs, and brakes can be used for determining the best configuration.
The ideas we have presented for the overall layout of the vehicle include three or four wheeled
configurations. Some advantages of a three-wheeled design would be lower rolling resistance,
fewer components and better aerodynamics as a result of the more compact design. Some
disadvantages would be the high weight concentration on the single wheel and the independent
braking system required for the single wheel. A four-wheeled design would provide design
benefits due to symmetry, such as more even weight distributions across the four wheels and
front and rear axles compatible with integrated braking. The disadvantages associated with a
four-wheeled design are the increased rolling resistance and addition of more components, which
would increase weight and reduce aerodynamics.
The hub/axle mounting techniques present the greatest challenge for designing the vehicle. Some
ideas surrounding the axle mounting method for a three-wheeled vehicle are, For the two-wheel
end of vehicle: a single axle with one brake for both wheels, a single axle with brakes on each
wheel, independent axle-less hubs for both wheels with brakes for each wheel, and the use of
an A-Arm rigid suspension. For the one-wheel end of vehicle, some design concepts are a
symmetric hub/axle mount in the body/frame and disc or rim brake compatibility. Some ideas
surrounding the axle mounting method for a four-wheeled vehicle are: single axles with one
brake for both wheels, single axles with brakes for both wheels, and independent axle-less
hubs for both wheels with brakes for each wheel. These concepts all present viable concept
variants, but the final selection will be dependent on the vehicle layout and body/frame design.

15

Our team found four different types of hub mounting concepts that would be compatible with an
axle-less hub design. These include: a Cannondale Lefty spindle axle arm, a TerraTrike 20mm
thru-axle hub mount, a Surly trailer stub axle, and a custom 15- or 20mm thru-axle hub mount.
For a single-axle design, a threaded end is the main hub mount concept, as a single-axle would
already have its body/frame integration included through housings with bearings.
The key design influences for these types of hub mounts are steering incorporation, hub selection
and body/frame integration. Axle-less hub mounts would be easier to utilize for our steering
concepts presented above, and a single-axle design would be easier to incorporate into our
body/frame concepts. The axle-less hub mounts would allow for fewer and lighter components to
be used when integrating with the steering components and their design could be optimized for
the connections between the steering components and body/frame.
For the varying wheel strengths required by the different vehicle layouts and hub configurations
presented thus far, wheel size and spoke count are the most important factors that come into
consideration, as well as hub flange width and hub design. The bicycle wheel promotes many
key features that are beneficial to our overall goal: lightweight, aerodynamic, and easily
implementable. While the excerpt from the rules mentioned previously note that bicycle wheels
are not designed to handle substantial lateral forces such as the ones our vehicle will be subjected
to on the race course, certain methods in the wheel building process can be used to provide the
strength required for our purposes. Wheel stiffness is determined mostly from the hub flange
width - or the distance between the edges of the thru-holed plates on each side of a bicycle hub and the size of the rim being laced to. General relations for these two factors are: wider hub
flanges provide greater stiffness because of the lateral tension being created by the spokes that
are laced to the rim, and smaller rims provide greater stiffness because of the increased angle of
the wheel spokes between the hub flange and the vertical plane of an upright wheel- therefore
also increasing the lateral tension created by the spokes. [8] These concepts will be taken into
consideration when determining the types of hubs and size of wheels that will be used for the
final vehicle layout. Spoke count on the wheel is a large determining factor for the overall
strength of the wheel, as in how much weight it can support under radial loading. The spoke
counts will also be determined by the layout of the car, as we will be looking to have the best
balance between wheel weight and wheel strength for the appropriate corners of the vehicle. If a
three-wheeled layout is chosen, a high spoke count and small rim will be required for the onewheel end of the car, as that particular wheel will be introduced to both a heavier weight
distribution and more concentrated lateral forces in turns. If a four-wheeled vehicle is chosen, the
spoke count will be determined by the weight distribution from front-to-back, with the heavier
end requiring a higher spoke count. General wheel building theory is covered more in depth by
The Bicycle Wheel by Jobst Brandt.
Common bicycle freehubs come with hole-counts of 24, 28, 32, 36, 40, 42, and 48, and common
bicycle rims come in sizes of 16-, 20-, 24-, 26-, 27-, 29-inch, 650b (583mm), and 700c (622mm).
Hubs with fewer holes will be lighter, just as rims with smaller diameters will also be lighter.
Compatible hubs for the hub-mount designs presented above are: Cannondale Lefty Hub (24 or
32 hole) for the Cannondale Lefty spindle axle arm, Surly Bill and Ted trailer wheel hub for the
Surly stub axle, or any mountain or road bike 15- or 20-mm thru-axle hub for the TerraTrike
assembly or a custom mount. Hubs can also be determined based on our braking needs; the Surly
16

hubs and some 15mm thru-axle hubs are not disc brake compatible, but the Cannondale Lefty
hub, most 15mm thru-axle, and all 20mm thru-axle hubs are disc brake compatible only. The
Cannondale Lefty hub is a very attractive option because it has already been designed to manage
greater lateral loading than a symmetrical hub.
Another design concept that came about through team discussion was concerning a multi-speed
hub for a three-wheeled vehicle layout with a single powertrain wheel. This would have the
benefit of matching the vehicle engine speed to the actual vehicle speed to improve efficiency,
but an internally-geared hub weighs substantially more than a freewheel hub. [9] The
effectiveness of an internally-geared hub will be determined by the logistics of the race plan
regarding vehicle speed and acceleration, as well as with a cost/benefit analysis for the added
weight in comparison to the added efficiency.
With the consideration of all of the previous design decisions, the team ultimately chose a threewheeled, front wheel steering, rear-wheel drive configuration for the car. This prompted the use
of a stub-axle design for the front wheels, implemented with Cannondale Lefty spindle hub
mounts with Cannondale Lefty 32-hole mountain bike hubs. The spindle hub mounts were
donated by a local bike shop, Pedal Pushers Cyclery, so this in addition to the previous cars
design also utilizing this setup resulted in the decision to move forward using them. The 32-hole
Left hubs were chosen because of their high spoke-count, but they still needed to be paired with
appropriate rims in order to provide the necessary strength for the cornering forces the car would
be subjected to on the course. In order to achieve this wheel strength, 20 Velocity Aeroheat 32hole rims were chosen, with DT Swiss Champion spokes (183mm length for rear spokes, 185mm
length for front spokes) to complete the wheel build. The wheels were assembled by Pedal
Pushers Cyclery. In addition to choosing the Cannondale Lefty setup for the front wheels, the
team opted to use a three-speed hub for the driven wheel. The hub selected was a Shimano
Nexus-3 hub, and was also laced to the 20 Velocity Aeroheat rims.
6. Wheel, Steering and Body Integration
With the wheels, hubs, steering, and body configurations and designs all completed, the team had
to develop a design to integrate all of the subsystems in order to create a rolling chassis. The
carbon fiber shell design resulted in the need for separate structures to mount the front and rear
wheels, as well as the integration for a steering mechanism.
The front structure was of the most concern because of its combination of mounting the front
wheels and including the steering mechanism for the car. In order to design a lightweight
structure, the materials the team considered were aluminum and titanium due to their high
strength-to-weight ratios as compared to steel. Upon researching methods for integrate aluminum
and titanium into a carbon fiber based platform, it was realized the aluminum would not be a
satisfactory choice since it causes Galvanic corrosion when interfaced with carbon fiber. This
could be addressed by anodizing the aluminum with a sulfuric acid, but this solution only lasts
for one to two years. In order to remove the possibility of corrosion and to have the best strengthto-weight ratio possible, the team chose to use titanium for the structure. At the time the design
for the front structure began, the carbon fiber lay-up process had not yet begun, and therefore all
of the designs for the structure were based off of the SolidWorks model for the vehicle mold.
17

This ultimately resulted in the SolidWorks designs of the structure being guidelines for the actual
fabrication process, but they did provide reasonable accuracy for loading simulations.
The design of the front structure was based on a classic A-Arm configuration commonly seen in
cars and other vehicles with independent suspensions. The initial goals for the design were: to
have as little impact on the carbon fiber structure in order to maintain the vehicles rigidity,
include multiple points of contact on the carbon fiber structure in order to provide adequate
connection strength between the shell and the wheels, incorporate an appropriate amount of room
for the driver to fit through the structure, provide an adjustable kingpin alignment, and allow for
a steering mechanism to be installed alongside the structure. The SolidWorks designs were
simplified by removing the requirement of adjustable alignment angles because it was assumed
that separate lower support arms would provide the adjustability required.
The first series of designs were based on mounting the A-Arms to built-up platforms in the car.
This design can be seen in Figure 19 in Appendix C. This design was not used because of the
complicated manner in which it would be mounted to the car, would be difficult to ensure proper
alignment, and would be over-dependent on the structural rigidity of the unproven carbon fiber
structure.
The next series of design were based on connecting the A-Arms for both sides together across
the middle of the car. This design removed any over-dependence on the structural integrity of the
carbon fiber, and would provide a more symmetric result in the fabrication process. This design
can be seen in Appendix C Figure 20. This basic design was chosen for the front structure, but
was simplified again in order to allow to more consolidated loading simulations. The final design
used as the guideline for the fabrication process and final structural simulation can be seen in
Appendix C Figure 21, with the SolidWorks simulation results found in Appendix C Figures 22.
When it came time for the fabrication of the front structure, the final SolidWorks design was
only used as a guideline, and was simplified even further by replacing the separate pieces for the
A-Arms with single pieces of the titanium tubing bent to form the A-Arms. This was done with a
three-die tubing bender, with the shape of the pieces dictated by the actual carbon fiber shell
measurements. The lower support hoops were also made using this method. The downfall to
fabricating the structure this way was that none of the parts were precisely symmetric and that
some of the tighter bends in the tubing resulted in crimping of the titanium. These problems were
unavoidable though, as the shape of the carbon fiber shell was not symmetric and included
tighter bends than what we were able to achieve with the tubing bender.
The lower support arm from the final SolidWorks design was also changed in order to
accommodate for adjustment of the front wheel alignment. Instead of a single piece of tubing
spanning the distance between the two kingpins for the spindle hub mounts, two pieces were
used with a three inch gap between their ends in order to allow for a range of motion for each of
the kingpin angles.
In order to mount the hub spindles and kingpins, larger tubing was cut into short sections and
welded to the ends of both the top A-Arms and the lower support arms. A kingpin tube was cut
to length to fit from the top of the A-Arm ends to the bottom of the lower support arms, with
18

excess room on each end to insert cotter pins. The hub spindle mount, A-Arm connection, lower
support connection and kingpin were all mated with steel bushings to allow for rotation and
efficient steering. Two bushings were press fit into the hub spindle mount and one bushing was
press fit into the top and bottom structure connections. The hub spindle mounts needed their
inner diameters machined in order to allow for the press fit of the bushing. The bushings were
also machined on both the inner and outer diameters in order to fit into the hub spindle mounts,
top and bottom structure connections and kingpin.
All of the bent tubes that comprised the bent tubes of front structure were 0.75 OD x 0.049 WT
Grade 2 titanium. The larger tubing used for the end connections of the structure were 1.5 OD x
0.07 WT Grade 5 titanium. The kingpin tubing was 1 OD x 0.07 WT Grade 5 titanium. The
steel bushings for the top and bottom structure connections were 1-3/8 OD x 1 ID x L and
the steel bushings for the hub spindle mount were 1-1/4 OD x 0.9062 ID x 1-1/2 L.
The tubing structure was welded together using a TIG welder and titanium filler rods. The use of
single tubes for the top A-Arms resulted in fewer total welds than were shown in the final
SolidWorks design. This increased the structures overall strength by limiting the possibility of
weak welds, and also made it less complicated for the welder.
At the time that this report was written the final assembly of the front structure was not complete.
This was due to the careful attention that was required to ensure proper alignment of the kingpin
angles. Also, the asymmetry of the carbon fiber shell and bent tubing resulted in unequal kingpin
lengths for each side of the car. This was being addressed and the fabrication was ongoing at the
time of this report submission.
7. Electrical System
The electrical systems on the existing Shell Eco-Marathon car are fairly simple with the
exception of the engine controller. Discussions and interviews were held with former Colorado
School of Mines Shell Eco-Marathon Team members, Dr. Passamaneck and Darek Bruzgo to
determine where the electrical systems could be improved or enhanced on the new car being
designed. Key electrical items to be addressed for the new build are wiring, better tuning for the
engine controller and a method to automatically control engine starting and throttle control.
The electrical needs were defined as follows; safe wiring, properly sized circuits, an accurate and
clean wiring diagram, use of terminal blocks, proper wire sizing, combining all ground points of
the car to one centralized location, and the addition of an automated starting and throttle control
system. The list of needs was pared down to three main areas of focus; electrical wiring, engine
controller and automated starting and throttle control system. Each area requires a different
approach when searching for suitable solutions.
Building a functional, safe electrical wiring system should be one of the top engineering
priorities of any project. In AC power systems, there are standards that dictate installation and
design practices for electrical wiring in residential and industrial systems. Some of these
standards can be adapted to the low voltage engine control systems found on this project. These
safety standards are found in the NEC (National Electric Code) Handbook for residential systems
19

[10] . Following NEC codes will help resolve almost all of the wiring issues found in the existing
cars electrical system. Other issues can be resolved by using standardized fuse blocks, relay
blocks, screw terminals, proper grounding lugs and stranded wire for all subsystems. Parts and
components used in automotive electrical applications should be sized and rated to handle
designed voltage and currents. The NEC is written for residential AC circuits, but there are
articles that can be applied to low voltage systems and most electrical equipment in the interest
of best grounding practices. Grounding issues can be found in NEC article 250, wire sizing can
be found in article 316, termination and wiring practices can be found in article 110.
Engine controller tuning was determined to be a major issue that directly affects the overall fuel
efficiency of the car. Past teams have not spent enough time ensuring that the tuning profile for
the engine was sufficiently understood and properly performed. Many former team members, our
client and faculty advisor have mentioned the need to fully understand the tuner software and
engine performance parameters. While this will be a challenge that the team taking their car to
competition will need to address, the new car may not need this expertise.
Research into suitable engine controllers resulted in the following list of possible candidates;
Megasquirt 2 [11], Megasquirt 3, Ecotrons SE-EFI, National Instruments cRIO, MSD small
engine controller and Delphi Multec. Since the main focus of this build is to get a rolling chassis,
the list was reduced to the Megasquirt 2 and 3, and the Ecotrons controller. National Instruments
was not a suitable choice due to the cost and the lack of code available for tuning. The MSD
controller was found not to be a suitable choice due to lack of sensor inputs and flexibility. The
Delphi Multec engine controller is similar to the Megasquirt units, with less online support.
Since the main focus of the build is not tuning or competition, the needs analysis determined that
the current Megasquirt 2 or upgraded Megasquirt 3 engine controller may be adequate for the
new build car. The choice in engine controller will hinge largely on sensors used in the new
engine, bells and whistles necessary to operate the car, and potential options in starter and
throttle control system needs.
The final portion of the electrical system to be designed came from discussions with Darek
Bruzgo, Dr. Passamaneck, and old team members. Through these discussions, a significant
performance change was identified when different people drove the car. Discussions and
brainstorming sessions identified several inconsistencies that could be attributed to the driver and
a lack of stable driving technique. Sources of error identified were driver steering, throttle
control, starter on/off time, hot throttle or multiple throttle cycles in a lap, the engine not starting
first time and driver error in starting or throttle control. Driver weight, car tire pressure, engine
performance and aerodynamics were not part of this discussion as they were addressed
separately. Since inconsistencies in starting, throttle ramping and throttle position could reduce
fuel economy, an automated method for controlling the engine cycle was chosen as a possible
method to reduce that variability and improve performance.
Through brainstorming, the following needs were identified for the system: simple operation,
able to be changed quickly from manual to automatic mode, possibly allow for variable starter
time, variable throttle and ramp times, have a method to reset, allow for manual operation if the
system fails. These parameters and controls should help maintain a more stable and consistent
throttle ramp and hold. Through these discussions, several possible solution schemes were
20

developed: microprocessor controlled start circuit, manual controlled starter, mechanical timer
circuits, foot controlled starter and spring starter mechanism. Schemes to accomplish this task
include: manual start with manual throttle, automatic starter and manual throttle, manual start
with automatic throttle, throttle by wire, kick start from car momentum, manual kick start with
hand or spring assist, throttle lock - motorcycle style.
Viable solutions include a microprocessor controlled starter with automated throttle controller,
electro-mechanical based starter with mechanical throttle lock and electro-mechanical based
starter with automated throttle controller. Brainstorming sessions and decision matrices helped
the team choose a manual based starter and throttle with an automated system installed in
parallel. The system was designed with the intent that either system could be engaged with the
flip of a switch.
Design and Prototype of Automated Throttle Controller
The primary goal for all systems incorporated into the car is to improve and gain efficiency and
overall miles per gallon. Electrical systems in automobiles can help improve and enhance fuel
economy but most of this improvement comes from the engine control system. The design of the
automatic throttle control subsystem has the potential to improve fuel economy by reducing
throttle hold and ramp error. Variability in driver performance is one of the contributing factors
in engine efficiency. Preliminary designs for this system incorporated a microcontroller, RC type
servo and associated relays and switches in order to provide driver controls. The system
operation would be comparable to a cruise control on a standard automobile.
Cheap microcontrollers have helped streamline the design and implementation of these type of
systems in the automotive industry. Since a simple, cheap solution was preferable to a
complicated system, the Arduino family of microcontrollers was found to be more than adequate
and cheap. The design incorporates an Arduino UNO microcontroller, chosen for the number of
digital inputs and familiar C style programming. Code can be developed using a widely used and
supported freeware format. The C programing is easy to implement and programming techniques
taught in the beginning programming class at Mines can be utilized and implemented. This
design requires numerous digital inputs and outputs for the controlling relays and reading
switches. Another key feature of the Arduino platform is the ability to define inputs and outputs
on each digital or analog pin using a pin_mode statement in the code.
For simplicity it was determined that the starting and throttle system should be installed using the
same controls the driver would use for manual control. Using a double pole, double throw
switch, the driver is able to choose between automatic and manual mode and can utilize the same
controls. The rest of the control system was developed to operate through software and not
interfere with any of the manually operated controls.
Throttle control was installed in parallel with the manual control cable through the use of a
second pulley connected to an RC servo motor. This design allows for either system to be
engaged and not interfere with the other. The RC servo was sized initially for about 60 oz-inch of
torque, using a force scale. When purchasing the RC servo from Servo City, the technical
representative suggested that the servo be sized by a factor of 2 in order to provide a margin of
21

safety and provide enough power to overcome the no load torque required to move the throttle.
This servo proved to be provide more than enough torque to ramp and hold the throttle at any
location specified.
The initial design incorporated an RPM sense line fed directly from the negative line off the
spark plug ignition coil. This design was later replaced by using an IR reflective beam sensor
from Vishay, part number TCLT5000. The sensor was installed adjacent to the magneto cover
and used three pieces of reflective and non-reflective tape mounted on the cover. Arduino C has
a pulse_read timing command that reads the microsecond time for a high or low pulse, then
through some custom coding we wrote, the timing pulse was converted to an RPM signal. This
value is displayed for the driver as part of the status LCD screen.
The structure of the Arduino code contains three distinct states or modes of operation. First is the
wait for button press state. In this state, the Arduino UNO waits for a High signal from a digital
input labeled Start Enable, digital input 10. This button is configured with a pullup resistor of
about 5 kohms. The code cycles through the button loop every 150ms, allowing for quick
response to the button press and not overwhelming the LCD display with status information.
Displayed information on the LCD includes Start Timer Time and Throttle Timer time. These
timers are hooked to the analog potentiometers installed on the outside of the Arduino controller
box.
The second program state is the starting state. This state is only valid after the Start Enable
button has been pressed and acknowledged. Once this state is active, the StartLED is turned on
and when engaged, the Start Solenoid LED is also turned on. Code checks to ensure the RPM
input is below 1000 RPM and starting is high. When these two conditions are met, the Arduino
attempts to start the engine by pulsing the starting solenoid for the Start Timer time. The code
can be set with any number of attempts, but it has been found that only 2-3 attempts are
necessary to start the engine. Immediately after the solenoid is disengaged, the RPMValue is
read using the pulsein counter. If the engine is started, RPMs should be over 1000, otherwise the
algorithm will count down number of tries until it reaches 0 and exit the routine and wait for the
next Start Enable button press. If RPMs are over 1000, the state is changed to 3, Start Solenoid
LED is turned off and the program moves on to the Throttle ramp and hold state.
The third and final state for the Arduino code is the Throttle Ramp and Hold state. This state is
valid when the Start Enable button has been acknowledged and the engine RPMs are over 1000.
Code is written to take the Throttle Timer input, set it equal to a variable, Time, and use this in
conjunction with the Throttle Set variable to ramp and hold the throttle to a predetermined,
Throttle Max and Throttle Timer hold time. The delay time is set to about 50-100 ms, depending
on desired response time. This short delay time is necessary to incorporate a quick and reliable
abort scheme. Throttle Set should be greater than Throttle Max and Time should be greater than
0 in order for the Throttle hold circuit to keep running. When time equals 0 or the Abort switches
are active, the code will exit and move back to the wait for button press state.
Abort functionality is accomplished by placing a digital read command to look at the abort pin
every cycle through the throttle hold algorithm. This time, about 50ms provides more than
enough resolution and response to adequately abort the throttle sequence and ramp to idle. When
22

abort is active, Abort will be printed to the LCD and the Arduino will reenter the wait for button
press state. Variables will be reset to ensure the system is ready for the next start sequence.
Final design schematics are located in the lab notebooks and the appendix of this report. The
Arduino code is also included in the appendix of this report and on the CDROM. Sizing of
relays, resistors and other components were calculated using measured coil current for the
starting solenoid (3 amps), LED requirements (20 mA), and resistors sized using Ohms law.
Construction and testing were all performed on the old Shell Car with the help of the Revenge of
the Enginerds team.
Prototype and Implementation of Automated Start and Throttle System on Old Shell Car
Building and implementing the design wouldnt have been possible without a working engine
and car. Code blocks were developed for testing and final implementation for each of three
subsystems. These three subsystems were the wait state, starting routine and throttle ramp and
hold routine. Once these code blocks were fairly well tested, the hardware was designed and
built to provide the necessary hardware interface between the driver and engine.
Code blocks to test throttle, starting, abort and lcd are located on the CDROM as well as in the
appendix of this report. Each test code is designed to exercise only a piece of the overall system.
Running this code should only be used under a carefully controlled environment.
Starting hardware involved a solid state relay (SSR) and start enable switch. The system was
built on a protoboard and interfaced with the Arduino using a digital input and two digital
outputs. The Arduno digital outputs control the starting solenoid and System Running LED. A
single Arduino digital input is needed for the Start Enable control. The test code also uses the
RPM sense digital input.
Automated starting is enabled by the driver by switching the Auto/Manual switch to automatic
and then pressing the Start Button for at least 250 ms. This switch is polled by the Arduino code
and when active, starts the routine. Once started, the test code tries to start the engine by
engaging the starter solenoid for a set amount of time. This time, called Start Timer, is set using
a potentiometer on the outside of the Arduino box, wired to analog input 2, A2. The starting
solenoid is engaged for the Start Timer interval and then the RPM sense code is run to determine
if the engine is running. The engine is determined to be running if RPMs are over 1000. The
engine for the old Shell car routinely idles at 1500 to 2000 RPM. Future additions or
modifications to this code might change this threshold or come up with a different method to
verify that the engine has started.
The throttle control system is engaged only after the engine has been verified as started. In order
to properly ramp and hold the throttle for a predetermined time, the throttle servo must be
ramped at a consistent rate and held at the final position for the duration of the hold time. Timing
for this operation is done by reading a potentiometer, labeled Throttle timer, wired to analog
input 3, A3 and equating this to a variable called Time. Test code written for the throttle ramp
and hold exercises the routine by ramping, holding and delaying the routine and endlessly
repeating this routine. Abort functionality was added later to incorporate abort testing on the
23

same platform. Ramp time is set independently and will vary depending on the load on the back
tire of the car. For this reason, the throttle ramp and hold testing and tuning should be done using
the dyno or with a driver on a test track. Overall consistency was not determined at the time of
this report due to time constraints.
Abort functionality was tested with the throttle subsystem mainly because of the manner in
which the abort is to function. Aborting functionally sets the throttle to idle, shuts down the
automated system, all with the intent that the driver will kill the engine or restart the throttle
control system. Abort wiring was installed on the brake levers, one microswitch on each lever.
The switches are installed using the normally open contacts, in series and connect to a digital
input on the Arduino UNO. The microcontroller polls these switches every 50-100 ms in order to
quickly recognize and implement the abort code. In testing, the abort function worked correctly
and ramped the throttle to idle within 250 ms.
There were a few minor issues with the abort functionality on the car, mainly due to time
constraints and the part used in implementation. The microswitches used were mounted to the
brake levers. Unfortunately, these switches and their attached wires were not adequately
protected from damage. The wires were mounted near the brake actuating cables and near the
windshield. When turning the car, the wires were stressed which may have led to them breaking.
Persons moving the car or adjusting brake cables could have inadvertently pulled or stressed the
wires as well. This issue causes the system to start the engine, but terminate before the throttle
ramp and hold state. The solution is to problem is to replace the cheap microswitches with more
robust, enclosed switches with wiring that comes out the end, such as this part from Mouser
Electronics: 653-D2FW-G283M.
The automated starting and throttle control system was installed on the old Shell car in time for
the April 5-7, 2013 competition in Houston, Tx. Unfortunately, proper testing and tuning had not
been completed in order to determine the optimal ramp and hold times for the throttle system.
The system has been tested for proper function and to verify code, but without a running the
system on a test track or over the course of many engine burn simulations, the system will need
more tuning. The system will be tested, code verified and complete functional testing before the
FDR is turned in. Abort switches need to be reworked as specified in previous sections.
Final implementation testing was performed the week of April 22-26, 2013. Final tuning and
track runs were not able to be completed due to weather and time constraints. Overall, the
throttle system has been implemented according to the design specifications. Initial goals for the
automated system included more consistent throttle ramp and consistent throttle hold times and
more repeatable car performance regardless of driver. Given more time to test and tune, all of
these goals should be realized. The hopes for this portion of the project is that future teams will
see the value and potential efficiency gains that might be realized using this control system.
8. Engine
During the Reverse Engineering part of this project it was discovered that the current car is
powered by a 50cc Yamaha scooter engine. Using our calculations for the coefficient of drag and
the rolling resistance, we determined that this motor produces much more power than is needed
for weight of the existing car. Therefore, it is in our best interest to reduce the size of the engine
24

to improve fuel efficiency, but also provide sufficient power for our new vehicle design. Using
the minimum values for the engine specifications, we searched for smaller engines and found
two additional options for the car.
In searching for smaller engines, it was found that most are two-stroke engines which are less
efficient and not allowed in this competition. There are some small displacement four-stroke
engines that are produced by power sport vehicle manufacturers, such as Honda or Yamaha.
There are two sizes of engines made by Honda that were found that would be appropriate for our
range of horsepower and torque requirements based on our calculations. They are 35cc and 25cc
in displacement, which are the two common engine sizes smaller than 50cc. The determination
of which engine size to use will be dependent on the final design for the vehicle, with major
influence from the final weight of the car.
There are benefits to each engine size for different desired performance and design aspects. With
the 50cc engine we would have an easier time finding parts and this would make the upgrade and
repair of the engine much easier. The major drawback with the 50cc engine, as mentioned
previously, is its weight and size. The primary benefit of the 35cc and 25cc engine is they are
lighter, smaller and will operate at a higher efficiency level. The major problem with the 35cc
and 25cc engine is that the parts for the engines can be harder to find. These three engines are all
pull or kick start and are carbureted. With the 35cc and 25cc engine there is also the problem that
they are not originally made to run with a chain drive. There would need to be an adapter made
to go from the clutch system to a gear that could be used to drive the wheel of the car.
Using a decision matrix and our team members experience at the competition we recommend
using a 35cc engine. The size and weight of the engine will help us maintain our goal for a
lighter vehicle while still providing enough power to propel our car down the track. With the
final goal for this project being an unpowered rolling chassis we will not be installing the engine
into the car. The next team to take over this project will need to design and make mounts for the
engine and to design a way to interface the clutch to the drivetrain of the vehicle. Currently this
engine has a diaphragm carburetor in it and for the megasquirt to work with the fuel injection
system the engine would also need to be converted to have a port injection system. An example
of this port injection system can be found on http://www.ecotrons.com/. This system would
provide a port injection and provide the various sensors to get readings from the engine. These
additions will need to be implemented by the next team that takes over the project.
9. Conclusion
In conclusion, customer needs were collected from a variety of different sources. Interviews with
the previous years team members, Dr. Passamaneck, and Dr. Sullivan proved most useful.
Design methodologies such as a function structure, QFD, morphological matrix, and
force/energy flow analysis were performed to get a better understanding of the customer needs as
well as prioritize the importance of each. The function structure and force/energy analysis helped
identify how force, mass, and information were transferred through the systems of the car. The
QFD helped identify possible obstacles based on positive or negative contribution between
customer needs. Lastly, the morphological matrix helped organize and develop possible solutions
25

to the customer needs. After performing these design methodologies, many brainstorming
sessions were performed to develop a full spectrum of concept variants that could be pursued in
the design. The next step in the process of building the car was determining which of the concept
variants should be chosen in the final design. A lot of the minor details were determined from
team discussions and using tables to rate the importance of the advantages and disadvantages of
each subsystem.
The first major decision we made was selecting the body/frame type. This was determined from
performing flow simulations and finite element analysis in SolidWorks for several different
possible designs. Once this decision was made, the final design was optimized in SolidWorks
based on the constraints of the type of design and rules of the competition. The team designed to
be within all requirements while maintaining a very aerodynamic shape. Based upon team
discussions, SolidWorks simulations and ultimately a decision matrix, the team chose to pursue a
unibody design for the car. Several more decisions were subsequently made including: three vs.
four wheels, front vs. rear wheel steering, material for the unibody, wheels inside vs. outside the
unibody, placement of engine, steering methods, types of wheels/hubs, design of suspension,
electronic driving, and engine size.
The goal for our team was to have a rolling chassis by the end of the spring semester. We felt as
though this was a reasonable goal given time and budget constraints. Team CSMPG came very
close to achieving this goal, but ultimately did not have a rolling chassis. We were able to
accomplish a great deal prior to ending our time in senior design. At the conclusion of the
semester, the team had completed a full shell for the body as well as the front wheel structure.
With a few simple welds the front structure can be fully integrated into the body and
permanently function as part of the car. The rear wheel structure was partially completed. The
dropouts were attached to titanium tubing, but these have not been integrated into the car body.
The team has also completed substantial work on future systems to integrate into the car. A full
engine recommendation, transmission system, and revolutionary electrical control for consistent
driving have been finished. These recommendations and code will be passed down to the next
team to work on this project
The large majority of our work came in the form of building the shell of the car body. The
building of the mold ended up taking about 3 months to complete. The time consumed to build
the mold was much more than anyone on the team had predicted. Once the mold was finished,
we ran into more troubles due to parts being on backorder or being ordered late. There were
several points throughout the semester where the team was ready to continue construction, but
we did not have proper equipment. This delay was especially prevalent in the vacuum pump and
titanium orders. The full schedule can be seen in the final Gantt chart attached in the appendices
under Figure 11.
From a budgetary perspective, team CSMPG did very well. The team was given $12,000 to put
towards supplies and equipment necessary to build a new vehicle. Carbon fiber is notorious for
being relatively expensive. Titanium is also known to be a very expensive material, especially in
comparison to steel or aluminum. When these materials were chosen based upon engineering
principles, there was some concern amongst the team about going over the allotted budget. These
fears were assuaged when it was discovered much of the cost could be mitigated by performing
26

all the manual labor within the team. The total expenditures for the project came out to be just
under $6,000. Not only did we work within the given budget, but we purchased all required
materials for less than half the total budget. A large emphasis of engineering is ensuring safety
while remaining cost effective. We were able to purchase very safe, strong materials well within
the budget. The cost breakdown roughly breaks down as follows: $1,500 spent on
steering/suspension, $1,000 spent on wheels/mounts, $3,200 spent on the body, and $300 spent
on the electrical. A full budget breakdown, including each individual component, can be seen in
Tables 1 and 8 through 12.
Overall, team CSMPG is proud of the work that has been accomplished over the course of the
past year. We very narrowly missed the goal for a rolling chassis by Trade Fair, but work is still
being done on the car to accomplish a rolling vehicle by the end of the semester. There has also
been a substantial amount of groundwork laid for the future teams. We have full confidence that
next years team can hit the ground running and compete with this vehicle at the 2014 Shell EcoMarathon competition. To ensure this happens, we plan to provide specific instructions for
completion of the car. We also plan to leave behind guides to some of the more complicated
procedures i.e. laying up carbon fiber or welding titanium. These were time consuming processes
that could be completed more efficiently with proper instruction. Team CSMPG hopes that the
new build car we have started will be finished quickly and compete in competitions for years to
come.

10. Patents and References


[1] N. Sullivan, interview, September 10th, 2012.
[2] R. Passamaneck, interview, September 13th, 2012.

27

[3] B. Cowan, Aerodynamic Automobile, U.S. Patent 6 230 836 B1, May 15, 2001
[4] J. Hill, Aerodynamic Vehicle Body, U.S. Patent D 635 487, April 5, 2011.
[5] H. Barske, Method of Optimizing the Aerodynamics of a Vehicle Body, U.S. Patent
4593558, June 10, 1986
[6] D. Burnhill, Ackerman Steering Principle,
http://www.rctek.com/technical/handling/ackerman_steering_principle.html#moreack, December
3, 2012.
[7] D. Renfroe, Flexible Cable Lever Arm Steering System Apparatus and Method, U.S. Patent
7073822, July 11, 2006
[8] J. Brandt, Wheel Strength, in The Bicycle Wheel, 3rd ed. Palo Alto, CA: Avocet Inc., 1993,
pp. 33-44
[9] N. Migata, T. Okamoto, A. Shoge, Internally Geared Hub for Bicycle, U.S. Patent 2 272
744, January 12, 2011
[10] National Fire Protection Association, NEC Handbook 2011, 12th ed., National Fire
Protection Association, Quincy, Ms, 2010
[11] B.A. Bowling, Simple Engine Fuel Controller, U.S. Patent 7 369 933, May 6, 2008

28

Appendix A
Table 1: Total Budget

Components
Estimated Price Total Spent
Steering/Suspension
$1,510.90 $1,502.31
Wheels\Brakes
$615.00
$923.95
Engine\Transmision
$1,150.00
$0.00
Body
$5,853.43 $3,196.83
Electrical
$308.16
$299.63

Total

$9,437.49

$5,922.72

Table 2: Morphological Matrix

29

Figure 1: Mind Map

Figure 2: Black Box Model

30

Figure 3: Function Structure

Figure 4: BOM Exploded View Callouts - Steering

31

Figure 5: BOM Exploded View Callouts - Car

Table 3: Bill of Material

32

Figure 6: Quality Function Deployment

Figure 7: Force/Energy Analysis Calculation

33

Figure 8: Starter Circuit - Old Car

Figure 9: Throttle Circuit - Old Car

34

Figure 10: Work Breakdown Structure

35

Table 4:Tensile Testing (Round 1)


Sample #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Break Load (lbf)


588.1
520.8
1048.0
775.5
831.3
814.2
835.9
723.3
472.2
476.7
240.4
261.4
159.4
163.4
394.2
269.9
1346.0
1398.0
708.2
360.0

Avg W (in)
0.4450
0.4605
0.4690
0.4680
0.4880
0.5020
0.4900
0.5040
0.5005
0.4960
0.4715
0.4875
0.4755
0.4780
0.4830
0.4690
0.4990
0.4930
0.4880
0.4745

Avg t (in)
0.0420
0.0370
0.0755
0.0750
0.0635
0.0650
0.1005
0.0870
0.0325
0.0300
0.0225
0.0215
0.0165
0.0190
0.0260
0.0250
0.1720
0.1835
0.0860
0.0255

Area (in^2)
Stress (psi)
Make-Up
0.0187
31466.02461 1 layer CF
0.0170
30566.07096 1 layer CF
0.0354
29596.57719 1 CF/ 3 C
0.0351
22094.01709 1 CF/ 3 C
0.0310
26826.51349 6 C
0.0326
24952.4977 6 C
0.0492
16974.31211 3 C/1 M
0.0438
16495.62124 3 C/1 M
0.0163
29029.43211 3 C/System 3
0.0149
32036.29032 3 C/System 3
0.0106
22660.53965 2 C/System 3
0.0105
24939.7734 2 C/System 3
0.0078
20316.73199 1 C/System 3
0.0091
17991.6318 1 C/System 3
0.0126
31390.34878 3 C/Poly resin
0.0117
23019.18977 3 C/Poly resin
0.0858
15682.52785 3 M/System 3
0.0905
15453.40489 3 M/System 3
0.0420
16874.76172 3 C/1 M
0.0121
29752.68084 3 C/Poly resin
CF= carbon fiber
C=Cloth fiberglass
M=Chopped Fiber Mesh

Table 5: Tensile Testing (Round 1) Results

Material
Make-Up
Average UTS (psi)
1 CF
31016.04778
1 CF/3 C
25845.29714
6C
25889.5056
3 C/1 M
16781.56502
3 C/System 3
30532.86121
2 C/System 3
23800.15653
1 C/System 3
19154.18189
3 C/Polyester Resin
28054.07313
3 M/System 3
15567.96637

36

Table 6: Tensile Testing (Round 2)


Sample #

Break Load (lbf)


1141.8
1175.3

Avg W (in)

1
2
3
4
368.4
5
560.4
6
461.9
7
493.9
8
651.3
9
10
292.0
11
303.0
12
247.0
13
282.0
14
15
1072.0
16
1077.0
*Samples of sys 3 2 L fiberglass from round 1
11
240.4
12
261.4

0.5035
0.4850
0.4625
0.4650
0.4675
0.4700
0.4920
0.4910
0.4950
0.4800
0.4750
0.4755
0.4860
0.5170
0.5170
0.4995

Avg t (in)
0.0400
0.0410
0.0200
0.0180
0.0195
0.0195
0.0365
0.0355
0.0325
0.0325
0.0285
0.0290
0.0250
0.0425
0.0390
0.0370

Area (in^2)
0.0201
0.0199
0.0093
0.0084
0.0091
0.0092
0.0180
0.0174
0.0161
0.0156
0.0135
0.0138
0.0122
0.0220
0.0202
0.0185

0.4715
0.4875

0.0225
0.0215

0.0106
0.0105
CF=carbon fiber
FB=fiberglass

Stress (psi)
Make-Up
56693.14796 2x2 20 oz CF
59104.8529 2x2 20 oz CF
0 2x2 6 oz CF
44014.33692 2x2 6 oz CF
61472.645 6 oz CF check brd
50398.25423 6 oz CF check brd
27503.0627 19 oz tri-ax knit fb
37365.53742 19 oz tri-ax knit fb
0 Sys 3, 2 layer fb
18717.94872 Sys 3, 2 layer fb
22382.27147 Sys 3, 2 layer fb
17912.17956 Sys 3, 2 layer fb
23209.87654 Sys 3, 2 layer fb
0 2x2 20 oz CF
53166.69146 2x2 20 oz CF
58274.49071 2x2 20 oz CF
22660.53965 Sys 3, 2 layer fb
24939.7734 Sys 3, 2 layer fb

Table 7: Tensile Testing (Round 2) Results

Material
Avg UTS (psi)
2x2 20 oz CF
56809.79576
2x2 6 oz CF
44014.33692
6 oz Check board CF
55935.44962
19 oz tri-ax knitted CF
32434.30006
system 3 2 layer FB
20555.56907
Standard deviation for 2x2 20 oz (psi)=
Standard deviation for System 3 2 laber fb (psi)=

2626.685757
2734.244445

37

Table 8: Steering Purchases


Part Name
STEERING
Rack and pinion steering box
Tie Rod Kit
Shipping Costs
SUSPENSION
Tube Roller
Gloves
Brush
Piping
3/4" OD Titanium Tubing
Titanium Sheet
1-3/8" OD Bushings
1-1/4" OD Bushings
1" OD Titanium Tubing
1-1/2" OD Titanium Tubing
Shipping Costs
Rear Dropouts

Description

Welding gloves
3 pc
Used for practice
5ft sections

2 ft section
1 ft section

Manufactor

Harbor Freight
Harbor Freight
Harbor Freight
McMaster-Carr
McMaster-Carr
McMaster-Carr
McMaster-Carr
Titanium Joe
Titanium Joe

Manufactor Contact Information

Part Number Quantity Price Per Unit Estimated Price Price Spent

http://www.ubuilditplans.com
http://www.ubuilditplans.com
http://www.ubuilditplans.com

207T

http://www.harborfreight.com/#
http://www.harborfreight.com/#
http://www.harborfreight.com/#
Home Depot
www.mcmaster.com
www.mcmaster.com
www.mcmaster.com
www.mcmaster.com
www.titaniumjoe.com
www.titaniumjoe.com

76

99736
38197
69637
89835K953
9051K18
31435A411
8492A011

low mount, eyelets, Paragon


expedition
Machine Works www.paragonmachineworks.com DR0026

1
1

$93.95
$20.95

$93.95
$20.95

$93.95
$20.95
$35.00

1
2
1
1
4
2
4
4
1
1

$169.99
$9.00
$1.49
$13.70
$65.79
$135.69
$15.55
$19.66
$66.00
$45.00

$250.00
$20.00
$2.00
$15.00
$300.00
$300.00
$50.00
$50.00
$75.00
$50.00
$150.00

$169.99
$18.00
$1.49
$13.70
$263.16
$271.38
$62.20
$78.64
$66.00
$45.00
$201.71

$137.14

$100.00

$137.14

32
2
1
4
1
1
1

$0.14
$1.18
$1.18
$1.18
$4.20
$1.89
$2.54

$5.00
$5.00
$2.00
$5.00
$5.00
$2.00
$5.00
$5.00
$1,510.90

$4.48
$2.36
$1.18
$4.72
$4.20
$1.89
$2.54
$2.63
$1,502.31

INTEGRATION
Fender washers
Washer locks
Washers
Screws
Straps
Angle grinder blade
Pipe Strap
Sales Tax

3/16 zinc

Home Depot
Home Depot
Home Depot
Home Depot
Home Depot
Home Depot
Home Depot
Home Depot

#10 zinc

Totals

38

Table 9: Wheel Purchases


Part Name
Front Wheel Mounts
Lefty Hub
3 speed hub
20" wheelsw
Rear spokes
Front Spokes
Wheel assembly fee
Shipping Costs

Description
Lefty 32h Hub
w/endcap and bolt
rear wheel
velocity
183 mm w/nipples
185 mm w/nipples
labor to construct wheels

Manufacturer
Cannondale
Pedal Pushers
Pedal Pushers
Pedal Pushers
Pedal Pushers
Pedal Pushers
Pedal Pushers
Totals

Manufacturer Contact Information Part Number Quatity Price Per Unit Estimated Price Price Spent
2
$100.00
$100.00
$0.00 Donated by Pedal Pushers
www.pedalpusherscyclery.com CA-3400
2
$100.00
$100.00
$200.00
www.pedalpusherscyclery.com HU-2209
1
$126.95
$150.00
$126.95
www.pedalpusherscyclery.com RM-4466
3
$70.00
$75.00
$210.00
www.pedalpusherscyclery.com SQ-1183
32
$2.00
$70.00
$64.00
www.pedalpusherscyclery.com SQ-1185
64
$2.00
$100.00
$128.00
www.pedalpusherscyclery.com
$0.00
$180.00
$20.00
$15.00
$615.00
$923.95

39

Table 10: Body Purchases Part 1


Part Name

Description

Date Purchased Manufactor Contact Information

Part Number

Quantity Price Per Unit Estimated Price Price Spent

TESTING
Fiberglass Cloth 6 oz Cloth
Plastiset 8 oz
Impact Resin
System Three Epoxy Resin
Partall Film #10
Finish Kare Mold Release

Style 3733 60 inch wide(price per yd)

Carbon Biaxial 11.9oz Sleeving


Nitrile Gloves
Moldex Dus Masks
Brushes
Mix & Measure Cups
Catalyst Dispenser
Tongue Depressors
System Three Hardener #2
Fiberglass Mat 2oz

2.5" ID (price per foot)


N95 10 pack
1 1/2"
8 oz
Mixing Sticks
Medium hardener
50" wide (price per yd)

10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/

16511
16499
16572
16532

10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/
10/18/2012 http://www.plasticareinc.com/

16310
16298
15702
16294
16580

50
1
1
12
1
4

$10.25
$7.95
$17.00
$34.00
$6.75
$14.50

$512.50
$7.95
$17.00
$408.00
$6.75
$58.00

$10.25
$7.95
$17.00
$34.00
$6.75
$14.50

1
2
2
45
50
1
2
12
35

$6.75
$9.95
$25.49
$0.75
$0.50
$5.95
$11.50
$22.70
$7.30

$6.75
$19.90
$50.98
$33.75
$25.00
$5.95
$23.00
$272.40
$255.50

$6.75
$9.95
$25.49
$7.50
$5.00
$11.90
$11.50
$22.17
$7.30

5
5
10
10
15
1
1
2
1
1
1
5
5
3
1
1
1
1
2
1

$0.85
$24.95
$1.00
$1.00
$1.00
$8.99
$4.29
$15.99
$44.06
$43.16
$8.00
$0.46
$0.66
$26.44
$83.41
$54.69
$12.55
$13.92
$1.99
$15.49

$5.00
$125.00
$10.00
$10.00
$15.00
$10.00
$5.00
$35.00
$45.00
$45.00
$10.00
$5.00
$5.00
$80.00
$100.00
$50.00
$15.00
$15.00
$5.00
$15.00

$4.25
$124.75
$10.00
$10.00
$15.00
$8.99
$4.29
$31.98
$44.06
$43.16
$8.00
$2.30
$3.30
$79.32
$83.41
$54.69
$12.55
$13.92
$3.98
$15.49

MOLD
Bondo Yellow Spreader
Bondo Body Filler Gal
Sandpaper 80 Grit
Sandpaper 120 Grit
Sandpaper 220 Grit
Lacquer Thinner
Drywall Tape
Lite Weight 3
80 GR Stikit Sheet Roll
180 GR Stikit Sheet Roll
Nitrile Gloves
Small Spreaders
Spreader
Icing Pourable Finishing
2K Primer Surfacer
Fast Primer Hardner
Medium Reducer
Clean Sheet Mix Board
Mixing Container
Lacquer Thinner

12/7/2012 http://www.plasticareinc.com/
12/7/2012 http://www.plasticareinc.com/
12/7/2012 http://www.plasticareinc.com/
12/7/2012 http://www.plasticareinc.com/
12/7/2012 http://www.plasticareinc.com/
1/3/2013 Meyer Hardware
1/3/2013 Meyer Hardware
1/10/2013 Pro Automotive Finishes
1/10/2013 Pro Automotive Finishes
1/10/2013 Pro Automotive Finishes
1/10/2013 Pro Automotive Finishes
1/10/2013 Pro Automotive Finishes
1/10/2013 Pro Automotive Finishes
1/10/2013 Pro Automotive Finishes
1/10/2013 Pro Automotive Finishes
1/10/2013 Pro Automotive Finishes
1/10/2013 Pro Automotive Finishes
1/10/2013 Pro Automotive Finishes
3/28/2013 Meyer Hardware
3/28/2013 Meyer Hardware

I5708
I6251
I6252
I6253
300G1
SA001
EVE-156
MMM-02599
MMM-02595
SUR-6608
COS-1204
COS-1205
USC-26006
OMN-MP182/01
OMN-MH165/04
OMN-MR186/04
COS-1800
795283
788106

40

Table 11: Body Purchases Part 2


SHELL
Vacuum Pump
Shipping and Handling
Resin Trap
Infusion Connector
Sealant Tape
Green mesh cover
Econo-ply
Infusion Spiral
Stretchlon
Shipping and Handling
Carbon Fiber
Shipping and Handling
Epoxy and Resin
Shipping and Handling

Robinair 15500 5CFM Pump

1/2" RIC 12
Roll Y-204
2.74 oz x 60 in
1/2" OD
800x60" Roll, 200
Panex 35: UD fabric 200 g/m^2
10 gal, 635 resin + 3.3 gal 3-1 HR

2/12/2013 www.amazon.com
2/12/2013 www.amazon.com
2/12/2013 www.fiberglasssupply.com
2/12/2013 www.fiberglasssupply.com
2/12/2013 www.fiberglasssupply.com
2/12/2013 www.fiberglasssupply.com
2/12/2013 www.fiberglasssupply.com
2/12/2013 www.fiberglasssupply.com
2/12/2013 www.fiberglasssupply.com
2/12/2013 www.fiberglasssupply.com
2/13/2013 Zoltek Corporation
2/13/2013 Zoltek Corporation
2/12/2013 www.uscomposites.com
www.uscomposites.com
Totals

M60-2910
M50-0312
M20-8731
M50-0175
M05-1453
M50-0010
M13-5803
PX35UD0200-0611
EPOX-635317

$169.98

1
10
4
20
20
100
20
218.8

$106.50
$7.83
$8.21
$3.48
$3.35
$0.51
$3.55
$72.34
$4.19

$548.00

$200.00
$25.00
$150.00
$75.00
$40.00
$80.00
$80.00
$50.00
$75.00
$70.00
$1,750.00
$50.00
$750.00
$150.00
$5,853.43

$169.98
$23.87
$106.50
$78.30
$32.84
$69.60
$67.00
$51.00
$71.00
$72.34
$916.77
$69.36
$548.00
$148.82
$3,196.83

41

Table 12: Electrical Purchases


Part Name
Description
Data Purchased
Manufactor
Arduino Uno
Servo
throttle position, 30-80 oz.*in
relay pcb
4-8 channel, 12 vdc relay control pcb
11/19/2012 Crydom
Bud Box
Servo mounting block
Heavy Duty Arm Kit
LCD Character display module
11/19/2012 Newhaven Display

Manufactor Contact Information Part Number


Quatity Price Per Unit Estimated Price Price Spent
Newark
1
25.00
$25.00
$25.58
Servo City
1
50.00
$50.00
$69.99
Mouser Electronics
DMO063
1
50.00
$50.00
$20.90
Newark
1
$12.60
$12.60
$12.60
Servo City
1
$24.99
$24.99
$24.99
Servo City
1
$8.95
$8.95
$8.95
Mouser Electronics
NHD-0216K3Z-FL-GBW-V3
1
$19.80
$19.80
$19.80

Protoboard
Green LED indicator
Mounting Enclosure
Yellow Knob
Potentionmeters
Mounting Enclosure
Red LED Indicator
Yellow LED Indicator
Cable Clamp
Cable Clamp
Female (Socket) Contacts
Male (Pin) Contacts
7 pin male connector
7 pin female connector
4 pin male connector
4 pin female connector
Bipolar transistor
150 Ohm Resistor
249 Ohm Resistor
Recovery Rectifier
Electrolytic Capacitor
Electrolytic Capacitor
Toggle Switch
Rocker Switch

Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics
Mouser Electronics

6x3.2x1.8 Black w/Flange


.52"Dx.65"H
16mm Rotary Panel Potentiometer
4.4x2.5x1.1 Black w/Flange

Shell Size 11, screw length 0.375


Shell Size 13
22-18 tin size 16
22-18 tin size 16
shell size 13
shell size 13
Shell Size 11
Shell size 11
BJT 3A 60V 40W NPN
Through Hole 150 ohm 1% 100PPM
Through Hole 249 ohm 1% 50PPM
3.0A Rectifier UF Recovery
Leaded .1UF 50V ELECT NHG RADIAL
Leaded 50V 10uF
10A DPST On-Off

11/19/2012 BusBoard Prototype Systems


11/19/2012 Dialight
11/19/2012 Hammond
11/19/2012 Eagle Plastic
11/19/2012 BI Technologies
11/19/2012 Hammond
11/19/2012 Dialight
11/19/2012 Dialight
11/19/2012 TE Connectivity
11/19/2012 TE Connectivity
11/19/2012 TE Connectivity
11/19/2012 TE Connectivity
11/19/2012 TE Connectivity
11/19/2012 TE Connectivity
11/19/2012 TE Connectivity
11/19/2012 TE Connectivity
11/19/2012 ON Semiconductor
11/19/2012 KOA Speer
11/19/2012 Xicon
11/19/2012 Fairchild Semiconductor
11/19/2012 Panasonic
11/19/2012 Nichicon
11/19/2012 NKK Switches
11/19/2012 C&K Components
Totals

PAD3U
608-1231-110F
1591XXDFLBK
450-3022
P160KNPD-4QA15A5K
1591XXBSFLBK
608-1131-110F
608-1331-110F
1-206062-6
206966-7
66592-1
66591-1
211401-1
211400-1
206430-1
206429-1
TIP31AG
MF1/4DCT52R1500F2
271-249-RC
EGP30D
ECA-1HHG0R1
UVR1H100MDD1TA
S1B-RO
DM62J12S205PQ

1
1
1
3
3
1
1
1
2
2
25
25
2
2
2
2
2
3
3
3
2
2
1
1

$10.78
$2.67
$10.75
$0.59
$0.80
$4.29
$2.37
$2.42
$3.05
$4.36
$0.25
$0.25
$5.71
$6.20
$3.30
$4.05
$0.58
$0.06
$0.13
$0.53
$0.23
$0.10
$4.22
$5.33

$10.78
$2.67
$10.75
$1.77
$2.40
$4.29
$2.37
$2.42
$6.10
$8.72
$6.25
$6.25
$11.42
$12.40
$6.60
$8.10
$1.16
$0.18
$0.39
$1.59
$0.46
$0.20
$4.22
$5.33
$308.16

$10.78
$2.67
$10.75
$1.77
$2.40
$4.29
$2.37
$2.42
$6.10
$8.72
$6.25
$6.25
$11.42
$12.40
$6.60
$8.10
$1.16
$0.18
$0.39
$1.59
$0.46
$0.20
$4.22
$5.33
$299.63

42

Figure 11: Full Project Gantt Chart

43

Appendix B: Electrical
1. Schematics

Figure 12 Car Electrical Schematic

44

Figure 13 Arduino Auto Starting and Throttle Control System

45

Figure 14 RPM Sense Circuit

46

2. Arduino Code for Automatic Start and Throttle System

Figure 15 Arduino Code Flow Diagram

47

Servo Test Code


/*
//
//
//
*/

StartEnable
Automated Starter and Throttle Control
CSMpg Shell Eco Marathon Team New Build
01/31/2013 Bill Sekulic, upchuckjun@yahoo.com

#include <Servo.h>
Servo throttle_servo;
//analog inputs
int RPM
= A0;
int ThrottlePos
= A1;
float StartTime
= A2;
float ThrottleTime = A3;
//digital pins
// Display Out
= 1;
int SolEnable
= 2;
int StartLED
= 3;
int StartSolLED
= 4;
int ThrottleLED
= 5;
//int ServoOut
= 6;
int Abortpin
= 7;
int StartEnable
= 8;
float RPMpulse
= 9;
//variables
float RPMValue;
float StartTimer;
float ThrottleTimer = 5000;
int Throttle_set;
int Throttle_max = 90;
int Throttle_min = 0;
int x;
int state;
int Time;
int startdelay = 200;
int pos;
int start_button;
int Starting;
int Abort;
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
pinMode(StartLED, OUTPUT);
pinMode(StartSolLED,OUTPUT);
pinMode(ThrottleLED,OUTPUT);
pinMode(StartTime,INPUT);
pinMode(ThrottleTime,INPUT);
pinMode(Abortpin,INPUT_PULLUP);
pinMode(StartEnable, INPUT_PULLUP);
pinMode(RPM,INPUT);
pinMode(RPMpulse,INPUT);
pinMode(ThrottlePos,INPUT);
throttle_servo.attach(6,600,2400); //attach servo to pin6, Set min to 600 Max to 2400

48

Throttle_max = 90; //set max throttle value to 90 degrees


Throttle_set = 0; // set initial throttle position to 0%
x = 0;
state = 0;
}
// Main Program Loop - Wait for Start, then initiate sequence
void loop() {
Serial.begin(9600);
StartTimer = readStartTime();
//read Start Timer value
ThrottleTimer = readThrottleTime();//read Throttle Timer value
Starting = digitalRead(StartEnable);
//Reset Abort pin
if(Abort == LOW){
delay (2000);
Abort = digitalRead(Abortpin);
x = 0;
}
// TEST Throttle Ramp and Hold
x = 180; //reset x for next loop
Time = millis();
digitalWrite(StartLED, HIGH);
digitalWrite(ThrottleLED,LOW);
ThrottleTimer = readThrottleTime();
ThrottleTimer = 2000;
while (digitalRead(Abortpin) && x >=90){
x = x-2;
Serial.print(Abort);
throttle_servo.write(Throttle_set);
Throttle_set =x*1 - 0;
ThrottleTest(Throttle_set,ThrottleTimer,x);
digitalWrite(ThrottleLED,x+50);
Abort = digitalRead(Abortpin);
Time = millis() - Time;
if (x <= 90){
state = 1;
}
}
if (Abort == LOW){
abort(Time);
Serial.print("Aborted");
Serial.println("Time=");
Serial.println(Time);
delay (1000);
Abort = LOW;
state = 0;
}
while(state == 1 && Abort && x <= ThrottleTimer){//Throttle Hold Routine
x = x + 100;
delay (100);
ThrottleTest(Throttle_set,ThrottleTimer,x);
Abort = digitalRead(Abortpin);
if (x >= ThrottleTimer){
state = 0;
}
}
if (Abort == LOW){

49

abort(Time);
x = 90;
state = 0;
digitalWrite(ThrottleLED,LOW);
}
}
//Throttle Test Screen
void ThrottleTest (float Throttle_set, int ThrottleTime,int x){
Serial.write(0xFE);
Serial.write(0x41); //turn on LCD
Serial.write(0xFE);
Serial.write(0x51); //clear LCD
Serial.write(0xFE);
Serial.write(0x46); //set position to first line
Serial.print("ThrottleTest");
Serial.print(x);
Serial.write(0xFE);
Serial.write(0x45); //set position
Serial.write(0x28); //position second line
Serial.print("X=");
Serial.print(Throttle_set);
Serial.print("Sec:");
Serial.print(millis());
delay(50);
}
//function Splash Screen
void splashscreen(){
Serial.write(0xFE);
Serial.write(0x41); //turn on LCD
Serial.write(0xFE);
Serial.write(0x51); //clear LCD
Serial.write(0xFE);
Serial.write(0x46); //set position to first line
Serial.print("Enginerds CSMpg");
Serial.write(0xFE);
Serial.write(0x45); //set position
Serial.write(0x28); //position
Serial.print("ThrottleTesting");
delay (1000);
}
//function to read RPM and scale
float readRPM(){
int RPMhigh;
int RPMlow;
// RPM_out = analogRead(RPM); //scale RPM input to 0-5000
// RPM_out = (RPM_out/1024)*5000;
// return RPM_out;
RPMhigh = pulseIn(9,HIGH);
RPMlow= pulseIn(9,LOW);
RPMValue = RPMhigh + RPMlow;
RPMValue = 1/RPMValue; //frequency
return RPMValue;
// RPMValue = 10*(1/((2*RPMValue)/1000));
}

50

//function to read ThrottleTImer and scale to 0-5 seconds


float readThrottleTime(){
ThrottleTimer = analogRead(ThrottleTime);
ThrottleTimer = map (ThrottleTimer, 0, 1024, 0, 10000);
seconds - 10000 ms
return ThrottleTimer;
}

//integer math to scale to 10

//function to read Start Time and scale to 0-5 seconds


float readStartTime(){
StartTimer = analogRead(StartTime);
StartTimer = map(StartTimer, 0,1024,0,5000); //integer math to scale to 5 seconds,
50000ms
return StartTimer;
}
//function to abort throttle set
void abort(int Time){
Throttle_set = 180;
throttle_servo.write (Throttle_set);
digitalWrite(ThrottleLED,LOW);
start_button = LOW;
Serial.write(0xFE);
Serial.write(0x51); //clear LCD
Serial.write(0xFE);
Serial.write(0x46); //set position to first line
Serial.print("ThrottleAbort");
Serial.write(0xFE);
Serial.write(0x45); //set position
Serial.write(0x28); //position
Serial.print("AbTime: ");
Serial.print(Time);
delay (1000);
}

51

Starter Test Code


/*
//
//
//
*/

Start Test Code


Automated Starter and Throttle Control
CSMpg Shell Eco Marathon Team New Build
01/31/2013 Bill Sekulic, upchuckjun@yahoo.com

#include <Servo.h>
Servo throttle_servo;
//analog inputs
int RPM
=
int ThrottlePos
=
float StartTime
float ThrottleTime

A0;
A1;
= A2;
= A3;

//digital pins
// Display Out
int SolEnable
int StartLED
int StartSolLED
int ThrottleLED
//int ServoOut
int Abortpin
int StartEnable
float RPMpulse

1;
2;
3;
4;
5;
6;
7;
8;
9;

=
=
=
=
=
=
=
=
=

//variables
float RPMValue;
float StartTimer;
float ThrottleTimer;
int Throttle_set;
int Throttle_max = 90;
int Throttle_min = 0;
int x;
int Time;
int startdelay = 200;
int
int
int
int

pos;
start_button;
Starting;
Abort;

// the setup routine runs once when you press reset:


void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
pinMode(StartLED, OUTPUT);
pinMode(StartSolLED,OUTPUT);
pinMode(ThrottleLED,OUTPUT);
pinMode(StartTime,INPUT);
pinMode(ThrottleTime,INPUT);
pinMode(Abortpin,INPUT_PULLUP);
pinMode(StartEnable, INPUT_PULLUP);

52

pinMode(RPM,INPUT);
pinMode(RPMpulse,INPUT);
pinMode(ThrottlePos,INPUT);
throttle_servo.attach(6,600,2400); //attach servo to pin6, Set min to 600 Max to 2400
Throttle_max = 90; //set max throttle value to 90 degrees
Throttle_set = 0; // set initial throttle position to 0%
x = 0;
}
//function Splash Screen
void splashscreen(){
Serial.write(0xFE);
Serial.write(0x41); //turn on LCD
Serial.write(0xFE);
Serial.write(0x51); //clear LCD
Serial.write(0xFE);
Serial.write(0x46); //set position to first line
Serial.print("Enginerds CSMpg");
Serial.write(0xFE);
Serial.write(0x45); //set position
Serial.write(0x28); //position
Serial.print("AutoStart Sys");
delay (1000);
}
//function to print RPM and Throttle Delay on LCD panel
void startingLCD (float RPMValue,int StartTime){
Serial.write(0xFE);
Serial.write(0x46); //set position to first line
Serial.print("Starting RPM=");
Serial.print(RPM);
Serial.write(0xFE);
Serial.write(0x45); //set position
Serial.write(0x28); //position second line
Serial.println(RPMValue);
Serial.println("StartTime ");
Serial.println(StartTime);
}
//function to read RPM and scale
float readRPM(){
int RPMhigh;
int RPMlow;
RPMhigh = pulseIn(9,HIGH);
RPMlow= pulseIn(9,LOW);
RPMValue = RPMhigh + RPMlow;
RPMValue = 1/RPMValue; //frequency
return RPMValue;
}
//function to read Start Time and scale to 0-5 seconds
float readStartTime(){
StartTimer = analogRead(StartTime);
StartTimer = 5000*(StartTimer/1024); //integer math to scale to 5 seconds, 50000ms
return StartTimer;
}

53

//function to abort throttle set


void abort(){
if (digitalRead(Abortpin)){
throttle_servo.write (0);
start_button = LOW;
}
}
// Main Program Loop - Wait for Start, then initiate sequence
void loop() {
// TEST Start Routine
Serial.begin(9600);
Throttle_set = 0;
StartTimer = readStartTime();
//read Start Timer value
Starting = digitalRead(StartEnable);
//State 1: Wait for Start Button to be pressed
if (Starting == LOW){
digitalWrite(StartLED, HIGH);
//turn on start LED
delay(250);
}
else {
// start_button = LOW;
//set start sequence to LOW, ON
Starting = HIGH;
digitalWrite(StartLED, LOW);
//turn on start LED
RPMValue = readRPM();
//read RPMs from analog input
StartTimer = readStartTime();
//read Start Timer value
delay (250);
}
//State 2: Starting Sequence
x = 2;
if (Starting == HIGH) {
//engage starter solenoid for 2 seconds or until RPM > 100
digitalWrite(StartLED, HIGH);
RPMValue = readRPM();
//read RPMS from analog input
RPMValue = analogRead(RPM);
StartTimer = readStartTime();
if (RPMValue >= 500){
digitalWrite(StartSolLED,LOW);
digitalWrite(SolEnable,LOW);
start_button = LOW;
x = 0;
}
while (x > 0){
// while engine not started do
digitalWrite(StartSolLED,HIGH);
digitalWrite(SolEnable, HIGH);
RPMValue = readRPM(); //check RPM, verify on/off
startingLCD(x,StartTimer);
delay (StartTimer);
x = x-1;
digitalWrite(StartSolLED,LOW);
digitalWrite(SolEnable,LOW);
if (RPMValue >= 500){
digitalWrite(StartSolLED,LOW);
digitalWrite(SolEnable,LOW);
start_button = LOW;

54

x = 0;
ThrottleLED = HIGH;
}
delay (1000);
}
}
}

55

Arduino Start Cycle Code v6.0


/* StartEnable Code
// Automated Starter and Throttle Control
// CSMpg Shell Eco Marathon Team New Build
// 04/30/2013 Bill Sekulic, upchuckjun@yahoo.com
// v59 - added multiple start runs
//
removed extraneous code from throttle ramp and start
*/
#include <Servo.h>
Servo throttle_servo;
//analog inputs
int RPM
= A0;
int ThrottlePos
= A1;
float StartTime
= A2;
float ThrottleTime = A3;
//digital pins
// Display Out
= 1;
//not used
int SolEnable
= 2;
int StartLED
= 3;
int StartSolLED
= 4;
int ThrottleLED
= 5;
//int ServoOut
= 6;
// initialized under servo
int Abortpin
= 7;
float RPMpulse
= 9;
int StartEnable
= 10;
//variables
float RPMValue;
float StartTimer;
float ThrottleTimer;
int Throttle_set;
float Throttle_max = 150;
int Throttle_min = 180;
int Throttle_step = 5 ;
int ThrottleDelay = 65;
int Throttleet = 180;
int x;
int Time;
int startdelay = 200;
int state;
int pos;
int start_button;
int Starting = LOW;
int Throttle = LOW;
int Abort = LOW;
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
pinMode(StartLED, OUTPUT);
pinMode(StartSolLED,OUTPUT);
pinMode(SolEnable,OUTPUT);
pinMode(ThrottleLED,OUTPUT);
pinMode(StartTime,INPUT);
pinMode(ThrottleTime,INPUT);

56

pinMode(Abortpin,INPUT_PULLUP);
pinMode(StartEnable, INPUT_PULLUP);
pinMode(RPM,INPUT);
pinMode(RPMpulse,INPUT);
pinMode(ThrottlePos,INPUT);
throttle_servo.attach(6,600,2400); //attach servo to pin6, Set min to 600 Max to 2400
throttle_servo.write(180);
//set throttle servo to 0 throttle reverse logic
//could map, but would need to map every time
setupLCD();
//clear and setup LCD display
splashscreen();
//only show splash screen once on startup
}
// Main Program Loop - Wait for Start, then initiate sequence
void loop() {
Serial.begin(9600);
splashscreen();
Starting = HIGH;
state = 0;
//State 1: Wait for Start Button to be pressed
Starting = digitalRead(StartEnable);
while (Starting == HIGH || RPMValue >=1000){
Starting = digitalRead(StartEnable);
digitalWrite(StartLED,LOW);
delay(150);
StartTimer = readStartTime();
//read Start Timer value
ThrottleTimer = readThrottleTime();//read Throttle Timer value
RPMValue = readRPM();
waitLCD(StartTimer,ThrottleTimer);
}
//State 2: Starting Sequence
while (Starting == LOW || Abort == HIGH) {
//engage starter solenoid for x seconds or until RPM > 100
digitalWrite(StartLED, HIGH);
//turn on start LED
RPMValue = readRPM();
//read RPMS from analog input
StartTimer = readStartTime();
if (RPMValue >= 1000){
digitalWrite(StartSolLED,LOW);
digitalWrite(SolEnable,LOW);
start_button = LOW;
x = 0;
Starting = HIGH;
state = 3;
}
x = 2;
RPMValue = readRPM();
while (x >= 0 || RPMValue <=1000){
// while engine not started do
x = x - 1;
RPMValue = readRPM();
digitalWrite(StartSolLED,HIGH);
digitalWrite(SolEnable, HIGH);
startingLCD(RPMValue,StartTimer);
delay (StartTimer);
digitalWrite(StartSolLED,LOW);
digitalWrite(SolEnable,LOW);
RPMValue = readRPM();

57

state = 3;
if (RPMValue >= 1000 ){
Starting = HIGH;
x = -1;
state = 3;
}
else{
delay (500);
}
}
}
// State 3: Throttle Ramp & Hold
x = Throttle_min - Throttle_step;
Time = ThrottleTimer;
Abort = digitalRead(Abortpin);
while (state == 3 && Time >= 0 && Abort == HIGH ){
digitalWrite(ThrottleLED,HIGH);
Abort = digitalRead(Abortpin);
Time = Time - 100;
delay(100);
throttleLCD(RPMValue,Time);
RPMValue = readRPM();
if (x >= Throttle_max){ //set throttle to x-Throttle_step until max reached
RPMValue = readRPM(); //reverse logic, throttle min is > throttle max
x = x - Throttle_step;
Throttle_set = x ;
throttle_servo.write(Throttle_set);
delay(ThrottleDelay);
}
//
if (Abort == LOW ){
//abort should set throttle to idle on both brakes
abort();
shutdown();
}
}
RPMValue = readRPM(); //reverse logic, throttle min is > throttle max
if(RPMValue >= 1000){
shutdown();
}
}
//Functons for Throttle Control and LCD control
//LCD must be initiallized before use, as flashing prgram causes intermittant
//issues with LCD viewing
void setupLCD(){
Serial.write(0xFE);
Serial.write(0x41); //turn on LCD
Serial.write(0xFE);
Serial.write(0x52); //set contrast
Serial.write(0x40);
Serial.write(0xFE);
Serial.write(0x51); //clear LCD
}
//function Splash Screen
void splashscreen(){
Serial.write(0xFE);
Serial.write(0x41); //turn on LCD

58

Serial.write(0xFE);
Serial.write(0x52); //set contrast
Serial.write(0x40); //set contrast to 40
Serial.write(0xFE);
Serial.write(0x51); //clear LCD
Serial.write(0xFE);
Serial.write(0x46); //set position to first line
Serial.print("Enginerds CSMpg");
Serial.write(0xFE);
Serial.write(0x45); //set position
Serial.write(0x28); //position
Serial.print("AutoStart Sys");
delay (250);
}
//function to print diagnostic info to LCD panel, before starting sequence running
void waitLCD (int StartTimer, int ThrottleTimer){
Serial.write(0xFE);
Serial.write(0x51); //clear LCD
Serial.write(0xFE);
Serial.write(0x46); //set position to first line
Serial.print("Start= ");
Serial.print(StartTimer);
Serial.write(0xFE);
Serial.write(0x45); //set position to Second Line
Serial.write(0x28); //position second line
Serial.print("Th=");
Serial.print(ThrottleTimer);
}
//function to print RPM and Throttle Delay on LCD panel
void startingLCD (float RPMValue,int StartTime){
Serial.write(0xFE);
Serial.write(0x46); //set position to first line
Serial.print("RPM=");
Serial.print(RPMValue);
Serial.write(0xFE);
Serial.write(0x45); //set position
Serial.write(0x28); //position second line
Serial.print("St ");
Serial.print(StartTime);
}
//function to print RPM and Throttle Delay on LCD panel
void throttleLCD(float RPMValue,int x){
Serial.write(0xFE);
Serial.write(0x46); //set position to first line
Serial.print("RPM= ");
Serial.print(RPMValue);
Serial.write(0xFE);
Serial.write(0x45); //set position
Serial.write(0x28); //position second line
Serial.print("Time= ");
Serial.print(x);
}
//function to read RPM and scale
float readRPM(){
float RPMHigh;

59

RPMHigh = pulseIn(9,LOW,100000); // read RPM pulse, one of 6 tape sections


RPMValue = 60*1.5/(RPMHigh/100000) ; //calculate Frequency 6 sections of tape
if (RPMHigh <= 50){
//if RPM is less than 100, RPM = 0
RPMValue = 0;}
//removes noise
return RPMValue;
}
//function to read ThrottleTImer and scale to 0-5 seconds
float readThrottleTime(){
ThrottleTimer = analogRead(ThrottleTime);
ThrottleTimer = 10000*(ThrottleTimer/1024); //integer math to scale to 10 seconds 10000 ms
return ThrottleTimer;
}
//function to read Start Time and scale to 0-5 seconds
float readStartTime(){
StartTimer = analogRead(StartTime);
StartTimer = 1500*(StartTimer/1024); //integer math to scale to 5 seconds, 50000ms
return StartTimer;
}
//function to abort throttle set
void abort(){
throttle_servo.write (Throttle_min);
start_button = LOW;
state =0;
}
//shut off LEDs and ramp throttle to zero - throttle min
void shutdown(){
Starting = HIGH;
digitalWrite(ThrottleLED,LOW);
throttle_servo.write(Throttle_min);
Serial.print("Abort");
state = 0;
Abort = LOW;
}

60

3. Procedure for Operation Auto Start/Throttle System


1.
2.
3.
4.
5.
6.
7.
8.
9.

Driver Auto/Man to Auto.


Driver press Start Button, System should engage in less than 250ms.
Starting LED will light, green LED under left of LCD display.
System will attempt to start engine 3 times or until RPM Value is greater than 1000 RPM.
When starting solenoid is engaged, middle amber LED under LCD display, will light up.
If engine fails to start, RPM < 1000, system will reset and all LEDs will be set low.
If engine starts, Throttle LED will light and ramp will begin.
If at any time during throttle ramp, the brake lever is activated, the abort function will engage.
If abort is engaged, throttle will ramp to idle and the system will reset by clearing all variables and setting all
status LEDs to low.
10. When throttle timer is equal to time, the system will cease to ramp or hold the throttle and reset for next
button press.

4. LCD Display Code


void setupLCD(){
Serial.write(0xFE);
Serial.write(0x41); //turn on LCD
Serial.write(0xFE);
Serial.write(0x52); //set contrast
Serial.write(0x40);
Serial.write(0xFE);
Serial.write(0x51); //clear LCD
}
//function Splash Screen
void splashscreen(){
Serial.write(0xFE);
Serial.write(0x41); //turn on LCD
Serial.write(0xFE);
Serial.write(0x52); //set contrast
Serial.write(0x40); //set contrast to 40
Serial.write(0xFE);
Serial.write(0x51); //clear LCD
Serial.write(0xFE);
Serial.write(0x46); //set position to first line
Serial.print("Enginerds CSMpg");
Serial.write(0xFE);
Serial.write(0x45); //set position
Serial.write(0x28); //position
Serial.print("AutoStart Sys");
delay (250);

61

Appendix C: Mechanical Design

Figure 16: Carbon Fiber Shell

Figure 17: Carbon Fiber Shell Cutaway View

62

Figure 18: Carbon Fiber Shell with Design Intent

Figure 19: Front Structure Initial Design

63

Figure 20: Front Structure Intermediate Design

Figure 21: Front Structure Final Design

64

Figure 22: Final Design SolidWorks Simulation

Appendix D: Steering

Figure 23: Correct Ackermann Steering Principle

65

Figure 24: Rack and Pinion

Table 13: Turn Radius Design Calculation

frontal area at max turn


Radius(m) Wheelbase(m) angle(deg) gained
total
% increase
minimum
6.00
1.00
9.59
3.33
43.33
7.69
5.00
1.00
11.54
4.00
44.00
9.09
4.00
1.00
14.48
5.00
45.00
11.11
3.00
1.00
19.47
6.67
46.67
14.29
4.00
1.00
14.48
5.00
45.00
11.11
4.00
1.25
18.21
6.25
46.25
13.51
4.00
1.50
22.02
7.50
47.50
15.79
4.00
1.75
25.94
8.75
48.75
17.95
4.00
2.00
30.00
10.00
50.00
20.00
old

6.00
3.25

1.63
1.63

15.72
30.00

5.42
10.00

45.42
50.00

11.93
20.00

66

Vous aimerez peut-être aussi