Design Report for Formula SAE Drivetrain F11-77-FSAE 4/19/2012 SIUC FORMULA Racing 2012 Prepared by Saluki Engineering Team #77 Eric Schackmann (Project Manager) Skyler Johnson Dustin Kull Danny Grohmann Aaron Zscheck Kathy Grimes Formula SAE Drivetrain F11-77-FSAE 4/19/12 Design Report for Formula SAE Drivetrain From: Saluki Engineering Company Engineering Resource Center College of Engineering Carbondale, IL 62901 (618)-553-0396 Formula SAE Team #77 Project: F11-77-FSAE Prepared by: Eric Schackmann (Project Manager) Skyler Johnson Dustin Kull Danny Grohmann Aaron Zscheck Kathy Grimes 4/19/201 Transmittal Letter Saluki Engineering Company Southern Illinois University Carbondale College of Engineering - Mailcode 6603 Carbondale, IL 62901-6604 eschack@siu.edu Department of Mechanical Engineering Southern Illinois University Carbondale Carbondale, IL 62901-6603 (618)-453-7031 Dear Dr. A. Weston: On behalf of our team, I would like to thank you for giving us the opportunity to design and build this project. We believe that we have met all of you criteria and you will be satisfied with our work. The racecar built for the 2012 Formula SAE competition includes an optimized intake system made from carbon fiber to reduce weight, an exhaust that has been re-routed to the side of the car and satisfies the noise level requirement, a traction control system, and a digital dashboard display. Items that have also been designed are an oil pan that allows the engine to be mounted lower and a pneumatic shifting apparatus. Thank you again for selecting our team for this project. It was a pleasure working with you. Sincerely, Eric Schackmann Project Manager, Formula SAE Saluki Engineering Company 1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Acknowledgments The Saluki Engineering Company Team 77 would like to sincerely thank the individuals and groups that have helped us on our design of the quarter scale formula one racecar. Dr. Kanchan Mondal from the ME Department for his guidance, expertise, and funding. Dr. Glafkos Galanos, ECE Department Chair, for providing funding that allowed us to complete our project. Tim Attig in the ME Machine Shop for assistance in machining components and use of shop. Center for Advanced Friction Studies for our recognition of our project and funding. Dr. Rasit Koc, ME Department Chair, for his enthusiasm and funding of our project. Dr. Lizette Chevalier, Acting Associate Dean, for her enthusiasm and funding of our project. Dr. Haibo Wang from the ECE Department for assistance in grounding issues of the Arduino. Dr. Alan Weston, Dr. Kay Purcell, and Frances Harackiewicz for their guidance us on a proper senior design project. 2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Table of Contents Transmittal Letter (SJ) 1 Acknowledgements (DG) 2 Executive Summary (AZ) 4 Project Description (ES) 5 Cost Estimates (ES) (SJ) 7 Schedule of Construction (ES) 8 Conclusion and Recommendations (AZ) 9 Appendices Arduino ADK Technical Specifications 1.1 Programming code: Dashboard and traction control (KG) 2.1 Programming code: Shifting (KG) 3.1 FSAE Rules and Regulations 4.1 References 4.5 Subsystem Descriptions Intake Manifold (AZ) A1 Exhaust (ES) B1 Oil Pan (DK) C1 Axles (DK) D1 Shifting Apparatus (DG) E1 Dashboard (KG) F1 Traction Control (SJ) G1 3 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Executive Summary The design outlined in this report pertains to the FSAE drivetrain. The prototype drivetrain was completed in April of 2012. The subsystems included in this project are the intake manifold, exhaust, oil pan, axles, digital dashboard, traction control system, and a pneumatic shifting system. The goal was to increase the airflow through the engine by improving the intake and exhaust efficiency, thus increasing power. We will also be reducing the weight of the axles, lowering the overall weight of the vehicle and the rotating mass that the engine needs to turn. The oil pan design will allow the engine to be placed lower giving a much more ideal center of gravity, allowing for better handling. The traction control system will allow for maximum power transfer to the wheels, and reducing wheel slip giving the driver better control of the vehicle. The pneumatic shifting system is also meant to give the driver better control of the vehicle, with faster shift times and allowing the driver to keep both hands on the wheel at all times. The total cost of the drivetrain system as a prototype is $3,174.92 and there is a breakdown of each of the subsystems in the cost report. The report contains a detailed description of the overall system, a breakdown of each subsystem and its functionality, and a financial report detailing what each subsystem cost. 4 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Project Description The proposed project was to build an improved drivetrain for the SIU Formula SAE Racing racecar. The car is to be entered in the 2012 competition that will be held in May at Michigan Motor Speedway. At last year’s competition, SIUC placed 60th overall. It is the 2012 team’s goal to improve on the design of the racecar to propel us to a Top 25 finish. The racecar built for the 2012 Formula SAE competition includes an optimized intake system, an exhaust that has been re-routed to the side of the car, a traction control system, and a digital dashboard display. Items that have also been designed are an oil pan that allows the engine to be mounted lower and a pneumatic shifting apparatus The intake manifold has been constructed from carbon fiber which is very lightweight and reduces the overall weight of the car. The rerouted exhaust and redesigned oil pan allows the engine to be mounted lower, thus reducing the racecar’s center of gravity. The traction control system reduces power lost due to wheel slip. The digital display gives the driver crucial information about the car’s performance. Lastly, the pneumatic shifting apparatus provides fast, accurate shifts while allowing the driver to keep both hands on the wheel. Upon completion of this project, a fully functional FSAE racecar was built using the drivetrain designed. Our goals, which were to increase the power output of the engine and to improve the overall performance and ergonomics of the vehicle, have been satisfied. 5 6 Cost Estimates The total material costs for the final product are estimated at $3,174.92. Various manufacturing techniques were used to create these products. Cost of Prototype Subsystem Amount Intake $ 266.34 Exhaust $ 575.39 Oil Pan $ 153.92 Axles $ 797.00 Shifting Apparatus $ 656.16 Dashboard $ 366.47 Traction Control $ 359.64 Total $ 3,174.92 Cost to Implement Subsystem Amount Intake $ 266.34 Exhaust $ 583.39 Oil Pan $ 153.92 Axles $ 797.00 Shifting Apparatus $ 663.26 Dashboard $ 75.46 Traction Control $ 359.64 Total $ 2,899.01 7 Schedule of Construction Description Order intake Parts Order Exhaust Parts Order Shifter Parts Order Digital Display Parts Orders Traction Control Parts Machine Aluminum For Intake Cut Pipe and Mandrel Bends to Specification (Exhaust) Machine Components for Shifting Apparatus Assembling Components for Shifting Apparatus Adhere Aluminum Parts Together (Intake) Tack Pipes into place (Exhaust) Lay Carbon Fiber (Intake) Weld Pipes (Exhaust) Attach Slip on Muffler (Exhaust) Tack Pipes into place (Exhaust) Machine Timing Wheels (Traction Control) Write Code (Digital Display) Soldering, Write Code, and mount circuit board (Traction Control) Mount Circuit Board (Digital Display) Adhere Aluminum to Carbon Fiber (Intake) Final Completion Start Stop Date Date 4-Jun 8-Jun 4-Jun 8-Jun 4-Jun 8-Jun 4-Jun 15-Jun 4-Jun 15-Jun 11-Jun 12-Jun 11-Jun 12-Jun 8-Jun 11-Jun 11-Jun 12-Jun 12-Jun 13-Jun 12-Jun 13-Jun 13-Jun 22-Jun 13-Jun 14-Jun 14-Jun 14-Jun 15-Jun 18-Jun 15-Jun 18-Jun 18-Jun 19-Jun 18-Jun 19-Jun 19-Jun 19-Jun 22-Jun 23-Jun 23-Jun Time and Dates are based on a 40 hour work week. Any system that is not accounted for did not present sufficient data for schedule 7 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Conclusion and Recommendations Many of the engineering problems encountered were due to fitting components within the frame. The frame was not completely designed when work began on this project, nor did we have a complete rendering of the engine to accompany the model of the frame. This caused a problem because the frame fits so tightly around the engine and the driver, and not all the systems had enough room to fit in the confined space. The pneumatic shifting system was unable to fit on the car because the cylinders could not fit on the engine. The initial intake manifold and the dashboard display had to be modified to fit within the space allowed by the frame. For the electrical systems on the traction control, shifting system and the dash board display we would have used printed circuit boards if we had more time. The printed circuit boards are easier to solder and look much more professional. In addition, given more time on the Arduino board, we would have developed a better filtering circuit to eliminate noise issues as the board inputs are extremely sensitive. We could use the opto-isolators to protect the board from spikes in voltage that could destroy the board. Another problem with the Arduino board is that it is currently powered by a small 9V battery that is not secured very well. We see now that it would be better to have wired it to the vehicle battery. We did run into some problems with designing the axles. This problem came from the fact we were reusing the hubs from last year, which limited what we could do as far as the diameter of the axles. This and our inability to hollow the axles were due to limited funding. 9 Appendices Arduino ADK[1] Arduino ADK R3 Front Arduino ADK R3 Back Arduino ADK Front Arduino ADK Back Overview The Arduino ADK is a microcontroller board based on the ATmega2560 (datasheet). It has a USB host interface to connect with Android based phones, based on the MAX3421e IC. It has 54 digital input/output pins (of which 14 can be used as PWM outputs), 16 analog inputs, 4 UARTs (hardware serial ports), a 16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button. The ADK is based on the Mega 2560. 1.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Similar to the Mega 2560 and Uno, it features an ATmega8U2 programmed as a USB-to-serial converter. Revision 2 of the MegaADK board has a resistor pulling the 8U2 HWB line to ground, making it easier to put into DFU mode. Revision 3 of the board has the following new features: 1.0 pinout: added SDA and SCL pins that are near to the AREF pin and two other new pins placed near to the RESET pin, the IOREF that allow the shields to adapt to the voltage provided from the board. In future, shields will be compatible both with the board that use the AVR, which operate with 5V and with the Arduino Due that operate with 3.3V. The second one is a not connected pin that is reserved for future purposes. Stronger RESET circuit. For information on using the board with the Android OS, see Google's ADK documentation. Schematic, Reference Design & Pin Mapping EAGLE files: Arduino_ADK-Mega_2560-Rev3-reference-design.zip Schematic: Arduino ADK_Mega_2560-schematic.pdf Pin Mapping: PinMap2560 page Summary Microcontroller ATmega2560 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V Digital I/O Pins 54 (of which 14 provide PWM output) Analog Input Pins 16 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 256 KB of which 8 KB used by bootloader SRAM 8 KB EEPROM 4 KB Clock Speed 16 MHz 1.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Power The Arduino ADK can be powered via the USB connection or with an external power supply. The power source is selected automatically. External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery can be inserted in the Gnd and Vin pin headers of the POWER connector. NB: Because the ADK is a USB Host, the phone will attempt to draw power from it when it needs to charge. When the ADK is powered over USB, 500mA total is available for the phone and board.The external power regulator can supply up to 1500mA. 750mA is available for the phone and ADK board. An additional 750mA is allocated for any actuators and sensors attached to the board. A power supply must be capable of providing 1.5A to use this much current. The board can operate on an external supply of 5.5 to 16 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts. The power pins are as follows: VIN. The input voltage to the Arduino board when it's using an external power source (as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin. 5V. This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can damage your board. We don't advise it. 3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA. GND. Ground pins. Memory The ADK has 256 KB of flash memory for storing code (of which 8 KB is used for the bootloader), 8 KB of SRAM and 4 KB of EEPROM (which can be read and written with the EEPROM library). Input and Output Each of the 50 digital pins on the ADK can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 volts. Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions: 1.3 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip. External Interrupts: 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19 (interrupt 4), 20 (interrupt 3), and 21 (interrupt 2). These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details. PWM: 0 to 13. Provide 8-bit PWM output with the analogWrite() function. SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). These pins support SPI communication using the SPI library. The SPI pins are also broken out on the ICSP header, which is physically compatible with the Uno, Duemilanove and Diecimila. USB Host: MAX3421E. The MAX3421E communicate with Arduino with the SPI bus. So it uses the following pins: o Digital: 7 (RST), 50 (MISO), 51 (MOSI), 52 (SCK). NB:Please do not use Digital pin 7 as input or output because is used in the communication with MAX3421E o Non broken out on headers: PJ3 (GP_MAX), PJ6 (INT_MAX), PH7 (SS). LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off. TWI: 20 (SDA) and 21 (SCL). Support TWI communication using the Wire library. Note that these pins are not in the same location as the TWI pins on the Duemilanove or Diecimila. The ADK has 16 analog inputs, each of which provide 10 bits of resolution (i.e. 1024 different values). By default they measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and analogReference() function. There are a couple of other pins on the board: AREF. Reference voltage for the analog inputs. Used with analogReference(). Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which block the one on the board. Communication The Arduino ADK has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega2560 provides four hardware UARTs for TTL (5V) serial communication. An ATmega8U2 on the board channels one of these over USB and provides a virtual com port to software on the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega8U2/16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1). A SoftwareSerial library allows for serial communication on any of the ADK's digital pins. 1.4 The ATmega2560 also supports TWI and SPI communication. The Arduino software includes a Wire library to simplify use of the TWI bus; see the Wire library for details. For SPI communication, use the SPI library. The USB host interface given by MAX3421E IC allows the ADK Arduino to connect and interact to any type of device that have a USB port. For example, allows you to interact with many types of phones, controlling Canon cameras, interfacing with keyboard, mouse and games controllers as Wiimote and PS3. Programming The Arduino ADK can be programmed with the Arduino software (download). For details, see the reference and tutorials. The ATmega2560 on the Arduino ADK comes preburned with a bootloader (the same on Mega 2560) that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the original STK500v2 protocol (reference, C header files). You can also bypass the bootloader and program the microcontroller through the ICSP (InCircuit Serial Programming) header; see these instructions for details. The ATmega8U2 firmware source code is available in the Arduino repository. The ATmega8U2 is loaded with a DFU bootloader, which can be activated by: On Rev1 boards: connecting the solder jumper on the back of the board (near the map of Italy) and then resetting the 8U2. On Rev2 or later boards: there is a resistor that pulling the 8U2/16U2 HWB line to ground, making it easier to put into DFU mode. You can then use Atmel's FLIP software (Windows) or the DFU programmer (Mac OS X and Linux) to load a new firmware. Or you can use the ISP header with an external programmer (overwriting the DFU bootloader). See this user-contributed tutorial for more information. Automatic (Software) Reset Rather than requiring a physical press of the reset button before an upload, the Arduino ADK is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the ATmega8U2 is connected to the reset line of the ATmega2560 via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload. This setup has other implications. When the ADK is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the ADK. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. If a sketch running on the board receives one-time configuration or other data when it first starts, make sure that the software with which it communicates waits a second after opening the connection and before sending this data. 10 The ADK contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details. USB Overcurrent Protection The Arduino ADK has a resettable polyfuse that protects your computer's USB ports from shorts and overcurrent. Although most computers provide their own internal protection, the fuse provides an extra layer of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection until the short or overload is removed. Physical Characteristics and Shield Compatibility The maximum length and width of the ADK PCB are 4 and 2.1 inches respectively, with the USB connector and power jack extending beyond the former dimension. Three screw holes allow the board to be attached to a surface or case. Note that the distance between digital pins 7 and 8 is 160 mil (0.16"), not an even multiple of the 100 mil spacing of the other pins. The ADK is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and ICSP header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). SPI is available through the ICSP header on both the ADK and Duemilanove / Diecimila. Please note that I2C is not located on the same pins on the ADK (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5). 10 Programming Code: Dashboard display and traction control #include <stdio.h> //constant pin input and outputs const double Analog_Tachometer = 14; // inputs voltage level which tells the RPM const int pin_T0 = 15; // output Aqua LEDs - 10000 - 10999 rpm const int pin_T1 = 16; // output Green LEDs - 11000 - 11999 rpm const int pin_T2 = 17; // output Orange LEDs - 12000 - infinity rpm const int pin_S0 = 19; // output A - Bit 0 of 16 seg display 1 of ticksRev const int pin_S1 = 20; // output B - Bit 1 of 16 seg display 1 of ticksRev const int pin_S2 = 21; // output C - Bit 2 of 16 seg display 1 of ticksRev const int pin_S3 = 22; // output D - Bit 3 of 16 seg display 1 of ticksRev const int pin_S4 = 23; // output A - Bit 0 of 16 seg display 2 of ticksRev const int pin_S5 = 24; // output B - Bit 1 of 16 seg display 2 of ticksRev const int pin_S6 = 25; // output C - Bit 2 of 16 seg display 2 of ticksRev const int pin_S7 = 26; // output D - Bit 3 of 16 seg display 2 of ticksRev const int ticksRev1 = 27; // inputs a high if hits a tick on front wheel left const int ticksRev2 = 28; // inputs a high if hits a tick on front wheel right const int ticksRev3 = 39; // inputs a high if hits a tick on rear wheel left const int ticksRev4 = 40; // inputs a high if hits a tick on rear wheel right const double Analog_Gear1 = 29; //inputs which gear it is in const int pin_G0 = 30; // output A - Bit 0 of 16 seg display Gear const int pin_G1 = 31; // output B - Bit 1 of 16 seg display Gear const int pin_G2 = 32; // output C - Bit 2 of 16 seg display Gear const int pin_G3 = 33; // output D - Bit 3 of 16 seg display Gear const int pin_G4 = 34; // output wire to High for Neutral (the \ part of the N) of the 16 seg display Gear const int Warn1 = 35; // input of oil warning const int Warn2 = 36; //input of coolant warning const int pin_Warn1 = 37; //output flashing heat warning const int pin_Warn2 = 38; //output flashing Pressure cool warning //variables for things that are not input or outputs double anTach = 0.0; int digTicksRev = 0; double anGear1 = 0.0; int warnOil = 0; int warnCoolant = 0; int MPH = 0; int t1 = 0; //Sensing period int t2 = 0; int t3 = 0; int t4 = 0; double N_t1 = 0.0; //ticks per period double N_t2 = 0.0; 2.1 double N_t3 = 0.0; double N_t4 = 0.0; int P = 20; // number of teeth per rotation = 20 double B = 0.0; //Wheel rotation in one period double n = 0.0; //rotations per second double w = 0.0; //radians per second double r = 9.75; //radius of wheel = 9.75 inches double v = 0.0; // velocity of wheel feet per second double v_rr = 0.0; //rear right wheel double v_rl = 0.0; //rear left wheel double v_fr = 0.0; //front right double v_fl = 0.0; // front left void setup() { pinMode(pin_T0, OUTPUT); pinMode(pin_T1, OUTPUT); pinMode(pin_T2, OUTPUT); pinMode(pin_S0, OUTPUT); pinMode(pin_S1, OUTPUT); pinMode(pin_S2, OUTPUT); pinMode(pin_S3, OUTPUT); pinMode(pin_S4, OUTPUT); pinMode(pin_S5, OUTPUT); pinMode(pin_S6, OUTPUT); pinMode(pin_S7, OUTPUT); pinMode(pin_G0, OUTPUT); pinMode(pin_G1, OUTPUT); pinMode(pin_G2, OUTPUT); pinMode(pin_G3, OUTPUT); pinMode(pin_G4, OUTPUT); pinMode(pin_Warn1, OUTPUT); pinMode(pin_Warn2, OUTPUT); pinMode(Analog_Tachometer, INPUT); pinMode(ticksRev1, INPUT); pinMode(ticksRev2, INPUT); pinMode(Analog_Gear1, INPUT); pinMode(Warn1, INPUT); pinMode(Warn2, INPUT); Serial.begin(115200); //baud rate set to max } //All Functions-----------------------------------------------------//ticks and time to speed double v_ftsec(double N_t, int T_o) { 2.2 int P = 20; double pi = 3.14159265359; double r = 9.75; B = N_t/P; n = B/T_o; w = n*2*pi; v = w*r; //for each wheel return v; } //function to change the analog voltage to a number //Depend on input voltage and what the total voltage it could int ana_to_dig(double ana, int anaVoltTotal, double mult) { int digi = 0; //formula to change to a digital number is (mult)*ana/anaVoltTotal digi = (mult)*ana/anaVoltTotal; return digi; } //dec to binary char *dectoBinary(int dec) { int c, d, count; char *pointer; count = 0; pointer = (char*)malloc(4+1); if( pointer == NULL ) { exit(1); } for(c= 3; c>= 0; c--) { d = dec>>c; if( d & 1) { *(pointer + count) = 1 + '0'; } else { *(pointer + count) = '\0'; } count++; } *(pointer+count) = '\0'; return pointer; 2.3 } //Warning lights (when to turn on) void flash_warn(int whichWarn) { if(whichWarn==0) { digitalWrite(pin_Warn1, HIGH); delay(150); digitalWrite(pin_Warn1, LOW); } else if(whichWarn == 1) { digitalWrite(pin_Warn2, HIGH); delay(150); digitalWrite(pin_Warn2, LOW); } else if(whichWarn == 2) { digitalWrite(pin_Warn1, HIGH); digitalWrite(pin_Warn2, HIGH); delay(150); digitalWrite(pin_Warn1, LOW); digitalWrite(pin_Warn2, LOW); } else { digitalWrite(pin_Warn1, LOW); digitalWrite(pin_Warn2, LOW); } } //End Function Group-------------------------------------------------void loop() { N_t1 = analogRead(ticksRev1); N_t2 = analogRead(ticksRev2); N_t3 = analogRead(ticksRev3); N_t4 = analogRead(ticksRev4); double ticksRev = (N_t1 + N_t2) / 2; anTach = analogRead(Analog_Tachometer); digTicksRev = digitalRead(ticksRev); anGear1 = analogRead(Analog_Gear1); warnOil = digitalRead(Warn1); warnCoolant = digitalRead(Warn2); //SKYLER INFO //digtickscount = number of ticks in 1 second int millisTickstart = millis(); int digtickscount = 0; 2.4 while ((millis() - millisTickstart) < 1000) { if (digTicksRev == HIGH) { digtickscount++; } } //Traction Control System /*P = 20; // number of teeth per rotation = 20 B //Wheel rotation in one period n //rotations per second w //radians per second r //radius of wheel = 9.75 inches v // velocity of wheel feet per second */ // actual speed of car v_av = (v_fr + v_fl)/2 // choose fastest rear wheel v_r if (v_rr > v_rl){ vr = v_rr } else { vr = v_rl; } // calculating slip s = vr - v_av; // if v_av < 10 & s > 3 // output 1 // if v_av >10 & s > 3 // output 2 //Digital Speed Portion double MPH_with20 = v_av*.6818181818; MPH = round(MPH_with20); //Serial.write("the output is %d", MPH); 2.5 char *pointer1; char *pointer10; int place_1 = MPH % 10; int place_10 = MPH/10; pointer10 = dectoBinary(place_10); pointer1 = dectoBinary(place_1); digitalWrite(pin_S0,(int)pointer1[3]); digitalWrite(pin_S1,(int)pointer1[2]); digitalWrite(pin_S2,(int)pointer1[1]); digitalWrite(pin_S3,(int)pointer1[0]); digitalWrite(pin_S4,(int)pointer10[3]); digitalWrite(pin_S5,(int)pointer10[2]); digitalWrite(pin_S6,(int)pointer10[1]); digitalWrite(pin_S7,(int)pointer10[0]); //End Digital Speed Portion //Begin Gear Portion char * pointerGear; int Gear = ana_to_dig(Analog_Gear1, 5, 2); switch(Gear) { case 2: digitalWrite(pin_G0,LOW); digitalWrite(pin_G1,LOW); digitalWrite(pin_G2,LOW); digitalWrite(pin_G3,LOW); digitalWrite(pin_G4, HIGH); break; default : pointerGear = dectoBinary(Gear); digitalWrite(pin_G0,(int)pointerGear[3]); digitalWrite(pin_G1,(int)pointerGear[2]); digitalWrite(pin_G2,(int)pointerGear[1]); digitalWrite(pin_G3,(int)pointerGear[0]); digitalWrite(pin_G4, LOW); } //End Gear Portion //Warning/Dummy Lights int warn = 3; if ((warnOil == HIGH) && (warnCoolant == HIGH)) { warn = 2; } else if((warnOil == HIGH) && (warnCoolant == LOW)) { 2.6 warn = 1; } else if((warnOil == LOW) && (warnCoolant == HIGH)) { warn = 0; } else { warn = 3; } flash_warn(warn); //End Warning/Dummy Lights //Begin RPM long Tach = ana_to_dig(Analog_Tachometer, 5, 3000); if (Tach<10000) { digitalWrite(pin_T0, LOW); digitalWrite(pin_T1, LOW); digitalWrite(pin_T2, LOW); } else if((Tach>=10000) &&(Tach<11000)) { digitalWrite(pin_T0, HIGH); digitalWrite(pin_T1, LOW); digitalWrite(pin_T2, LOW); }else if((Tach>=11000) &&(Tach<12000)) { digitalWrite(pin_T0, HIGH); digitalWrite(pin_T1, HIGH); digitalWrite(pin_T2, LOW); }else if(Tach>=12000) { digitalWrite(pin_T0, HIGH); digitalWrite(pin_T1, HIGH); digitalWrite(pin_T2, HIGH); } //End RPM } //EOF keep to run file properly 2.7 Programming Code: Shifting const int button_ShiftDown1 = 23; // the pin that the pushbutton is attached to const int pin_SDS = 22; // SDS const int button_SlowClutch1 = 35; const int button_Clutch1 = 31; const int pin_Cex = 30; const int pin_Cin = 34; const int button_Upshift1 = 27; const int pin_sigIgnCut = 24; const int pin_Upshift = 26; //const int button_Neutral1 = 13; // Variables int button_ShiftDown = 0; int button_SlowClutch = 0; int button_Clutch = 0; int button_Upshift = 0; //int button_Neutral = 0; int prevbutton_ShiftDown = 0; // previous state of the button int prevbutton_Upshift = 0; //int prevbutton_Neutral = 0; int prevbutton_Clutch = 0; int prevbutton_SlowClutch = 0; boolean ShD = 'FALSE'; boolean NeT = 'FALSE'; boolean ClT = 'FALSE'; boolean SlC = 'FALSE'; boolean UpS = 'FALSE'; //NEEDED FOR DEBOUNCING BUTTONS DUE TO NOISE/EXCESS VIBRATION long time_start_ShiftDown = 0; // the last time the output pin was toggled long time_start_SlowClutch = 0; // the last time the output pin was toggled long time_start_Clutch = 0; // the last time the output pin was toggled long time_start_Neutral = 0; // the last time the output pin was toggled long time_start_Upshift = 0; // the last time the output pin was toggled long on_time_req = 60; // the debounce time; increase if the output flickers void setup() { pinMode(button_ShiftDown1, INPUT); pinMode(button_SlowClutch1, INPUT); pinMode(button_Upshift1, INPUT); //pinMode(button_Neutral1, INPUT); pinMode(button_Clutch1, INPUT); pinMode(pin_SDS, OUTPUT); 3.1 pinMode(pin_Cex, OUTPUT); pinMode(pin_Cin, OUTPUT); pinMode(pin_sigIgnCut, OUTPUT); pinMode(pin_Upshift, OUTPUT); //pinMode(pin_Downshift, OUTPUT); //ONLY NON PNEUMATIC Serial.begin(115200); //baud rate set to max } void clutch() { digitalWrite(pin_Cin, HIGH); digitalWrite(pin_Cex, HIGH); Serial.write("Clutch"); } void slowClutch() { for(int i = 0; i<1075; i+=60) { digitalWrite(pin_Cin, LOW); digitalWrite(pin_Cex, HIGH); delay(30); digitalWrite(pin_Cex, LOW); delay(30); } Serial.write("\nslow clutch"); clutch(); } void shiftDown() { digitalWrite(pin_Cin, HIGH); digitalWrite(pin_Cex, HIGH); delay(170); digitalWrite(pin_SDS, HIGH); delay(30); digitalWrite(pin_SDS, LOW); delay(50); digitalWrite(pin_Cin, LOW); digitalWrite(pin_Cex, LOW); Serial.write("\nshift down"); } void upShift() { digitalWrite(pin_sigIgnCut, HIGH); Serial.write("ECU = 1"); delay(60); digitalWrite(pin_sigIgnCut, LOW); 3.1 Serial.write("ECU = 0"); digitalWrite(pin_Upshift, HIGH); delay(30); digitalWrite(pin_Upshift, LOW); Serial.write("\nupshift"); } /* void neutral() { digitalWrite(pin_sigIgnCut, HIGH); delay(2000); digitalWrite(pin_Upshift, HIGH); digitalWrite(pin_sigIgnCut, LOW); delay(10); digitalWrite(pin_Upshift, LOW); Serial.write("\nneutral"); } */ void loop() { int reading_ShiftDown = digitalRead(button_ShiftDown1); int reading_Clutch = digitalRead(button_Clutch1); int reading_SlowClutch = digitalRead(button_SlowClutch1); int reading_Upshift = digitalRead(button_Upshift1); //int reading_Neutral = digitalRead(button_Neutral1); //Clutch debounce if (reading_Clutch != prevbutton_Clutch) { Serial.write("\nClutch activated"); int readClutch[30] = {}; readClutch[0] = reading_Clutch; int output = 1; for (int i = 1; i <on_time_req; i++) { readClutch[i] = digitalRead(button_Clutch1); delay(2); if ((output == readClutch[i]) && (output == 1)) { output = 1; } else { output = 0; } } if (output == 1) { digitalWrite(button_Clutch, HIGH); } button_Clutch = output; Serial.write("\nbutton_Clutch = "); Serial.println(button_Clutch, 2); 3.1 } //SlowClutch debounce if (reading_SlowClutch != prevbutton_SlowClutch) { Serial.write("\nSlowClutch activated"); int readSlowClutch[30] = {}; readSlowClutch[0] = reading_SlowClutch; int output = 1; for (int i = 1; i <on_time_req; i++) { readSlowClutch[i] = digitalRead(button_SlowClutch1); delay(2); if ((output == readSlowClutch[i]) && (output == 1)) { output = 1; } else { output = 0; } } if (output == 1) { digitalWrite(button_SlowClutch, HIGH); } button_SlowClutch = output; Serial.write("\nbutton_SlowClutch = "); Serial.println(button_SlowClutch, 2); } //Upshift debounce if (reading_Upshift != prevbutton_Upshift) { Serial.write("\nUpshift activated"); int readUpshift[30] = {}; readUpshift[0] = reading_Upshift; int output = 1; for (int i = 1; i <on_time_req; i++) { readUpshift[i] = digitalRead(button_Upshift1); delay(2); if ((output == readUpshift[i]) && (output == 1)) { output = 1; } else { output = 0; } } if (output == 1) { digitalWrite(button_Upshift, HIGH); } button_Upshift = output; Serial.write("\nbutton_Upshift = "); 3.1 Serial.println(button_Upshift, 2); } //ShiftDown debounce if (reading_ShiftDown != prevbutton_ShiftDown) { Serial.write("\nShiftDown activated"); int readShiftDown[30] = {}; readShiftDown[0] = reading_ShiftDown; int output = 1; for (int i = 1; i <on_time_req; i++) { readShiftDown[i] = digitalRead(button_ShiftDown1); delay(2); if ((output == readShiftDown[i]) && (output == 1)) { output = 1; } else { output = 0; } } if (output == 1) { digitalWrite(button_ShiftDown, HIGH); } button_ShiftDown = output; Serial.write("\nbutton_ShiftDown = "); Serial.println(button_ShiftDown, 2); } UpS = (prevbutton_Upshift != button_Upshift); ClT = (prevbutton_Clutch != button_Clutch); //NeT = (prevbutton_Neutral != button_Neutral); SlC = (prevbutton_SlowClutch != button_SlowClutch); ShD = (prevbutton_ShiftDown != button_ShiftDown); if(button_Clutch == HIGH) { clutch(); button_ShiftDown = digitalRead(button_ShiftDown1); if (button_ShiftDown == HIGH) { digitalWrite(pin_SDS, HIGH); delay(50); digitalWrite(pin_SDS, LOW); } }else if((button_Clutch == LOW)&&(button_SlowClutch == HIGH)) { slowClutch(); 3.1 digitalWrite(pin_SDS, LOW); while(true){ digitalWrite(pin_Cex, HIGH); digitalWrite(pin_Cin, LOW); button_Clutch = digitalRead(button_Clutch1); if (button_Clutch == HIGH) { break; } } }else if((button_Clutch == LOW)&&(button_SlowClutch == LOW) && (button_ShiftDown == HIGH) && ShD) { shiftDown(); }else { digitalWrite(pin_Cin, LOW); digitalWrite(pin_Cex, LOW); digitalWrite(pin_SDS, LOW); } if((button_Upshift == HIGH) && UpS) { upShift(); } /* if((button_Upshift == HIGH) && (button_Neutral == HIGH) && NeT) { neutral(); }else if((button_Upshift == HIGH) && (button_Neutral == LOW) && UpS) { upShift(); }else if((button_Upshift == LOW) && (button_Neutral == HIGH) && NeT) { neutral(); }else if((button_Upshift == LOW) && (button_Neutral == LOW)) { }*/ prevbutton_ShiftDown = button_ShiftDown; prevbutton_Upshift = button_Upshift; //prevbutton_Neutral = reading_Neutral; prevbutton_Clutch = button_Clutch; prevbutton_SlowClutch = button_SlowClutch; } //EOF ALWAYS LEAVE THIS SPACE 3.1 FSAE Rules and Regulations[2] Rules and Regulations For Intake [FS] B8.4 Air Intake System B8.4.1 Air Intake System Location All parts of the engine air and fuel control systems (including the throttle or carburetor, and the complete air intake system, including the air cleaner and any air boxes) must lie within the surface defined by the top of the roll bar and the outside edge of the four tires. (See Figure below). B8.4.2 Any portion of the air intake system that is less than 350 mm (13.8 in) above the ground must be shielded from side or rear impact collisions by structure built to Rule B3.24 or B.3.31 as applicable. Surface Envelope B8.4.3 Intake Manifold – The intake manifold must be securely attached to the engine block or cylinder head with brackets and mechanical fasteners. This precludes the use of hose clamps, plastic ties, or safety wires. The use of rubber bushings or hose is acceptable for creating and sealing air passages, but is not considered a structural attachment. B8.4.4 Intake systems with significant mass or cantilever from the cylinder head must be supported to prevent stress to the intake system. Supports to the engine must be rigid. Supports to the frame or chassis must incorporate some isolation to allow for engine movement and chassis flex. 4.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 B8.5 Throttle and Throttle Actuation B8.5.1 Carburetor/Throttle Body The car must be equipped with a carburetor or throttle body. The carburetor or throttle body may be of any size or design. B8.5.2 Throttle Actuation The throttle must be actuated mechanically, i.e., via a cable or a rod system. The use of electronic throttle control (ETC) or “drive-by-wire” is prohibited. B8.5.3 The throttle cable or rod must have smooth operation, and must not have the possibility of binding or sticking. B8.5.4 The throttle actuation system must use at least two (2) return springs located at the throttle body, so that the failure of any component of the throttle system will not prevent the throttle returning to the closed position. Note: Throttle Position Sensors (TPS) are NOT acceptable as return springs. B8.5.5 Throttle cables must be at least 50.8 mm (2 in) from any exhaust system component and out of the exhaust stream. B8.5.6 A positive pedal stop must be incorporated on the throttle pedal to prevent over stressing the throttle cable or actuation system. B8.6 Intake System Restrictor B8.6.1 In order to limit the power capability from the engine, a single circular restrictor must be placed in the intake system between the throttle and the engine and all engine airflow must pass through the restrictor. B8.6.2 Any device that has the ability to throttle the engine downstream of the restrictor is prohibited. B8.6.3 The maximum restrictor diameters are: - Gasoline fueled cars – 20.0 mm (0.7874 in) - E-85 fueled cars – 19.0 mm (0.7480 in) B8.6.4 The restrictor must be located to facilitate measurement during the inspection process. B8.6.5 The circular restricting cross section may NOT be movable or flexible in any way, e.g. the restrictor may not be part of the movable portion of a barrel throttle body. B8.6.6 If more than one engine is used, the intake air for all engines must pass through the one restrictor Rules and Regulations-Drivetrain [FS] B8.12 Transmission and Drive Any transmission and drivetrain may be used. B8.13 Drive Train Shields and Guards B8.13.1 Exposed high-speed final drivetrain equipment such as Continuously Variable Transmissions (CVTs), sprockets, gears, pulleys, torque converters, clutches, belt drives and clutch drives, must be fitted with scatter shields in case of failure. The final drivetrain shield must cover the chain or belt from the drive sprocket to the driven sprocket/chain wheel/belt or pulley. The final drivetrain shield must end parallel to the lowest point of the chain wheel/belt/pulley. (See figure below) Body panels or other existing covers are not acceptable unless constructed from approved materials per B8.13.3 or B8.13.4. Comment: Scatter shields are intended to contain drivetrain parts which might separate from the car. 4.2 Percent Male with Helmet B8.13.2 Perforated material may not be used for the construction of scatter shields. B8.13.3 Chain Drive - Scatter shields for chains must be made of at least 2.66 mm (0.105 in) steel (no alternatives are allowed), and have a minimum width equal to three (3) times the width of the chain. The guard must be centered on the centerline of the chain and remain aligned with the chain under all conditions. B8.13.4 Non-metallic Belt Drive - Scatter shields for belts must be made from at least 3.0 mm (0.120 in) Aluminum Alloy 6061-T6, and have a minimum width that is equal to 1.7 times the width of the belt. The guard must be centered on the centerline of the belt and remain aligned with the belt under all conditions. B8.13.5 Attachment Fasteners - All fasteners attaching scatter shields and guards must be a minimum 6 mm Metric Grade 8.8 (1/4 in SAE Grade 5) or stronger. B8.13.6 Finger Guards – Finger guards are required to cover any drivetrain parts that spin while the car is stationary with the engine running. Finger guards may be made of lighter material, sufficient to resist finger forces. Mesh or perforated material may be used but must prevent the passage of a 12 mm (1/2 in) diameter object through the guard. Comment: Finger guards are intended to prevent finger intrusion into rotating equipment while the vehicle is at rest. Rules and Regulations for Exhaust [FS] ARTICLE 10: EXHAUST SYSTEM AND NOISE CONTROL B10.1 Exhaust System General B10.1.1 Exhaust Outlet The exhaust must be routed so that the driver is not subjected to fumes at any speed considering the draft of the car. B10.1.2 The exhaust outlet(s) must not extend more than 45 cm (17.7 in) behind the centerline of the rear axle, and shall be no more than 60 cm (23.6 in) above the ground. 4.3 B10.1.3 Any exhaust components (headers, mufflers, etc.) that protrude from the side of the body in front of the main roll hoop must be shielded to prevent contact by persons approaching the car or a driver exiting the car. B10.2 Noise Measuring Procedure B10.2.1 The sound level will be measured during a static test. Measurements will be made with a free-field microphone placed free from obstructions at the exhaust outlet level, 0.5 m (19.68 in) from the end of the exhaust outlet, at an angle of forty-five degrees (45°) with the outlet in the horizontal plane. The test will be run with the gearbox in neutral at the engine speed defined below. Where more than one exhaust outlet is present, the test will be repeated for each exhaust and the highest reading will be used. B10.2.2 The car must be compliant at all engine speeds up to the test speed defined below. B10.2.3 If the exhaust has any form of movable tuning or throttling device or system, it must be compliant with the device or system in all positions. The position of the device must be visible to the officials for the noise test and must be manually operable by the officials during the noise test. B10.2.4 Test Speeds The test speed for a given engine will be the engine speed that corresponds to an average piston speed of 914.4 m/min (3,000 ft/min) for automotive or motorcycle engines, and 731.5 m/min (2,400 ft/min) for “industrial engines”. The calculated speed will be rounded to the nearest 500 rpm. The test speeds for typical engines will be published by the organizers. An “industrial engine” is defined as an engine which, according to the manufacturers’ specifications and without the required restrictor, is not capable of producing more than 5 hp per 100cc. To have an engine classified as “an industrial engine”, approval must be obtained from organizers prior to the Competition. B10.3 Maximum Sound Level The maximum permitted sound level is 110 dBA, fast weighting. B10.4 Noise Level Re-testing At the option of the officials, noise can be measured at any time during the competition. If a car fails the noise test, it will be withheld from the competition until it has been modified and repasses the noise test. Rules and Regulations for Shifting Apparatus ARTICLE 13: COMPRESSED GAS SYSTEMS AND HIGH PRESSURE HYDRAULICS B13.1 Compressed Gas Cylinders and Lines Any system on the vehicle that uses a compressed gas as an actuating medium must comply with the following requirements: a. Working Gas-The working gas must be nonflammable, e.g. air, nitrogen, carbon dioxide. b. Cylinder Certification- The gas cylinder/tank must be of proprietary manufacture, designed and built for the pressure being used, certified by an accredited testing laboratory in the country of its origin, and labeled or stamped appropriately. c. Pressure Regulation-The pressure regulator must be mounted directly onto the gas cylinder/tank. d. Protection – The gas cylinder/tank and lines must be protected from rollover, collision from any direction, or damage resulting from the failure of rotating equipment. 4.4 Formula SAE Drivetrain F11-77-FSAE 4/19/12 e. Cylinder Location- The gas cylinder/tank and the pressure regulator must be located either rearward of the Main Roll Hoop and within the envelope defined by the Main Roll Hoop and the Frame (see B3.2), or in a structural side-pod. In either case it must be protected by structure that meets the requirements of B3.24 or B3.31. It must not be located in the cockpit. f. Cylinder Mounting- The gas cylinder/tank must be securely mounted to the Frame, engine or transmission. g. Cylinder Axis- The axis of the gas cylinder/tank must not point at the driver. h. Insulation- The gas cylinder/tank must be insulated from any heat sources, e.g. the exhaust system. i. Lines and Fittings- The gas lines and fittings must be appropriate for the maximum possible operating pressure of the system References [1] http://arduino.cc/en/Main/ArduinoBoardADK [2] 2012 Formula SAE Rules: SAE International 2012 4.5 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Subsystem: Intake Manifold Table of Contents Functional Description A1 Parts List A1 Prototype Cost List A2 Implementation Cost List A2 Time to Build A3 Fault Analysis A3 Appendix Drawing A1 Injector holder A1.1 Drawing A2 Manifold A1.2 Drawing A3 Runner base A1.3 Table A1 Pre-design table A2.1 Table A2 Pre-design A2.1 Table A3 Pressure drop table A2.2 References A3.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Functional Description The intake manifold allows the engine to breathe. It needs to flow air efficiently through a 20mm restrictor. Tuning this and the exhaust manifold together will help overall power produced by the engine. I have calculated the runner lengths, length and diameter of the inlet, and volume of the manifold using the equations in table A1, A2, and A3. The equations used are [1]: 4 ∗ tan( 𝜔𝐿1 ) 𝑎 𝐴2 𝜔𝐿2 𝜔𝑉 ∗ cot( )− 𝐴1 𝑎 𝑎𝐴1 Setting theses equations equal to each other gives the rest of the dimensions needed to complete the intake. Using these dimensions and working around the frame, an intake model was made. This is in drawing A2 below. The runner bases were designed to fit in the rubber grommets already on the engine while allowing the injector spay to atomize; the runner bases and the injector seat is shown in drawings A1 and A3. The manifold design was then verified in ANSYS Fluent using pressure drops that occur at the valve when they open (see table A1). Parts List SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Parts List- Intake # 1 2 3 4 5 6 Item Runner Base Injector Seat Aluminum Epoxy Manifold Top Manifold Bottom Aluminum to Carbon Epoxy Company Speedy Metals Speedy Metals Aremco US Composits US Composits MSC Part # 805 FG-CFT5750 FG-CFT5750 611905 Qty 4 1 1 1 1 1 Speedy Metals [2] Aremco[3] US Composits [4] A1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Prototype Cost table SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Prototype Cost List- Intake # 1 2 3 4 5 6 Item Runner Base Injector Seat Aluminum Epoxy Manifold Top Manifold Bottom Aluminum to Carbon Epoxy Company Speedy Metals Speedy Metals Aremco US Composits US Composits MSC Part # 805 FG-CFT5750 FG-CFT5750 611905 Unit Cost $18.63 $5.86 $95.00 $41.50 $41.50 $63.85 Qty 1 1 1 1 1 1 Total Cost Total Cost $18.63 $5.86 $95.00 $41.50 $41.50 $63.85 $266.34 Unit Cost $18.63 $5.86 $95.00 $41.50 $41.50 $63.85 Qty 1 1 1 1 1 1 Total Cost Total Cost $18.63 $5.86 $95.00 $41.50 $41.50 $63.85 $266.34 Implementation Cost Table SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Implementation Cost List-Intake # 1 2 3 4 5 6 Item Runner Base Injector Seat Aluminum Epoxy Manifold Top Manifold Bottom Aluminum to Carbon Epoxy Company Speedy Metals Speedy Metals Aremco US Composits US Composits MSC Part # 805 FG-CFT5750 FG-CFT5750 611905 Time to Build Item Order Parts Machine Aluminum Adhere Aluminum Parts Together Lay Carbon fiber Adhere Aluminum to Carbon fiber Time 1 week 17 hrs 2 hrs 1.5 weeks 2 hrs A2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Fault Analysis One of the main concerns using the carbon fiber is that it may not be strong enough on the flat surfaces to deal with the sudden pressure changes within the manifold. Last year’s intake was made of aluminum and there was noticeable flexing when the throttle was rapidly opened. The current intake will be reinforced to ensure that it will not have any problems with strength. The other areas of concern are where the epoxies are being used; both types of epoxies have been researched and should be strong enough. Extra care will be taken when dealing with the application of the epoxies also. A3 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Appendix Drawing A1 Injector holder A1.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 A1.1 Drawing A2 Manifold A1.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 A1.2 Drawing A3 Runner base A1.3 Formula SAE Drivetrain F11-77-FSAE 4/19/12 A1.3 Table A1. Pre-design model for intake manifolds in internal combustion engines RPM RPS Q(24) f system 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 7500 8000 8500 9000 9500 10000 10500 11000 11500 12000 12500 13000 13500 14000 14500 16.7 33.3 50 66.7 83.3 100 117 133 150 167 183 200 217 233 250 267 283 300 317 333 350 367 383 400 417 433 450 467 483 ω 3 50 314.2 3.3 110 691.2 3.6 180 1131 3.9 260 1633.7 4.2 350 2199.2 4.5 450 2827.5 4.8 560 3518.7 5.1 680 4272.8 5.4 810 5089.6 5.7 950.1 5969.3 6 1100 6911.9 6.3 1260 7917.3 6.6 1430 8985.5 6.9 1610 10117 7.2 1800 11310 7.5 2000 12567 7.8 2210 13887 8.1 2430 15269 8.4 2660 16714 8.7 2900 18223 9 3150 19793 9.3 3410 21427 9.6 3680 23124 9.9 3960 24883 10.2 4250 26706 10.5 4550 28591 10.8 4860 30539 11.1 5180 32549 11.4 5510 34623 L1 (m) 1.7 0.77 0.47 0.33 0.24 0.19 0.15 0.13 0.11 0.09 0.08 0.07 0.06 0.05 0.05 0.04 0.04 0.04 0.03 0.03 0.03 0.03 0.02 0.02 0.02 0.02 0.02 0.02 0.02 4L1 (m) 6.806 3.094 1.891 1.309 0.972 0.756 0.608 0.5 0.42 0.358 0.309 0.27 0.238 0.211 0.189 0.17 0.154 0.14 0.128 0.117 0.108 0.1 0.093 0.086 0.08 0.075 0.07 0.066 0.062 8L1 (m) 12L1 (m) Overlap 13.6115 6.187 3.7809 2.6175 1.9444 1.5123 1.2153 1.0008 0.8402 0.7164 0.6187 0.5401 0.4759 0.4227 0.3781 0.3403 0.3079 0.2801 0.2558 0.2347 0.216 0.1996 0.1849 0.1719 0.1601 0.1496 0.14 0.1314 0.1235 20.4172 9.2805 5.6714 3.9263 2.9167 2.2685 1.8229 1.5012 1.2603 1.0745 0.928 0.8102 0.7139 0.634 0.5671 0.5104 0.4619 0.4201 0.3838 0.352 0.3241 0.2994 0.2774 0.2578 0.2402 0.2244 0.21 0.1971 0.1853 226.86 206.23 189.05 174.5 162.04 151.23 141.78 133.44 126.03 119.39 113.42 108.02 103.11 98.63 94.52 90.74 87.25 84.02 81.02 78.22 75.61 73.18 70.89 68.74 66.72 64.81 63.01 61.31 59.7 #18.1 #18.2 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 1.13E-14 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -1.72E-14 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 -2.94E-15 3.894 -1.834 -5.778 -9.593 -13.609 -17.939 -22.634 -27.727 -33.252 -39.275 -46.029 -56.294 -55.606 -64.711 -72.983 -81.485 -90.437 -100.27 -94.302 -117.11 -128.02 -139.07 -150.78 0 -172.23 -185.19 -198.39 -213.96 -223.25 Table A2. Pre-design A2.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Speed of Volume Sound D1 (m) A1 (m2) D2 (m) A2 (m2) Lsecondary (m3 ) (m/min) a 5.6715 0.038 0.001134 0.031995 0.000804 0.128948498 0.0025 Table A3. Pressure drops at the valve A2.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 degree cam Sec. 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 275 280 290 300 310 320 330 340 350 360 0 3.47E-05 6.94E-05 0.000104 0.000139 0.000174 0.000208 0.000243 0.000278 0.000313 0.000347 0.000382 0.000417 0.000451 0.000486 0.000521 0.000556 0.00059 0.000625 0.00066 0.000694 0.000729 0.000764 0.000799 0.000833 0.000868 0.000903 0.000938 0.000955 0.000972 0.001007 0.001042 0.001076 0.001111 0.001146 0.001181 0.001215 0.00125 Pressure Pressure Pressure Pressure Cyl 1 Cyl 2 Cyl 3 Cyl 4 101 101 96.252 101 92.224 101 88.916 101 86.328 101 84.46 101 83.312 101 82.884 101 83.176 101 84.188 101 85.92 96.252 88.372 92.224 91.544 88.916 95.436 86.328 100.048 84.46 101 83.312 101 82.884 101 83.176 101 84.188 101 85.92 101 88.372 101 91.544 101 95.436 101 100.048 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 84.964 87.056 89.868 93.4 97.652 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 98.536 96.252 92.224 88.916 86.328 84.46 83.312 82.884 83.176 84.188 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 96.252 92.224 88.916 86.328 84.46 83.312 82.884 83.176 84.188 84.964 85.92 88.372 91.544 95.436 100.048 101 101 101 101 References A2.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 [1] J. Benajes, “Predesign Model for Intake Manifolds in Internal Combustion Engines,” SAE Technical Paper Series, pp.1-11, February 24, 1997 [2]http://www.speedymetals.com [3]http://www.aremco.com [4]http://www.uscomposites.com A1.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Subsystem: Exhaust Table of Contents Functional Description B1 Parts List B2 Prototype Cost List B2 Implementation Cost List B3 Time to Build B3 Fault Analysis B3 Appendix Drawing B1 Side view of exhaust B1.1 Drawing B2 Front view of exhaust B1.2 References B2.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Functional Description The main goal of the exhaust is to exhaust gases from an internal combustion engine to the environment while keeping these gasses out of the driver’s obstruction. Along with this, the exhaust limits the noise from the engine. The goal for our competition is to limit the noise levels to 110 decibels. The 2012 racecar operates using the Kawasaki Ninja ZX-6R 4-cylinder engine. Each cylinder will exhaust gasses from the engine. This year the team will be using a 4-2-1 system. This means there are four header pipes in which two each flow into one collector pipe, Y-pipe. These two collectors will then flow into the final Y-pipe which connects to the muffler. Mild steel was selected as the material of pipe to be used. This was chosen because of its high resistance to heat along with its availability. It also allows for a much easier machinability than with other materials such as stainless steel and titanium while being much less expensive. One of the main tasks in designing the layout of the exhaust was to keep the collector pipes as close to the motor as possible. By keeping it tight to the engine, it allows the exhaust to exit out the port just in front of the motor and wrap around allowing the exhaust to exit toward the rear as shown in the appendix B1. By allowing the exhaust to exit through the rear, it avoids all contact with the driver while reducing backpressure caused by the air force in. Without the access to a mandrel bender, a bender that will not crimp the pipe, pre-bent sections of pipe were purchased with the smallest radius available, two inches. With all this, we were able to keep the exhaust wrapped relatively tight. The muffler used for the 2012 racecar is a Muzzy Carbon Fiber Slip on Exhaust muffler. This muffler provides us with a very light weight solution, only weighing 3.5 lbs. Along with the light weight it gives a low decibel allowance. In the event that the noise level exceeds 110 dB, additional fiberglass can be packed into the muffler. B1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Parts List SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Parts List- Exhuast # 1 2 3 4 5 6 7 Item Mild Steel J Bend 1-3/8" 2" Radius Mild Steel J Bend 1-3/4" 2" Radius Mild Steel J Bend 2" 3" Radius 2 into 1 Collector 1.375" to 1.75" 2 into 1 Collector 1.75" to 2" Exhaust Flange Muzzy Carbon Fiber Slip on Exhaust Company Part # Qty JEGS 555-319200 4 JEGS 555-319215 1 JEGS 555-319222 1 Cone Engineering, Inc CL2-138175-MS 2 Cone Engineering, Inc CL2-17520-MS 1 Klistom 1 Warehouse 3510 4 Indysuperbikes 5739 1 JEGS [1] Cone Engineering Inc [2] Klistom 1 Warehouse [3] Indysuperbikes [4] ] Cost of Prototype SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Prototype Cost-Exhaust # 1 2 3 4 5 6 7 Item Mild Steel J Bend 1-3/8" 2" Radius Mild Steel J Bend 1-3/4" 2" Radius Mild Steel J Bend 2" 3" Radius 2 into 1 Collector 1.375" to 1.75" 2 into 1 Collector 1.75" to 2" Exhaust Flange (on hand) Muzzy Carbon Fiber Slip on Exhaust Company Part # Unit Cost JEGS 555-319200 $14.99 JEGS 555-319215 $14.99 JEGS 555-319222 $19.99 Cone Engineering, Inc CL2-138175-MS $21.50 Cone Engineering, Inc CL2-17520-MS $21.50 Klistom 1 Warehouse 3510 $ Indysuperbikes 5739 $415.95 Qty 4 1 1 2 1 4 1 TotalCost Total Cost $59.96 $14.99 $19.99 $43.00 $21.50 $ $415.95 $575.39 B2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Cost of Implementation SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Implementation Cost List- Exhaust # 1 2 3 4 5 6 6 Item Mild Steel J Bend 1-3/8" 2" Radius Mild Steel J Bend 1-3/4" 2" Radius Mild Steel J Bend 2" 3" Radius 2 into 1 Collector 1.375" to 1.75" 2 into 1 Collector 1.75" to 2" Muzzy Carbon Fiber Slip on Exhaust Exhaust Flange Company Part # Unit Cost JEGS 555-319200 $14.99 JEGS 555-319215 $14.99 JEGS 555-319222 $19.99 Cone Engineering, Inc CL2-138175-MS $21.50 Cone Engineering, Inc CL2-17520-MS $21.50 Indysuperbikes 5739 $415.95 Klistom 1 Warehouse 3510 $2.00 Qty 4 1 1 2 1 1 4 Total Cost Total Cost $59.96 $14.99 $19.99 $43.00 $21.50 $415.95 $8.00 $583.39 Schedule of time to build Item Time in Hours Order All Components 7 Days for Arrival Cut Pipe and Mandrel Bends to Specification 2 Tack Pipes into place 4 Weld in pipes 2 Attach Slip on Muffler 0.5 Fault Analysis When the exhaust exits the engine, harmful CO2 emissions are emitted. With the exhaust running out the side of the car, emissions are closer to the vehicle than that of a normal vehicle. To remove these emissions, side pods are used in the car and the exhaust is looped around toward the rear. Therefore, the exhaust is emitted behind the driver and is contained inside the pod. Along with this the muffler does not guarantee the car to emit a decibel rating below 110 dB. By choosing the Muzzy Carbon Fiber Oval muffler, the outside can be removed and more fiberglass can be packed allowing for more muffling of the exhaust. B3 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Appendix Drawing B1 B1.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 B1.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing B2 B1.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 B1.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 References [1] http://www.jegs.com [2] http://www.coneeng.com [3] http://www.kustom1warehouse.net [4] http://www.indysuperbike.com B2.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Subsystem: Oil Pan Table of Contents Functional Description C1 Parts List C1 Fault Analysis C1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Functional Description The oil system of the 2012 racecar is primarily made of the oil pan, oil pickup, and oil pump. The oil pan and oil pickup tube with be reused from stock so the only redesign on the system will be of the oil pan itself. There was one main reason for the redesign of the oil pan, to lower the engine. For the 2012 racecar, as much was taken into consideration during the design of the entire car to lower the center of gravity to make the car handle better. By lowering the center of gravity of the car, this creates a lower roll center on the vehicle and creates less body roll under lateral accelerations. Since the engine, which is mounted directly behind the driver, is approximately 25% of the overall weight of the car, affects the center of gravity of the entire car greatly due to its positioning. Being that the oil pan is at the lowest point on the entire car, it is crucial to make the oil pan more “shallow” while still keeping the same amount of oil capacity for proper cooling of the oil before it is recycled through the engine. Since the pan will be almost 1.5” lower than the stock pan, baffles have been designed to slow down the flow of oil during increased lateral accelerations due to the lowered center of gravity. The material chosen to construct the oil pan was 6061 aluminum due to its high strength and thermal diffusivity. The outer ring that provides the bolting flange to the bottom of the engine block will be cut from 0.25” material using a CNC waterjet machine. This will ensure that the holes are all accurate and everything will fit properly so that there will not be any oil leaks. The sides and bottom of the oil pan will be cut from 0.070” aluminum sheet and welded together. This makes the construction of the pan actually very easy where all of the pieces are fitted together like a puzzle and just welded together. # 1 2 Item 6061 Aluminum 0.25" plate 6061 Aluminum 0.070" sheet Company speedy metals speedy metals Part # Unit Cost $ 25.22 $ 42.90 Qty Total Cost 1 $ 25.22 3 $ 128.70 Total Cost $ 153.92 Fault Analysis Failure of this oil pan could be something as simple as low oil pressure during high lateral accelerations. This would be caused to oil not surrounding the oil pickup tube because of improperly placed baffles or an incorrectly shaped oil pan. Due to its placement within the frame, this part should never fail mechanically because it should not come in contact with the ground at any point in time. However, if the oil pressure happens to drop under lateral accelerations it should be only for a very short period of time and we will be able to monitor this through the ECU by data logging the oil pressure sensor output. If the oil pan does fail, additional baffling could be added to try to reduce the movement of the oil inside the pan. C1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Subsystem: Axles Table of Contents Functional Description D1 Parts List D1 Fault Analysis D1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Functional Description The axles of a racecar are one of the most important parts of a racecar’s drivetrain system. The axles are the part of the car that transmits torque from the output of the transmission to the wheels, through the tires, and into the pavement. The design of these parts becomes difficult because in order to maximize performance of the overall vehicle, weight must be removed from every designed part going onto the car. Since the axles have to transmit such a high amount of torque, it becomes a delicate balance between strength, stiffness and weight. At the beginning of the design process, various constraints were taken into consideration because of other design decisions made for the car. 1. Length 2. Material 3. Splined ends The length of the axles was decided by the geometry of the suspension and chosen CV (constant velocity) joint. The material, titanium, was chosen because the material was on hand and least expensive to us. The spline that was chosen for the ends of the axles was chosen to fit the tripod set up for the Taylor Race CV joints that are being used. With all of these constraints set up, the only variable for design of the axles is the major diameter of the spline shaft itself. These axles have been designed to withstand a torque of over 1000 ft.-lb. Parts List # 1 Item Titanium 6al-4v 1.25" x 5' round stock Company onlinemetals.com Part # Unit Cost $ 797.00 Qty Total Cost 1 $ 797.00 Total Cost $ 797.00 Fault Analysis Any failure in this part of the racecar will result in demobilization of the car at the time of the break. These parts are precision machined and will be a one-time use until failure. However, as a back up, there will be an extra set of the same axles built from 4340 high strength steel in case one of the titanium axles does fail under loading. D1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Subsystem: Shifting Apparatus Table of Contents Functional Description E1 Subsystem Interactions E1 Fault Analysis E2 Parts List E3 Prototype Cost List E4 Implementation Cost List E5 Time to Build E5 Appendix Drawing E1 Power switching circuit schematic E1.1 Figure E1 Image of finished prototype circuit E1.2 Drawing E2 Push button schematic E2.1 Drawing E3 Tank mount E3.1 Figure E2 Paddle shifters assembly E4.1 Drawing E4 Top paddle mount E4.2 Drawing E5 Bottom paddle mount E4.3 Drawing E6 Right paddle E4.4 Drawing E7 Left paddle E4.5 Drawing E8 Cylinder mount E5.1 Drawing E9 Shifter actuator mount E5.2 Drawing E10 Clutch actuator mount E5.3 References E6.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Functional Description The shifting of the engine is a crucial part of driving any vehicle. A shift is essentially the engine being placed from one gear to another to match the appropriate speed of the car. The faster that a system is capable of shifting up and down the faster a lap time is possible. The car will be configured with a pneumatic system that is controlled by two contact buttons that control clutching, and two steel paddles to control shifting. These paddles will be attached to a top mounting plate that will allow movement in and axes. The paddles placed on the steering wheel will be capable of manipulating an up shift and a downshift through miniature contact switches that are attached to a bottom paddle mount. The switches will send a signal to the Arduino microcontroller (Arduino) that will run a simple program for each switch. The same concept is used on the contact buttons for clutching with respect to the electrical aspect. From the Arduino signal output is controlled to the Clippard pneumatic solenoids that allow them to open or close accordingly. The solenoids receive air from a 4500 psi Nitrogen tank were air passes through appropriate regulator, fittings, and polyurethane hosing at 110 psi. Once the solenoid is open the air activates one of the two cylinders for clutching or shifting. The process of upshifting is controlled by the Arduino board that receives an input from the contact switch. Contact switches are connected to the digital inputs of the Arduino with a pulldown resistor to eliminate noise current. Once the contact switch is pressed the Arduino runs a program that will send a current to the Electronic Control Unit (ECU) to stop the engine and fuel for a period of 60 milliseconds (ms). During the 60 ms the Arduino will also send an output signal for 30 ms that switches power by a mosfet to increase the voltage and current needed to the upshifting solenoid allowing air in to activate an upshift. Downshifting is similar to upshifting except the output signal to the ECU is changed to the clutch exhaust and clutch input solenoids that are activated at the same moment for a total time of 250 ms. The clutch is controlled by another separate contact switch that when held down will activate the input and exhaust solenoids to stop transmitting power from the engine to the wheels. Slow movement is also needed for the car when approaching the start of a race therefore a slow release of the clutch is needed. This function is accomplished by another contact switch controlled by the Arduino that sends a signal to the exhaust solenoid. The signal sent is a 30 ms pulse for 30 ms to allow air to exit the cylinder and allow the car to move slowly. Subsystem Interactions The shifting apparatus system is a vital subsystem to the drivetrain. The vehicle will not work without it and is linked to multiple subsystems. Shifting is controlled by the Arduino that is shared with the traction control and display subsystems. The traction control may perhaps turn on when shifting from a lower to higher gear if slipping of the tires happen. The display will show when a shift has occurred by the 16segment display. The exhaust and intake will show signs of flow change when the ignition cut is occurring. This will be a small change and will hold very little bearing over the subsystems. E1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Fault Analysis With any shifting system it is imperative that failure cannot occur with any components. The paddles for shifting could be susceptible to break or flex when the driver is actuating them. The mounts that the paddles and buttons are attached to must also be capable of withstanding flexing or breaking. The proper thickness and material are chosen so this will not happen. The contact switches operate at a maximum 0.5 amp current level. They are susceptible to failure due to poor assembly and life cycle. The switches need to be mounted in such a manner that the solder will not break. The electrical life cycle of a standard contact switch is 50,000 cycles and should be replaced every two years to prevent failure. The signal that is sent from the contact switches interacts with the Arduino. The Arduino is prone to electrical interferences that could randomly activate the program. This is counteracted by a debouncing function that is written into the program. The solenoids will be inclined to fail in the electrical since due to life cycle and exposed to current for long periods of time. The life cycle of the solenoids are approximately one billion cycles and should not be exposed for long periods of time. The solenoids should be replaced once every five years and be placed in neutral or turned off when long signal exposer is apparent. With any pneumatic system there is an apparent danger in working with high levels of pressure and strict guidelines must be followed. The air in the system must be nonflammable to insure that any leaks that might occur would not cause the components to explode. The system must be protected from rollover, collision from any direction, or damage resulting from the failure of rotating equipment. The entire air system must be located rearward of the main roll hoop and within the envelope of the car. The tank and cylinder must be positioned in such a manner that the axes of the components are not directed at the driver. Neither can they be located near any heat sources such as the exhaust system so no expansion of the air could deform components. The regulator must be mounted directly to the air supply. All components must certified and operate within the limits of their maximum pressures allowed. These basic guidelines are followed to accommodate the FSAE rules. Given that during a race any of the failures above would occur except tank explosion the race could still be completed if the engine was still in a gear other than neutral. Once race is completed the system could be corrected assuming that no permanent damage has occurred to the car. The only possibility that permanent damage could occur was if the tank exploded and caused damage to the engine or main structural component. Testing showed that the neutral button was not needed as long as the car was in a stopped position the upshift was sufficient if in first gear. Due to complications the system was not capable of being tested thoroughly enough to be installed. These complications were of the random firing that was later resolved by the debouncing function. The mounting of the clutch was another issue that could not be resolved due to the frame structure. The clutch and shifter were replaced by the reliable method of push/pull cables. E2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Cost List SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Parts List- Shifting Apparatus # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Item 3 Way Solenoid 12 V, DIN, 1/4 NPT 2 Way Solenoid 12 V, DIN, 1/4 NPT Cylinder Single Acting Double Acting Nitrogen Carbon Fiber Tank (4800psi) Regulator 50 ft. Urethane Hose Push-Quick Male Connector 1/4", 1/8 NPT Push-Quick Male Connector 1/4", 1/4 NPT Push-Quick Universal Elbo 1/4", 1/8 NPT Female Coupler 1/4'' NPT Male Tee 1/4" NPT Plug 14" NPT 9"x9" Mild Steel Sheet (on hand) 1"x1' Aluminum Round Stock (on hand) 3"x5/16"x18 Bolt (on hand) 1"x1/4"x28 Bolt (on hand) 5/16"x18 Nut (on hand) 1/4"x28 Nut (on hand) MOSFET Transistors 2.2 KOhm Resistors Arduino Mega ADK Diode Contact Switches 22 awg wire 100 ft Company Part # Qty Clippard MME-#QDS-D012 3 Clippard MME-2QDS-D012 1 Clippard USR-20-1-V 1 Clippard UDR-14-1/2-V 1 Empire 40645 1 MPS 1-0329 1 Clippard URH1-0804-BKS-050 1 Clippard PQ-MCO8P-BLK 4 Clippard PQ-MCO8Q-BLK 8 Clippard PQ-UE08P-BLK 2 Swakelok S-4-HCG 1 Swakelok SS-4MT 1 Swakelok SS-4-P 1 Wicks SH125x9x9-41 1 Wicks RD1-T6 1 McMaster 92620A595 2 McMaster 91251A442 2 McMaster 91850A185 4 McMaster 91240A078 4 Mouser 512-FDP42AN15AO 4 RadioShack 271-1325 4 Mouser 782-A000063 1 Mouser 512-1N4007 4 RadioShack 275-011 4 Mouser 602-3051-100-10 1 Clippard[1] Empire[2] MPS [3] Swakelok [4] Wicks [5] McMaster [6] Mouser [7] RadioShack [8] E3 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Cost of Prototype SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Prototype Cost List- Shifting Apparatus # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Unit Cost $ 19.70 2 Way Solenoid 12 V, DIN, 1/4 NPT Clippard MME-2QDS-D012 $ 19.70 Cylinder Single Acting Clippard USR-20-1-V $ 36.05 Double Acting Clippard UDR-14-1/2-V $ 31.32 Nitrogen Carbon Fiber Tank (4800psi) Empire 40645 $ 134.95 Regulator MPS 1-0329 $ 139.00 50 ft. Urethane Hose Clippard URH1-0804-BKS-050 $ 20.66 Push-Quick Male Connector 1/4", 1/8 NPT Clippard PQ-MCO8P-BLK $ 1.21 Push-Quick Male Connector 1/4", 1/4 NPT Clippard PQ-MCO8Q-BLK $ 1.21 Push-Quick Universal Elbo 1/4", 1/8 NPT Clippard PQ-UE08P-BLK $ 1.21 Female Coupler 1/4'' NPT Swakelok S-4-HCG $ 4.90 Male Tee 1/4" NPT Swakelok SS-4MT $ 22.00 Plug 14" NPT Swakelok SS-4-P $ 4.90 9"x9" Mild Steel Sheet (on hand) Wicks SH125x9x9-41 $ 17.36 1"x1' Aluminum Round Stock (on hand) Wicks RD1-T6 $ 7.04 3"x5/16"x18 Bolt (on hand) McMaster 92620A595 $ 0.92 1"x1/4"x28 Bolt (on hand) McMaster 91251A442 $ 0.22 5/16"x18 Nut (on hand) McMaster 91850A185 $ 1.29 1/4"x28 Nut (on hand) McMaster 91240A078 $ 0.35 MOSFET Transistors 2.16 Mouser 512-FDP42AN15AO $ 2.2 Kohm Resistors RadioShack 271-1325 $ 0.24 Arduino Mega ADK Mouser 782-A000063 $ 79.95 1N4007 Diode Mouser 512-1N4007 $ 0.08 Contact Switches RadioShack 275-011 $ 2.19 22 awg wire 100 ft Mouser 602-3051-100-10 $ 19.91 Item 3 Way Solenoid 12 V, DIN, 1/4 NPT Company Clippard Part # MME-#QDS-D012 Qty 3 1 1 1 1 1 1 4 8 2 1 1 1 1 1 2 2 4 4 10 5 1 25 4 1 Total Cost Total Cost $ 59.10 $ 19.70 $ 36.05 $ 31.32 $ 134.95 $ 139.00 $ 20.66 $ 4.84 $ 9.68 $ 2.42 $ 4.90 $ 22.00 $ 4.90 $ 17.36 $ 7.04 $ 1.84 $ 0.44 $ 5.16 $ 1.40 $ 21.60 $ 1.20 $ 79.95 $ 1.98 $ 8.76 $ 19.91 $ 656.16 E4 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Cost of Implementation SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Implementation Cost List- Shifting Apparatus # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Item 3 Way Solenoid 12 V, DIN, 1/4 NPT 2 Way Solenoid 12 V, DIN, 1/4 NPT Cylinder Single Acting Double Acting Nitrogen Carbon Fiber Tank (4800psi) Regulator 50 ft. Urethane Hose Push-Quick Male Connector 1/4", 1/8 NPT Push-Quick Male Connector 1/4", 1/4 NPT Push-Quick Universal Elbo 1/4", 1/8 NPT Female Coupler 1/4'' NPT Male Tee 1/4" NPT Plug 14" NPT 9"x9" Mild Steel Sheet (on hand) 1"x1' Aluminum Round Stock (on hand) 3"x5/16"x18 Bolt (on hand) 1"x1/4"x28 Bolt (on hand) 5/16"x18 Nut (on hand) 1/4"x28 Nut (on hand) MOSFET Transistors 2.2 Kohm Resistors Arduino Mega ADK 1N4007 Diode Contact Switches 22 awg wire 100 ft Company Part # Unit Cost Clippard MME-#QDS-D012 $ 19.70 Clippard MME-2QDS-D012 $ 19.70 Clippard USR-20-1-V $ 36.05 Clippard UDR-14-1/2-V $ 31.32 Empire 40645 $ 134.95 MPS 1-0329 $ 139.00 Clippard URH1-0804-BKS-050 $ 20.66 Clippard PQ-MCO8P-BLK $ 1.21 Clippard PQ-MCO8Q-BLK $ 1.21 Clippard PQ-UE08P-BLK $ 1.21 Swakelok S-4-HCG $ 4.90 Swakelok SS-4MT $ 22.00 Swakelok SS-4-P $ 4.90 Wicks SH125x9x9-41 $ 17.36 Wicks RD1-T6 $ 7.04 McMaster 92620A595 $ 0.92 McMaster 91251A442 $ 0.22 McMaster 91850A185 $ 1.29 McMaster 91240A078 $ 0.35 Mouser 512-FDP42AN15AO $ 2.16 RadioShack 271-1325 $ 0.24 Mouser 782-A000063 $ 79.95 Mouser 512-1N4007 $ 0.08 RadioShack 275-011 $ 2.19 Mouser 602-3051-100-10 $ 19.91 Qty Total Cost 3 1 1 1 1 1 1 4 8 2 1 1 1 1 1 5 50 5 25 4 4 1 4 4 1 Total Cost $ 59.10 $ 19.70 $ 36.05 $ 31.32 $ 134.95 $ 139.00 $ 20.66 $ 4.84 $ 9.68 $ 2.42 $ 4.90 $ 22.00 $ 4.90 $ 17.36 $ 7.04 $ 4.60 $ 11.00 $ 6.45 $ 8.75 $ 8.64 $ 0.96 $ 79.95 $ 0.32 $ 8.76 $ 19.91 $ 663.26 Time to Build Item Order All Components Machining Components Assembling Components Time 1 - week 10 hours 1 hour E5 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Appendix Drawing E1 Power switching circuit schematic E1.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 E1.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Figure E1. Image of finished prototype circuit E1.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing E2 Push button schematic E2.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 p E2.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing E3 Tank mount E3.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 E3.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Figure E2. Paddle shifters assembly E4.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing E4 Paddle mount top E4.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 E4.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing E5 Paddle mount bottom E4.3 Formula SAE Drivetrain F11-77-FSAE 4/19/12 E4.3 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing E6 Right paddle E4.4 Formula SAE Drivetrain F11-77-FSAE 4/19/12 E4.4 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing E7 Left paddle E4.5 Formula SAE Drivetrain F11-77-FSAE 4/19/12 E4.5 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing E8 Cylinder mount E5.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 E5.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing E9 Shifter mount E5.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 E5.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing E10 Clutch actuator mount E5.3 Formula SAE Drivetrain F11-77-FSAE 4/19/12 E5.3 Formula SAE Drivetrain F11-77-FSAE 4/19/12 References [1] http://www.clippard.com [2] http://www.empirepaintball.com [3] http://www.mpsracing.com [4] http://www.swagelok.com [5] http://www.wicksaircraft.com [6] http://www.mcmaster.com [7] http://www.mouser.com [8] http://www.radioshack.com E6.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Subsystem: Dashboard Table of Contents Functional Description F1 Fault Analysis F2 Parts List F3 Prototype Cost List F4 Implementation Cost List F4 Time to Build F5 Appendix Figure F1 Placement of systems on dashboard F1.1 Figure F2 Arduino to LED F1.1 Table F1 RPM to LED Output F1.1 Drawing F1 Display schematic F2.1 Drawing F2 Gear indicator schematic F2.2 References F2.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Functional Description The dashboard of a racecar gives only the most important information to the driver. The driver should be able to make informed decisions on whether it is safe to keep driving the vehicle as well as an idea of when it is important to change gears. The dashboard display (see Figure F1) is split into four sections: Gear, Speed, RPM, and Dummy Lights (safety indicators). The Gear (see Drawing F1) and Speed (see Drawing F2) sections are built similarly as both output to 16-segment displays and the RPM and Dummy Lights (see Figure F2) are built similarly as both signals output to LEDs. The difference between each of these sections is in the programming, and how and where they receive their input information. Gear Information for the gear display starts at the engine, where there is an analog signal that the Arduino reads. In the program (see code in General Appendix), the signal is then compared to the highest possible voltage of the gears and is assigned a gear number or to neutral. The number or neutral signal is then changed into binary and sent out to five output pin wires, which go to the physical portion of the display. The gear display is made up of a bcd to dec decoder, two hex inverters, a 16-seg display, and a neutral output wire. The bcd to dec decoder receives four of the five signals, while the fifth signal goes straight to the 16-seg display for the neutral. The bcd to dec decoder change the binary output to a decimal output that is the inverted output needed for the 16-seg display. From here, the signals are inverted through the hex inverters and then sent to the 16-seg display. Speed The information for the speed display comes from the traction control sensors. At each high or ‘tick’ of the sensor from the two front wheels, two signals are sent to the Arduino. From the code, it takes the average number obtained from the two to get the average number of ticks. From here, the program changes the number of ticks into a speed by using the radius and number of teeth on the trigger wheel (see traction control subsystem for more information). Once changed into a speed in terms of miles per hour, the code takes the tens place by dividing by ten and keeps the remainder, or ones place, through the modulus. From here, the tens and ones place get changed into binary and sent to the speed display in 8 wires, 4 wires for the tens place and 4 wires for the ones place. The speed display from here takes the same approach as the gear display as it goes through a bcd to dec decoder, inverter, and then to a 16-seg display. The only F1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 difference between the gear display and speed display besides the number of displays necessary is the lack of a neutral output wire, as the output of the speed has no need of a diagonal line whereas it is necessary for the gear display in order to output an ‘N’. RPM The RPM (revolutions per minute) is an analog signal outputted from the engine. The Arduino takes the signal and compares it to the highest voltage the analog signal could output. Then the code assigns a decimal number in terms of revolutions per minute. The code compares the RPM value to various degrees from 0 to 9999, 10000 to 10999, 11000 to 11999, 12000 and higher and three signals are sent to three groups of four LEDs depending on which value of RPM (see Table F1). These outputs give the driver a good idea of when it would be best to shift to a higher gear. When the Aqua LEDs light, it is almost time to change to a higher gear, the Green LEDs, it is a good time to change to a higher gear, and the Amber LEDs, it is highly suggested to change to a higher gear. Dummy Lights There are two sets of dummy lights: one for the temperature of the coolant and the second for the temperature of the oil. These digital signals come from the ECU and are sent through the Arduino to a program to cause the output to pulse so that the results are flashing red LEDs. As the dummy lights are warning lights, the more obvious these LEDs are, the easier for the driver to react to the situation. Fault Analysis As a whole, the lack of a dashboard display will not hinder the driver from finishing the race except in the case of the dummy lights flashing and the driver would take these seriously and stop a lap to see if the issue could be fixed. Once found that the display was not working properly, the driver could still resume the race; however, he/she would have to rely on their senses in terms of the car’s condition. There are a couple of ways the dashboard display could malfunction. One way is the Arduino to break or get stray signals. In the case of stray signals, the program created includes a debouncing program to keep signals that are stray from influencing the inputs of the Arduino. If the Arduino breaks and is irreparable, for example, split in half, it would be impossible to the board in competition and the driver would continue the competition without most of the dashboard. The dummy lights could be quickly rehooked up as the Arduino only manipulates the signals slightly. As the dummy lights are the only part of the dashboard that is necessary, the competition would be able to continue. Another way the dashboard display could malfunction is if the ECU malfunctions due to physical abuse (fire) or electrical malfunction. In this case, the warning lights would not output correctly and other parts F1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 of the racecar would malfunction causing the racecar to be completely out of the competition. The only way to fix the ECU would be a replacement, and this would take more time and there are no extra ECUs on hand. Parts List SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Parts List- Dashboard Display # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Item Grid-Style PC Board with 2200 Holes Wire - Single Conductor 22AWG 7/30 PVC Arduino Mega ADK Alphanumeric 16-Segment LED display Rosin Core Solder 5mm red led 5mm green led 5mm Orange LED 5mm Aqua LED 4-40 1 inch screw 4-40 nut Nylond standoff Single Inverter - Hex 270 Ohm resistor RTV BCD To DEC Decoder Company Part # Qty RadioShack 276-147 3 Mouser 602-3051-100-10 1 Mouser 782-A000063 1 Aztronics AS-0505-G-BW 3 RadioShack 64-009 1 SuperBrightLEDs RL5-R8030 5 SuperBrightLEDs RL5-G5023 4 SuperBrightLEDs RL5-O4030 4 SuperBrightLEDs RL5-A7032 4 Grainger 2AA72 10 Grainger CLC8 10 Grainger 13SP090 10 Texas Instruments SN74LS04N 5 RadioShack 55049160 4 Grainger 80067 1 NTE Semiconductors NTE74LS47 3 RadioShack [1] Mouser [2] Aztronics [3] SuperBrightLEDs [4] Grainger [5] Texas Instruments [6] NTE Semiconductor [7] F2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Cost of Prototype SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Prototype Cost List- Dashboard Display # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Item Grid-Style PC Board with 2200 Holes Wire - Single Conductor 22AWG 7/30 PVC Arduino Mega ADK Alphanumeric 16-Segment LED display Rosin Core Solder (ON HAND) 5mm red led 5mm green led 5mm Orange LED 5mm Aqua LED 4-40 1 inch screw 4-40 nut Nylond standoff Single Inverter - Hex (ON HAND) 270 Ohm resistor (ON HAND) RTV Android 2.3 Tablet PC BCD To DEC Decoder (ON HAND) Company Part # Unit Cost RadioShack 276-147 $ 3.99 Mouser 602-3051-100-10 $ 21.70 Mouser 782-A000063 $ 79.95 Aztronics AS-0505-G-BW $ 2.75 RadioShack 64-009 $ SuperBrightLEDs RL5-R8030 $ 0.53 SuperBrightLEDs RL5-G5023 $ 0.49 SuperBrightLEDs RL5-O4030 $ 0.24 SuperBrightLEDs RL5-A7032 $ 0.49 Grainger 2AA72 $ 0.08 Grainger CLC8 $ 0.05 Grainger 13SP090 $ 0.13 Texas Instruments SN74LS04N $ RadioShack 55049160 $ Grainger 80067 $ 7.65 ECRATER RAMOS-W3HD $182.99 NTE Semiconductors NTE74LS47 $ - Qty Total Cost 3 $ 11.97 1 $ 21.70 1 $ 79.95 10 $ 27.50 1 $ 20 $ 10.60 20 $ 9.80 20 $ 4.80 20 $ 9.80 25 $ 2.12 25 $ 1.30 25 $ 3.33 8 $ 20 $ 0.08 $ 0.61 1 $ 182.99 5 $ Total Cost $ 366.47 Cost of Implementation F4 Formula SAE Drivetrain F11-77-FSAE 4/19/12 SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Implementation Cost List- Dashboard Display # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 Item Grid-Style PC Board with 2200 Holes Wire - Single Conductor 22AWG 7/30 PVC Arduino Mega ADK Alphanumeric 16-Segment LED display Rosin Core Solder 5mm red led 5mm green led 5mm Orange LED 5mm Aqua LED 4-40 1 inch screw 4-40 nut Nylond standoff Single Inverter - Hex 270 Ohm resistor RTV BCD To DEC Decoder Company Part # Unit Cost RadioShack 276-147 $ 3.99 Mouser 602-3051-100-10 $ 21.70 Mouser 782-A000063 $ 79.95 Aztronics AS-0505-G-BW $ 2.75 RadioShack 64-009 $ 11.99 SuperBrightLEDs RL5-R8030 $ 0.53 SuperBrightLEDs RL5-G5023 $ 0.49 SuperBrightLEDs RL5-O4030 $ 0.24 SuperBrightLEDs RL5-A7032 $ 0.49 Grainger 2AA72 $ 0.08 Grainger CLC8 $ 0.05 Grainger 13SP090 $ 0.13 Texas Instruments SN74LS04N $ 0.71 RadioShack 55049160 $ 1.44 Grainger 80067 $ 7.65 NTE Semiconductors NTE74LS47 $ 1.43 Qty 3 1 0 3 1 5 4 4 4 10 10 10 5 2 0.08 3 Total Cost Total Cost $ 11.97 $ 21.70 $ $ 8.25 $ 11.99 $ 2.65 $ 1.96 $ 0.96 $ 1.96 $ 0.85 $ 0.52 $ 1.33 $ 3.54 $ 2.88 $ 0.61 $ 4.29 $ 75.46 Time to Build Item Order Parts Soldering Write code Mount circuit boards Time 1-2 weeks 10-12 hours 8-10 hours 1 hour F4 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Appendix Dummy Lights Speed display RPM display Gear Display Figure F1: Placement of systems on dashboard F1.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Figure F2: Arduino sends a signal and if the output is high, the LED lights Table F1 : RPM to LED Output Input (RPMs) Output (HIGH) 0 to 9999 None 10000 to 10999 Left four LEDs (Aqua) 11000 to 11999 Left four LEDS, Middle four LEDs (Green) 12000 and higher Left four LEDS, Middle four LEDs, Right four LEDs (Amber) Drawing F1 Display schematic F1.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 F2.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Drawing F2 Gear indicator References F2.2 Formula SAE Drivetrain F11-77-FSAE 4/19/12 [1] http://www.radioshack.com [2] http://www.mouser.com [3] http://www.aztronics.com.au/ [4] http://www.superbrightleds.com/ [5] http://www.grainger.com/ [6] http://www.ti.com [7] http://www.nteinc.com/ Subsystem: Traction Control Table of Contents Functional Description G1 Subsystem Interactions G1 Fault Analysis G2 Parts List G2 Prototype Cost List G3 Implementation Cost List G3 Time to Build G4 Appendix Drawing G1 Schematic G1.1 Equation Derivations G2.1 Sensor Datasheet G3.1 References G4.1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Functional Description The traction control system prevents the racecar’s wheels from slipping on the road surface. This increases the driver’s ability to maintain control of the racecar during periods of acceleration such as take-off and while turning corners. The designed system utilizes a hall-effect sensor (see datasheet in appendix) with a trigger wheel attached to each wheel. The sensors send an output voltage signal which is proportional to the wheel’s radial velocity. This signal is connected to the supply voltage through a resistor to increase the signal level (see schematic in appendix). The Arduino microcontroller reads these signal inputs and determines when the racecar loses traction. (see code for detailed programming in general appendix) With the speed of each wheel, the microcontroller then calculates the speed of the car using the average of the two inputs from the front wheels which are not under any external power. (see derivations in appendix) The Arduino then chooses the greater speed of the two rear wheels to compare to the actual speed of the car. If the difference of the rear wheel speed and actual speed exceeds the tolerated slip, the Arduino outputs a voltage signal to the programmable digital input of the racecar’s electronic control unit (ECU). The ECU is programmed to initiate a rev limiter when it receives this signal. The rev limiter is a program which cuts or retards the ignition timing to control the RPM level of the engine. With the rev limit in place, the racecar has time to match the rear wheel speed with the actual speed. Subsystem Interactions The traction control system is not a crucial part of the drivetrain and can even be turned off as the driver wishes, but it is not entirely separated from other subsystems. Due to the utilization of the ECU rev limiting program, the traction control system has secondary interactions with other subsystems including the exhaust. When the ignition is cut, the fuel in each cylinder is does not combust and is sent through the exhaust. This can cause the temperature of the exhaust to increase. If too much fuel is sent to the exhaust at one time, a backfire can occur. However, the ECU should not allow such levels of fuel to escape by sequencing the ignition cut of each cylinder. G1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 The sensors of the traction control system are integrated into the dashboard display system. A second program in the Arduino microcontroller pulls the actual speed of the racecar and outputs a binary signal that is decoded to segmented LED displays (see display subsystem). Fault Analysis As with any electrical circuit, there is always the possibility of overvoltage or component failure. With Arduino microcontroller being the most valuable and also the most sensitive component of the system, it is critical that all circuitry connected to it implements some sort of current control. Because the hall-effect sensors have a maximum supply current that is less than the maximum input current of the Arduino, it is not necessary to have any extra form of circuit protection. However, should the sensors fail can cause a short circuit between the supply voltage and the input, the Arduino would be exposed to an uncontrolled current. This can be prevented with an opto-isolator integrated circuit connected to the sensor output. This device isolates all external current sources and is usually very inexpensive. Parts List SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Parts List- T raction Control System # 1 2 3 4 5 6 7 8 9 10 Item Hall-effect sensor Arduino Mega ADK 1/4 inch steel sheet(onhand) 4-40 1 inch screw 4-40 nut Nylond standoff Project board 1 kOhm resistor(onhand) 22 awg wire 100 ft RTV Company Part # Qty Mouser 785-1GT101DC 4 Mouser 782-A000063 1 Grainger 3DRU7 1 Grainger 2AA72 10 Grainger CLC8 10 Grainger 13SP090 10 RadioShack 276-147 1 RadioShack 271-1118 4 Mouser 602-3051-100-10 1 Grainger 80067 0.08 Mouser [1] Grainger [2] RadioShack [3] G1 Formula SAE Drivetrain F11-77-FSAE 4/19/12 Prototype Cost List SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Prototype Cost List- T raction Control System # 1 2 3 4 5 6 7 8 9 10 Item Hall-effect sensor Arduino Mega ADK 1/4 inch steel sheet(onhand) 4-40 1 inch screw 4-40 nut Nylond standoff Project board 1 kOhm resistor(onhand) 22 awg wire 100 ft RTV Company Part # Unit Cost Mouser 785-1GT101DC $ 33.53 Mouser 782-A000063 $ 79.95 Grainger 3DRU7 $ Grainger 2AA72 $ 0.08 Grainger CLC8 $ 0.05 Grainger 13SP090 $ 0.13 RadioShack 276-147 $ 3.99 RadioShack 271-1118 $ Mouser 602-3051-100-10 $ 19.91 Grainger 80067 $ 7.65 Qty 6 1 1 100 100 100 6 5 1 1 Total Cost Total Cost $ 201.18 $ 79.95 $ $ 8.49 $ 5.19 $ 13.33 $ 23.94 $ $ 19.91 $ 7.65 $ 359.64 Implementation Cost List SIU Formula SAE Drivetrain Team A Division of Saluki Engineering Company Implementation Cost List- T raction Control System # 1 2 3 4 5 6 7 8 9 10 Item Hall-effect sensor Arduino Mega ADK 1/4 inch steel sheet 4-40 1 inch screw 4-40 nut Nylond standoff Project board 1 kOhm resistor 22 awg wire 100 ft RTV Company Part # Unit Cost Mouser 785-1GT101DC $ 33.53 Mouser 782-A000063 $ 79.95 Grainger 3DRU7 $ 43.10 Grainger 2AA72 $ 0.08 Grainger CLC8 $ 0.05 Grainger 13SP090 $ 0.13 RadioShack 276-147 $ 3.99 RadioShack 271-1118 $ 0.24 Mouser 602-3051-100-10 $ 19.91 Grainger 80067 $ 7.65 Qty 4 0 1 10 10 10 1 4 1 0.08 Total Cost Total Cost $ 134.12 $ $ 43.10 $ 0.85 $ 0.52 $ 1.33 $ 3.99 $ 0.95 $ 19.91 $ 0.61 $ 205.39 G3 Schedule of Time to Build Item Time Order Parts 1-2 weeks Machine timing wheels 1 hour Soldering 1-2 hours Write code 2-3 hours Mount circuit boards 1 hour G4 Appendix Drawing G1 Sensor circuit schematic G1.1 G1.1 Equation Derivations Calculating speed of wheel per sensor 𝑇𝑜 = 𝑠𝑒𝑛𝑠𝑖𝑛𝑔𝑝𝑒𝑟𝑖𝑜𝑑𝑜𝑓𝑎𝑟𝑑𝑢𝑖𝑛𝑜(𝑠𝑒𝑐𝑜𝑛𝑑𝑠) 𝑁𝑡 = 𝑛𝑢𝑚𝑏𝑒𝑟𝑜𝑓 ′𝐻 𝐼𝐺𝐻 ′ 𝑣𝑜𝑙𝑡𝑎𝑔𝑒𝑠𝑖𝑔𝑛𝑎𝑙𝑠𝑠𝑒𝑛𝑡𝑖𝑛𝑜𝑛𝑒𝑝𝑒𝑟𝑖𝑜𝑑 𝑃 = 𝑛𝑢𝑚𝑏𝑒𝑟𝑜𝑓𝑡𝑒𝑒𝑡ℎ𝑝𝑒𝑟𝑟𝑜𝑡𝑎𝑡𝑖𝑜𝑛 𝐵 = 𝑤ℎ𝑒𝑒𝑙𝑟𝑜𝑡𝑎𝑡𝑖𝑜𝑛𝑠𝑖𝑛𝑜𝑛𝑒𝑝𝑒𝑟𝑖𝑜𝑑 𝑁𝑡 𝐵= 𝑃 𝑛 = 𝑟𝑜𝑡𝑎𝑡𝑖𝑜𝑛𝑠𝑝𝑒𝑟𝑠𝑒𝑐𝑜𝑛𝑑 𝐵 𝑛= 𝑇𝑜 𝜔 = 𝑟𝑎𝑑𝑖𝑎𝑛𝑠𝑝𝑒𝑟𝑠𝑒𝑐𝑜𝑛𝑑 𝜔 = 𝑛∗2∗𝜋 𝑟 = 𝑟𝑎𝑑𝑖𝑢𝑠𝑜𝑓𝑤ℎ𝑒𝑒𝑙(𝑓𝑒𝑒𝑡) 𝑓𝑒𝑒𝑡 𝑣 = 𝑣𝑒𝑙𝑜𝑐𝑖𝑡𝑦𝑜𝑓𝑤ℎ𝑒𝑒𝑙 ( ) 𝑠𝑒𝑐𝑜𝑛𝑑 𝑣 = 𝜔 ∗ 𝑟 Calculating actual vehicle speed 𝑣𝑓𝑟 = 𝑓𝑟𝑜𝑛𝑡𝑟𝑖𝑔ℎ𝑡𝑤ℎ𝑒𝑒𝑙𝑣𝑒𝑙𝑜𝑐𝑖𝑡𝑦 𝑣𝑓𝑙 = 𝑓𝑟𝑜𝑛𝑡𝑙𝑒𝑓𝑡𝑤ℎ𝑒𝑒𝑙𝑣𝑒𝑙𝑜𝑐𝑖𝑡𝑦 𝑣𝑎𝑣 = 𝑎𝑐𝑡𝑢𝑎𝑙𝑣𝑒𝑙𝑜𝑐𝑖𝑡𝑦 𝑣𝑎𝑣 = (𝑣𝑓𝑟 + 𝑣𝑓𝑙 ) 2 Calculating slip 𝑣𝑟𝑟 = 𝑟𝑒𝑎𝑟𝑟𝑖𝑔ℎ𝑡𝑤ℎ𝑒𝑒𝑙𝑣𝑒𝑙𝑜𝑐𝑖𝑡𝑦 𝑣𝑟𝑙 = 𝑟𝑒𝑎𝑟𝑙𝑒𝑓𝑡𝑤ℎ𝑒𝑒𝑙𝑣𝑒𝑙𝑜𝑐𝑖𝑡𝑦 𝑣𝑟 = 𝑡ℎ𝑒𝑓𝑎𝑠𝑡𝑒𝑟𝑟𝑒𝑎𝑟𝑤ℎ𝑒𝑒𝑙𝑣𝑒𝑙𝑜𝑐𝑖𝑡𝑦 𝑖𝑓(𝑣𝑟𝑟 ≥ 𝑣𝑟𝑙 ) 𝑣𝑟 = 𝑣𝑟𝑟 𝑒𝑙𝑠𝑒(𝑣𝑟 = 𝑣𝑟𝑙 ) 𝑠 = 𝑠𝑙𝑖𝑝𝑝𝑖𝑛𝑔𝑠𝑝𝑒𝑒𝑑 𝑠 = 𝑣𝑟 − 𝑣𝑎𝑣 G2.1 Sensor Datasheet[4] G3.1 G3.1 References G3.2 [1] http://www.mouser.com [2] http://www.grainger.com [3] http://www.radioshack.com [4] http://sensing.honeywell.com G4.1