Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Yellow Submarine
Final Report
EE3730/EGR3810 Engineering Design Spring 2011
Seattle Pacific University Engineering Department
June 6, 2011
Design Team: Electromagnetic Fields Forever Sean Byrnes Jamie Inouye
Cam Iseri Kristin Lorenzen
P a g e | 2
ABSTRACT
Completed by all
Our team has designed a Wiimote controlled mini submarine. This design is contained in a
modified water-bottle hull, and uses DC motors, a servo, a microcontroller and batteries stored inside
the hull to power its motion.
The submarine’s movement was considered in three directions: forward, left/right, and
up/down. The right and left turning movement is controlled by the rudder, a vertical platform attached
to the back of the hull controlled by a servo motor. The forward motion is controlled by another motor,
which drives a propeller that extends out of the rear of the hull. The up and down motion (diving and
surfacing) is created with a motorized syringe ballast-mechanism, which draws water into the hull to
sink and expels water back to the exterior to rise. The syringe movement is controlled with a Lego
motor and linear actuator.
P a g e | 3
TABLE OF CONTENTS
Abstract ............................................................................................................................................2
Project Plan .......................................................................................................................................4
Executive Summary ..................................................................................................................4
Requirements Specification .....................................................................................................5
Work Breakdown Structure .....................................................................................................6
Contingency and Mitigation Plans ...........................................................................................8
Original Schedule ..............................................................................................................................9
As Completed Schedule ....................................................................................................................10
Functional Description: Electrical......................................................................................................12
Functional Description: Mechanical ..................................................................................................13
Detailed Design: Electrical ................................................................................................................14
Detailed Design: Mechanical.............................................................................................................16
Test Verification ................................................................................................................................22
Account of Resources: Labor Hours ..................................................................................................24
Account of Resources: Costs .............................................................................................................25
Mitigation and Contingency Plan Update .........................................................................................26
Project Outcomes .............................................................................................................................27
Team Dynamics Reflection ................................................................................................................28
Conclusion ........................................................................................................................................29
Signature Page ..................................................................................................................................30
Bibliography ......................................................................................................................................31
Appendix of Reference Material .......................................................................................................32
P a g e | 4
PROJECT PLAN – EXECUTIVE SUMMARY
Completed by Sean and Jamie
The purpose of our junior design project is to build a mini yellow submarine that can move
around in fresh water. This project includes a lot of mechanical engineering as well as electrical
engineering.
The mechanical side of our project was done by the mechanical and appropriate and
sustainable engineers Kristin Lorenzen, Cam Iseri and Jamie Inouye. The main mechanical aspects we
needed to focus on were the design of the hull (body) and its movement underwater. The hull itself was
made out of a standard Nalgene water bottle. This hull design needed to be waterproof, contain our
electrical components, and allow water to flow around it. Tin foil, plastics, gasket material and epoxy
made our submarine waterproof.
Our submarine’s movement was considered in three directions: left/right, up/down, and
forward. The right and left movement are simply controlled by a rudder. This is a vertical platform
attached to the back of the submarine controlled by a single servo motor. Forward movement is
controlled by one more DC motor on the back of our submarine. This activates a propeller. The final
movement was slightly more difficult to design. For our sub to float, the mass of the sub and everything
in it needed to be less than the mass of the water displaced by the entire hull. In short, the average
density of the sub needed to be less than that of water. To sink, the average density needed to be
greater than that of water. We did that by having a motorized syringe which could draw and expel
water. The syringe compressed air while it drew water, so when the water was expelled, the air still
took its place. We used a Lego motor geared up to a linear actuator to control this syringe.
All of the work on the electrical side of our project was done by the electrical engineer, Sean
Byrnes. The microcontroller along with a Bluetooth module contained inside the hull are programmed
to take in Wiimote accelerometer data and control the 3 motor systems inside the mini-submarine. This
was done through the use of an ATMEGA168 microcontroller. The microcontroller was programmed
using the Arduino Duemilanove developer board.
P a g e | 5
PROJECT PLAN – REQUIREMENTS SPECIFICATION
Completed by Sean
The following specifications are the desired operating parameters for our mini yellow submarine. The customer’s provided specifications are presented here to detail the method of verifying the final design against the requirements.
Customer requirements: The mini-submarine must be able to run for at least 20 minutes non-stop. The batteries will be rechargeable. The submarine must not leak The mini-submarine should move around in the water as directed by the controller. The mini-submarine must be yellow. Customer does not care what the hull looks like (other than it being yellow) or how it is made.
Design specifications based upon the customer requirements:
Specification
Parameter Value Conditions Verification Method
Depth Capacity Will be able to dive and operate normally at a depth of at least
2 feet
Pressure calculations and physical prototype
tests.
Size Length: 6-12” Width: 3-8” Height: 3-6”
N/A Measure our final
prototype
Battery Life Must be able to last at least 20 minutes underwater using all 3
motor functions simultaneously
Power calculations through circuit analysis and physical prototype
testing
Movement Capacity
Able to: turn left and right
sink and float move forward
N/A Prototype mechanical
testing
Waterproof Must remain operable and without significant leakage at a
maximum depth of 2 feet up to 20 minutes
Individual waterproofed parts and final
prototype testing
Controlled Movement Motor functions must be controlled remotely with A Wiimote Wii remote must be within sight of
submarine Final prototype testing
Hull Color Yellow N/A Final prototype hull
color test
Deliverables to the Customer: Requirements Specification Functional specification Detailed design (including schematic and parts list and cost) Final design and verification report.
P a g e | 6
PROJECT PLAN – WORK BREAKDOWN STRUCTURE
Completed by all
Task Name Duration Start Finish Predecessors Resource Names
Hour Cost Cost
Mechanical Design 19 days Wed 4/13/11 Mon 5/9/11
Cam, Jamie, Kristin
40 hours each
$95.00
Hull Design 19 days Wed 4/13/11 Mon 5/9/11
Cam, Jamie, Kristin
15 hours each
$50.00
Research 6 days Wed 4/13/11 Wed 4/20/11
Kristin and Cam
Order Parts 1 day Thu 4/21/11 Thu 4/21/11 19 Kristin and Cam
Shape/Solid Works (1)
4 days Thu 4/21/11 Tue 4/26/11 19 Cam
Mass/volume/ calculations
1 day Fri 4/22/11 Fri 4/22/11 20 Jamie
Pressure Resistant
1 day Thu 4/21/11 Thu 4/21/11 19
Water Proof 2 days Thu 4/21/11 Fri 4/22/11 19
Water Proof Testing
2 days Fri 4/22/11 Mon 4/25/11 20
Shape/Solid Works (2)
5 days Wed 4/27/11 Tue 5/3/11 21 Kristin and Cam
Movement 19 days Wed 4/13/11 Mon 5/9/11
Cam, Jamie, Kristin
10 hours $30.00
Research 6 days Wed 4/13/11 Wed 4/20/11
Cam and Jamie
Order Parts 1 day Thu 4/21/11 Thu 4/21/11 28 Cam and Jamie
Motor/propeller 2 days Thu 4/21/11 Fri 4/22/11 28
Propeller Testing
1 day Fri 4/22/11 Fri 4/22/11 29
Motor/Rudder Design
2 days Thu 4/21/11 Fri 4/22/11 28
-Rudder Testing 1 day Fri 4/22/11 Fri 4/22/11 29
Ballast Design 19 days Wed 4/13/11 Mon 5/9/11
15 hours $15.00
Research 6 days Wed 4/13/11 Wed 4/20/11
Kristin & Jamie
Order Parts 1 day Thu 4/21/11 Thu 4/21/11 35 Kristin &
P a g e | 7
Jamie
Ballast calculations
1 day Fri 4/22/11 Fri 4/22/11 36 Jamie
Ballast Testing 3 days Fri 4/22/11 Tue 4/26/11 36
Mechanical Prototyping
11 days Fri 5/6/11 Fri 5/20/11
20 hours
Final Assembly 11 days Fri 5/6/11 Fri 5/20/11
All
Electrical Design 20 days Fri 4/8/11 Thu 5/5/11
Sean 30 hours $10.00
Research 6 days Wed 4/13/11 Wed 4/20/11
Order Parts 1 day Thu 4/21/11 Thu 4/21/11
Programmed Control
15 days Mon 4/18/11 Fri 5/6/11
20 hours
Research Arduino Code
4 days Mon 4/18/11 Thu 4/21/11
Test code 5 days Fri 4/22/11 Thu 4/28/11
Integrate with hardware
4 days Tue 5/3/11 Fri 5/6/11
Meet with Business Students
27 days Fri 4/15/11 Mon 5/23/11
All 5 hours
Meeting 1 1 day Fri 4/15/11 Fri 4/15/11
2 hours
Meeting 2 1 day Fri 5/20/11 Fri 5/20/11
2 hours
Meeting 3 1 day Mon 5/23/11 Mon 5/23/11
1 hour
P a g e | 8
PROJECT PLAN – CONTINGENCY AND MITIGATION PLANS
Completed by Kristin
Contingency Plan
Fri 4/15/11 Thur 6/2/11
All 20 hours
Work weekends
Fri 4/15/11 Thur 6/2/11
10 hours
Work nights
Fri 4/15/11 Thur 6/2/11
10 hours
Mitigation Plan:
If hull is too small – cut hole in back of hull or purchase larger water bottle/hull
If parts weigh too much to account for the volume displaced – purchase larger hull
If parts weight too little to account for the volume displaced – either add mass on the inside or
add pontoons
If the ballast does not work – add floatation devices or tether the submarine
If controlled movement doesn’t work – program specific motions before placed in the water
If water leaks in through the shaft holes – use more tin foil and epoxy or come up with new
design
If water leaks through the end cap – use more gasket material
If there is not enough power to the motors – add more batteries or use different batteries
P a g e | 9
ORIGINAL SCHEDULE
Completed by all
P a g e | 10
AS COMPLETED SCHEDULE
Completed by Kristin
Task Name Duration Start Finish Predecessors Resource Names Hours
Mechanical Design 36 days Wed 4/13/11 Wed 6/1/11
Cam, Jamie, Kristin
72 hours each
Hull Design 34 days Wed 4/13/11 Wed 6/1/11
Cam, Jamie, Kristin
24 hours each
Research 6 days Wed 4/13/11 Wed 4/20/11
Kristin and Cam
Order Parts 1 day Thu 4/21/11 Thu 4/21/11 19 All
Shape/Solid Works (1)
4 days Thu 4/21/11 Tue 4/26/11 19 Cam
Mass/volume/ calculations
7 days Fri 5/6/11 Mon 5/16/11 20 Kristin and Cam
Pressure Resistant 1 day Mon 5/16/11 Mon 5/16/11 19 Kristin
Waterproofing 18 days Thu 4/21/11 Mon 5/16/11 19 Cam, Jamie, Kristin
Waterproof Testing
11 days Mon 5/16/11 Mon 5/30/11 20 Cam, Jamie, Kristin
Shape/Solid Works (2)
3 days Mon 5/30/11 Wed 6/1/11 21 Cam
Movement 35 days Wed 4/13/11 Tue 5/31/11
Cam, Jamie, Kristin
24 hours each
Research 6 days Wed 4/13/11 Wed 4/20/11
Cam & Jamie
Order Parts 12 days Thu 4/21/11 Fri 5/6/11 28 All
Motor/propeller 13 days Mon 5/2/11 Wed 5/18/11 28 Cam, Jamie, Kristin
Propeller Testing 5 days Wed 5/18/11 Tue 5/24/11 30 Cam, Jamie, Kristin
Motor/Rudder Design
13 days Mon 5/2/11 Wed 5/18/11 28 Cam, Jamie, Kristin
Rudder Testing 17 days Fri 5/13/11 Tue 5/31/11 32 Cam, Jamie, Kristin
Ballast Design 23 days Wed 4/13/11 Tue 5/31/11
Cam, Jamie, Kristin
24 hours each
Research 6 days Wed 4/13/11 Wed 4/20/11
Kristin & Jamie
Order Parts 1 day Thu 4/21/11 Thu 4/21/11 35 Kristin & Jamie
Ballast Assembly 16 days Mon 5/2/11 Mon 5/23/11 36 Cam, Jamie, Kristin
Ballast Testing 10 days Wed 5/18/11 Tue 5/31/11 36 Cam, Jamie, Kristin
P a g e | 11
Electrical Design 38 days Fri 4/8/11 Tue 5/31/11
Sean 100 hours
Research 6 days Wed 4/13/11 Wed 4/20/11
Order Parts 1 day Thu 4/21/11 Thu 4/21/11
Controlling motion 32 days Mon 4/18/11 Tue 5/31/11
Research Arduino Code
4 days Mon 4/18/11 Thu 4/21/11
Test Code 19 days Fri 4/22/11 Wed 5/18/11
Integrate with Hardware
10 days Wed 5/18/11 Tue 5/31/11
Mechanical Prototyping
19 days Fri 5/6/11 Wed 6/1/11
Cam, Jamie, Kristin
24 hours each
Final Assembly 6 days Wed 5/25/11 Wed 6/1/11
All
Business Students 5 days Tue 5/10/11 Mon 5/16/11
All 6 hours
each
Meeting 1 1 day Tue 5/10/11 Tue 5/10/11
Cam, Jamie, Kristin
Meeting 2 1 day Thu 5/19/11 Thu 5/19/11
Kristin and Sean
Preparation 1 day Fri 5/20/11 Fri 5/20/11
Kristin and Sean
Presentation 1 day Mon 5/23/11 Mon 5/23/11
Kristin and Sean
As a whole, we deviated a lot from our original plan. Most of the differences were found in the
mechanical side of things. There are additions and changes made in the people who completed the
tasks. The timeline also changed quite a bit. We rearranged schedules in order to fit things in. And
since oftentimes things didn’t work out like we planned, we spent more time (contingency time) on
certain tasks in order to finish them. Overall, more specific dates are included and hourly totals are
included for the main tasks.
P a g e | 12
FUNCTIONAL DESCRIPTION: ELECTRICAL
Completed by Sean
Block Diagram
P a g e | 13
Wiimote Communication: Wiimote Accelerometer data is sent to a computer
wirelessly via a Bluetooth connection between the computer and Wiimote. The connection is made with using the Windows 7 OS’s built in Bluetooth device detection
Transmit Wiimote Data: A custom made program on the computer then grabs the data being sent from the Wiimote, stores it into a small byte array, then transmits that array out through a particular serial port in the computer. An XBee Bluetooth module (XBee #1) is connected to this serial port so it grabs that data and then transmits it wirelessly again via Bluetooth
Acquire Wiimote Data: Our yellow submarine has a matching Bluetooth module (XBee #2) set up to receive the transmitted Wiimote data. XBee #2 is wired up to our Arduino Microcontroller and developer board. As data is received it is stored into the Arduino’s memory.
Motor Function Control: Once the data is received and stored the microcontroller is programmed to respond by turning on or off one of the 3 motors inside the Yellow Submarine. Each motor controls a specific motor function The ballast controls the sinking and floating function. The propeller controls the forward and backward movement. The rudder controls the turning of the submarine.
P a g e | 14
Top side of the Removaboard
Bottom side of the Removaboard
FUNCTIONAL DESCRIPTION: MECHANICAL
Completed by Cam
Final SolidWorks Models:
Hull (water bottle)
Rudder
P a g e | 15
End Cap
Battery
Arduino Developer Board
Propeller
Batteries
Propeller motor Rudder (servo) motor Batteries
Half syringe
ballast Lego motor
Lego actuator
Battery
End cap
Battery
Hull (water bottle): Used to contain and protect all of our components from water
Rudder: Controls the left and right movement of the submarine
Removaboard: The board inside the hull that all of our parts are attached to
Bottom view of the
removaboard, removed
from the hull
Top view of the
removaboard, removed
from the hull:
P a g e | 16
Ballast: Made up of the half syringe, Lego motor and Lego actuator. Enables us to change the
overall density of the submarine, therefore moving it up and down
End cap: Seals the large hole at the back of the hull, what the removaboard attaches to
Arduino Developer Board: What controls all of the motors in the submarine
Propeller: Attaches to the propeller motor, makes the submarine move forward
Rudder Motor: Attaches to the rudder
Batteries: Give power to the individual motors
P a g e | 17
float roll = (float)(Math.Atan2(ws.AccelState.Values.Z, ws.AccelState.Values.X) * 180.0/ Math.PI) / 360 * 255; float pitch = (float)(Math.Atan2(ws.AccelState.Values.Z, ws.AccelState.Values.Y) * 180.0 / Math.PI) / 360 * 255;
if (count == 25) { if (SerialPort.IsOpen) { comm[0] = Convert.ToByte(check_limits((int)roll));// Rudder Control Data comm[1] = Convert.ToByte(check_limits((int)pitch));// Ballast Control Data if (ws.ButtonState.A) // Propeller Control Data { comm[2] = 56; } if (ws.ButtonState.B) { comm[2] = 57; } SerialPort.Write(comm, 0, 1); // Write rudder control data to s-port SerialPort.Write(comm, 1, 1); // Write ballast control data to s-port SerialPort.Write(comm, 2, 1); // Write propeller control data to s-port } count = 0; } }
DETAILED DESIGN: ELECTRICAL
Completed by Sean
Wiimote Communication:
The Wiimote is connected to a laptop running Windows 7 using its own built in Bluetooth device adapter.
Once the laptop recognizes the Wiimote the data from the Wiimote needs to be gathered. To do this we
employ a premade Wiimote data collection library (Wiimote.lib) and a modified C# program (see
Wii_RC_CSExpress.cs). The main function I’ve changed in this C# code is the UpdateWiimoteState
function. I’ve included 2 new lines of code which take the X-Y position accelerometer data and converts
it into pitch and roll data:
As we can see the roll and pitch are stored as floating point values. These values are computed from the
arctangent of the X and Y accelerometer data compared to the Z accelerometer data gathered from the
Wiimote. These values are then converted into degrees and then changed into a value between 0 and
255, the max value of a byte. It must be converted to a byte value as that is the type of data that will be
sent out to the yellow submarine from the computer.
The next modification comes from including an ‘if’ statement that waits until the computers serial port is
open. The serial port is where we’ll actually be sending all of our data. It then converts the pitch and roll
floating point values into bytes and then places them in their own index on a 3 byte array named
“comm”. The 3rd byte comes from the next two ‘if’ statements which check if either button ‘A’ or
button ‘B’ on the Wiimote has been pressed. If either is pressed an integer value between 0 and 255 will
be stored into the last spot in the “comm” array. Each byte in the array is then respectively written out
into the serial port on the computer. This is then repeated every 25 cycles.
P a g e | 18
Transmitting Wiimote Data:
More specifically, the serial port in which the data is being written to is connected via a FTDI usb/serial
cable to our XBee 802.15.4 Bluetooth module. Once the data has been written to the serial port by the
Wii_RC_CSExpress program it is recieved by the XBee Bluetooth module. The XBee is set up with the
following configuration:
PAN ID: 3137
This is set up as a specific and unique value to be used only by the two BT modules in our product. This prevents cross talk with any other BT devices nearby.
Baud Rate: 19200
This data transfer rate seemed to give a smoother and faster transfer of the Wiimote control data. This value was used instead of the standard value 9600
Parity: None
A parity bit check is not needed to check the successful transfer of our data.
Stop Bit: 1 This ensures that data is not being overwritten to quickly to the receiving Bluetooth module.
The XBee transmits the byte array that is being sent to it via a Bluetooth signal to the XBee module
receiver incased in the Yellow Submarine’s hull.
P a g e | 19
Acquire Wiimote Data:
Inside the hull of the Yellow Submarine is a second XBee Bluetooth module to receive data. This module
is set up to match the data transfer rate and PAN ID of the transmitter XBee module. This Xbee module
is connected to our Arduino microcontroller.
The XBee Bluetooth module and motor functions of the mini-sub are controlled by an ATMEGA168 microcontroller connected to the Arduino Duemilanov microcontroller developer board.
The Arduino Duemilanove is a microcontroller board based on the ATmega168. It has 14 digital
input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz crystal oscillator,
a USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to
support the microcontroller.
P a g e | 20
The XBee’s Rx and Tx pins are connected as a digital input and output respectively to the Arduino. The
Arduino is programmed as seen below: (from Yellow_Sub_wiiMoteControl)
void loop() { while (XBeeSerial.available() < 3) //wait till it has 3 bytes available { } int wiiRoll = XBeeSerial.read(); // set roll data as wiiRoll int wiiPitch = XBeeSerial.read(); // set pitch data as wiiPitch int wiiButton = XBeeSerial.read(); // set button press as wiiButton …
The arduino waits does nothing until it has received 3 bytes from the XBee. These 3 bytes come from the
3 byte array sent out by the C# program. Once it has received these bytes it places them respectively
into memory as integer values.
Wiring: XBee Rx (receive) wire is connected to digital I/O pin #2. XBee Tx (transmit) wire is connected to digital I/O pin #5
XBee Receiving Module
P a g e | 21
Motor Function Control:
More specifically the motors that drive our 3 movement mechanisms (propeller, ballast, rudder) are
controlled with the help of a detachable Motorshield for the Arduino board. (picture of shield and board
shown below).
This Motorshield offers bundled circuitry specified to handle the type of motors we have inside the Yellow Submarine.
5V servo connection: Our rudder is moved using a 5V micro servo. The servo connection is linked directly to the Arduino's high-resolution dedicated timer allowing accurate control of the servo position without a lot of jitter. Control for up to 4 bi-directional DC motors: In our design we only use 2 DC. Each DC motor has individual 8-bit speed selection (so, about 0.5% resolution) using the Arduino’s PWM. 4 H-Bridges: L293D chipset H-Bridges provides 0.6A per bridge (1.2A peak) with thermal shutdown protection, 4.5V to 36V. This works well for our design as none of the motors draw more than 0.6A Pull down resistors that keep motors disabled during power-up
Power Supply:
Our power supply for our submarine consists of 6 NiMH rechargeable batteries. Each battery delivers a
1.2V supply. This gives us a combined total of a 7.2V. The batteries combined are rated to have a
capacity of 3000mAH.
P a g e | 22
Ballast Control:
Our Ballast is controlled by a 6V Lego Mindstorm DC motor. To control the motor we have programmed
Arduino accordingly.
As we can see depending on the pitch degree of the Wiimote the ballast motor is either turned on
forward, backward or off.
… //Ballast if (wiiPitch = 170) // if pitched down { motor2.run(BACKWARD); // turn motor on to sink submarine } if (wiiPitch = 86) // if centered { motor2.run(RELEASE); // turn off motor } if (wiiPitch = 1) // if pitched up { motor2.run(FORWARD); // turn motor on to raise submarine } …
Ballast DC Motor
Wiring:
The ballast motor is
connected to the
motorshields M2
positive and negative
pinouts.
P a g e | 23
Rudder Control:
Our Rudder is controlled by a 5V micro servo with 1.6kg-cm of torque. Depending on the roll degree of
the Wiimote, the Arduino increments the servo either left or right by 5 degrees.
… //Rudder if (wiiRoll = 170) // if rotate wiimote left { if (pos >= 5)
{ pos-=5; //increment servo by ‘-5’ degrees } } if (wiiRoll = 86) //do nothing if wiimote is generally centered { } if (wiiRoll = 1) // if rotate wiimote right { if (pos
P a g e | 24
Propeller Control:
The Propeller is controlled by a 6V DC motor. The Arduino consistently checks whether the Wiimote’s ‘A’
or ‘B’ button has been pressed then turns the motor on forward or reverse. If nothing is pressed the
motor is turned off.
… motor.run(RELEASE); //Propeller if (wiiButton == 56) // if ‘A’ is pressed { motor.run(FORWARD); delay(50); } if (wiiButton == 57) // if ‘B’ is pressed { motor.run(BACKWARD); delay(50); }
…
Wiring: The propeller motor is connected to the Motorshields M1 positive and negative pinouts.
Propeller Motor
P a g e | 25
Power Consumption:
Running idle (without motors) the Arduino draws approximately 175mA. The XBee module is drawing a
large amount of that current running at approximately 68mA. The rest is consumed by idle currents in
the motors and powering the Arduino developer board. The Ballast motor, once turned on, draws
approximately 434mA. The propeller motor draws on average 502mA. The rudder servo draws
approximately 212mA while incrementally turning. All these measurements were taken with only one
motor turned on. Also these measurements were taken while out of the water. So the motors will be
slightly more loaded when in water. With all motors turned on at the same time outside of water the
current draw is approximately 1.06A. while in water I will estimate the current draw to be closer to 1.5A
Our battery pack has a supply of 3000mAH. Therefore, if the users were to use all the motor functions
constantly and simultaneously the Yellow submarine should remain powered for an estimated maximum
time of:
P a g e | 26
DETAILED DESIGN: MECHANICAL
Completed by Cam and Kristin
Component Image Mass (g)
Length (Diam)
Height (cm)
Width (cm)
Arduino Developer Board
61.83 7.0 2.7 5.5
Rudder
11.88 11.9 0.3 3.4
RemovaBoard
35.51 16.1 0.3 7.3
End Cap
14.36 7.6 1.3 -
P a g e | 27
Tubing
2.79 0.5 18.7 -
Small Metal Clamp (x3)
9.57 5.8 2.3 1.9
Large Metal Clamp
15.67 7.4 2.6 2.2
Servo Motor
9.45 2.2 3.1 1.2
P a g e | 28
Cylindrical Motor
50.94 2.8 3.5 -
Lego Motor
32.32 2.4 4.8 -
Lego Linear Actuator
16.21 1.5 9.5 -
Half Syringe
10.66 2.8 6.2 -
P a g e | 29
Nail (x2)
7.01 .30 9.1 -
90 Degree Piece
28.01 3.8 3.2 3.2
Plumber’s Tape
6.23 7.1 2.1 -
NiMH Rechargeable Battery (x6)
45.63 2.1 4.2 -
P a g e | 30
Short Shaft (x2)
3.2 0.25 5.9 -
Small Grey Gear
3.53 3.7 0.7 -
Small White Gear (cut in half)
0.755 2.9 0.1 -
Alligator Clip (x2)
2.54 - 4.5 -
P a g e | 31
Gasket Material
- - - -
Miscellaneous Wires
- - - -
PVC Pipe
21.76 8.7 2.0 -
Assorted Weights
10-100 3.0 .2-1.6
P a g e | 32
Hull (Nalgene Water Bottle)
175.59 9.3 21.0 -
Water bottle (hull)
Max depth: 2 feet
Water Pressure = 0.433 psi/ft
Max Pressure = 0.866 psi at 2 feet
Volume inside: 1176 milliliters
Total volume displaced: 1310 milliliters
Approximate mass to make the sub sink: 1310 grams
Total mass (without adding weight): 830 grams
Density (without adding any weight):
Therefore the sub floats without any weight. The density needs to be greater than 1 in order for
it to sink. When the ballast has no water in it, the density should be a little bit under 1, so that
when the ballast takes in water the sub will sink, and when the ballast expels that water it
should float.
The hull has a three inch diameter hole drilled into the bottom of the water bottle. Attached to this
open end with marine epoxy is the piece of PVC pipe. This is so the hole is an even, smooth radius all
the way around. Attached to the inside of the pipe are two thin layers of gasket material, which aids in
the sealing and waterproofing of the end cap. A thicker layer of the gasket material is attached directly
to the end cap in a circular manner. This is the final and most reliable step in waterproofing the large
opening in the hull.
Directly attached to the end cap on the inside of the hull is the 90 degree piece. This piece
connects the removaboard to the end cap. Attached to the removaboard are all the pieces inside the
hull.
Propeller
Propeller motor rotates at about 6000RPM unloaded
P a g e | 33
Propeller motor is estimated to rotate at about 4500RPM in water at a depth of 1ft
The propeller shaft is attached to the motor through a small hole in the end cap. It is sealed using
tin foil and epoxy. We decided on this option because it allowed the shafts to rotate freely but also
prevented water from entering the inside of the hull. The tin foil was wrapped tightly around the shaft
and then the shaft was removed. This created a hollow shell of tin foil, which was held together using
epoxy. This tin foil shell was then inserted into the drilled hole in the end cap. Epoxy was applied
liberally around the outside of the tin foil shell on both sides of the end cap to prevent leaks and
translational movement of the shaft.
The propeller itself is wedged in between two batteries on the underneath side of the
removaboard. It is held in place with a zip tie.
Ballast
Pulls in and expels 25 milliliters of water
The ballast is comprised of the half syringe, Lego motor and Lego actuator. These parts are attached
to the board using three small metal clamps and one large metal clamp. It is positioned on the top side
of the removaboard. The ballast opens directly to the outside water using a small portion of tubing. The
tubing exits the hull through a hole drilled in the end cap. The tubing is secured to the end cap using
epoxy.
Rudder
Rotates a total of 90 degrees
Rudder motor rotates at about 5 degrees per second
The rudder motor (servo motor) is wedged directly in between the propeller motor and two batteries. It
is secured using a zip tie. To connect to our rudder shaft extending outside the hull we’ve attached a
small gear directly to the servo and another small gear directly to the rudder shaft. When the servo
turns it then turns the gear attached to it which in turn rotates the rudder shaft gear.
Other Electronics
The Arduino developer board is attached to the board using small screws. There are a total of
six batteries that are placed within the hull in order to power the components. Four of them are on the
underside of the board, one is on the top and the last one is in the very back of the hull.
P a g e | 34
TEST PLAN
Completed by all
Depth Capacity:
1. Put hull underwater at a depth of two feet for at least one hour (since the sub is only required to
be underwater for 20 minutes, this time should be sufficient to verify the long term depth
capacity).
2. Take out hull and open it, examine hull itself.
3. If there are no cracks in hull, the depth capacity is verified.
Size:
1. Measure the length, width and height of the hull.
2. If it is within specifications, the size is verified.
Battery Life:
1. Turn on both DC motors and the rudder servo simultaneously.
2. Measure the current draw from the batteries to the Arduino’s power terminal.
3. Divide the rated battery capacity of 3000mAH by the measured current.
4. If the calculated value is greater than .2 hours (20 minutes) then the battery life is within
specification.
Movement Capacity:
Rudder:
1. Turn the rudder servo on to rotate left and right.
2. If the rudder rotates left and right accordingly, then the rudder out of water is verified.
3. Repeat step 1 when the rudder is submerged.
4. If the rudder rotates left and right accordingly, then the rudder in water is verified.
Propeller:
5. Turn the propeller motor on.
6. If the propeller rotates, then the propeller out of water is verified.
7. Repeat step 1 when the propeller is submerged.
8. If the propeller rotates, then the propeller in water is verified.
Ballast tank:
1. Put the open end of the ballast tank underwater.
2. Program the ballast tank motor to take in water.
3. Run program with ballast tank connected.
4. Do steps 1, 2 and 3 for excreting water.
5. If the ballast tank takes on and excretes water as expected, without any leaks, then the ballast is
verified.
P a g e | 35
Waterproof:
Waterproof hull:
1. Put hull underwater at a depth of two feet for at least one hour (since the sub is only required to
be underwater for 20 minutes, this time should be sufficient to verify the waterproofing.
2. Take hull out of water and open it.
3. If it’s dry on the inside, then the waterproofing is verified.
Waterproof shafts:
1. Place and seal shaft to an empty container.
2. Submerge the shaft and container in water.
3. Rotate the shaft at least 100 times (this should be sufficient to mimic the actual running
scenario.
4. Take shaft and container out of the water.
5. If the inside of the container is dry, then waterproofing the shaft is verified.
Controlled Movement:
1. Connect Wiimote to computer via Windows 7 OS device registration
2. Open C# code to connect Wiimote data to serial port.
3. Turn on Yellow Submarine and put in water.
4. Using Wiimote turn all 3 motors on and verify it is accurately controlling each motor function
Hull Color:
1. Check to see that the hull is yellow.
2. If it is yellow, then the color is verified.
P a g e | 36
TEST VERIFICATION
Completed by all
Depth Capacity:
The submarine can easily achieve the specified depth of 2ft without any sign of cracks or breaks in the
hull. However controlling it wirelessly via Bluetooth becomes an issue the deeper it goes. At the 2ft the
submarine can still be wirelessly controlled however transmitting Bluetooth module must be close to
the water’s surface above the submarine.
Size:
The entire submarine is measured to have a length of 28cm a width of 14cm and a height of 14cm
converting this to inches we have a hull size of 11.02”x5.51”x5.51”
Battery Life:
We’ve estimated our average current draw from all 3 motors to be approximately 1500mA therefore
our estimated battery life is
Movement Capacity:
Rudder: The servo and rudder shaft gears are not aligned accurately mainly because there is little room
in the hull. The servo moves the rudder but only slightly and unreliably.
Propeller: The propeller rotates at a high RPM. The submarine is able to move forward at a somewhat
high velocity.
Ballast tank: The ballast syringe takes in and expels water perfectly and does not leak. The submarine is
able to sink, float and obtain neutral buoyancy.
Waterproof:
Waterproof hull: The hull does not leak when underwater
Waterproof shafts: the propeller shaft leaks only about a small drop every 3 minutes. While the rudder
shaft leaks about a drop a minute. This is a tolerable amount.
Controlled Movement:
The Yellow submarine has been programmed successfully to receive Wiimote data wirelessly and
control its 3 motor functions accordingly.
Hull Color: The hull was created out of a yellow Nalgene water bottle
P a g e | 37
SATISFACTION OF SPECIFICATION REQUIREMENTS
-Depth Capacity: Satisfied -Size: Satisfied -Battery Life: Satisfied -Movement Capacity: Not satisfied
Rudder: Not satisfied Propeller: Satisfied Ballast Tank: Satisfied
-Waterproof: Satisfied Waterproof Hull: Satisfied Waterproof Shafts: Satisfied
-Controlled Movement: Satisfied -Hull Color: Satisfied
P a g e | 38
ACCOUNT OF RESOURCES – LABOR HOURS
Completed by all
All of the mechanical tasks were separated
evenly between Jamie Inouye, Cam Iseri and
Kristin Lorenzen. Sean also helped in some
of the building process for the Ballast
mechanism. Most of the time we were
working collaboratively, and the other times,
approximately an even amount of time was
spent working on the project individually.
Sean Byrnes completed all of the electrical
tasks of the project.
Task Name Hour Cost
Mechanical Design 72 hours
each
Hull Design 24 hours each
Research 4 hours
Order Parts 1 hour
Shape/Solid Works (1) 3 hours
Mass/volume/ calculations 1 hours
Pressure Resistant 1 hour
Water Proof 4 hours
Water Proof Testing 6 hours
Shape/Solid Works (2) 4 hours
Movement 24 hours each
Research 3 hours
Order Parts 1 hour
Motor/propeller 6 hours
Propeller Testing 4 hours
Motor/Rudder Design 6 hours
Rudder Testing 4 hours
Ballast Design 24 hours each
Research 3 hours
Order Parts 3 hours
Ballast calculations 2 hours
Ballast Testing 16 hours
Mechanical Prototyping 19 days 24 hours each
Final Assembly 6 days 20 hours each
Task Name 10 days Hour Cost
Electrical Design 38 days 100 hours
Research 6 days 15 hours
Order Parts 1 day 5 hours
Control (programmed) 32 days
Research Arduino Code 4 days 10 hours
Rework and Retest 19 days 3 hours
Integrate with hardware 10 days 4 hours
P a g e | 39
ACCOUNT OF RESOURCES: COSTS
Completed by Sean
Part
Cost $
RC Model Boat Ship 38mm Plastic Propeller Props
7.37
Marine Grease (5 oz.)
9.44
O-Ring Assortment
5.50
Disposable Syringe 60cc
3.50
Ballast Motor (6V 60RPM High Torque Electric Gear Box Motor)
15.00
Propeller and Rudder Motor (6V high RPM) (each)
10.00
Ni-MH 7.2V/2800mAh rechargeable battery pack and charger
45.00
Random Gears and parts
10.00
Water Bottle (ship hull)
1.00
Arduino Deucimilanov + MotorShield
45.00
Other miscellaneous tools and supplies
20.00
Total
$171.80
P a g e | 40
MITIGATION AND CONTIGENCY PLAN
Completed by Kristin
Contingency Plan
Fri 4/15/11 Thur 6/2/11
All 20 hours
Work weekends
Fri 4/15/11 Thur 6/2/11
10 hours
Work nights
Fri 4/15/11 Thur 6/2/11
10 hours
We definitely utilized our contingency plan, especially towards the end of the quarter. Although we
were a little behind in the project plan outline, we were able to complete the tasks by coming in and
working long hours on the weekends and evenings.
Mitigation Plan:
If hull is too small – cut hole in back of hull or purchase larger water bottle/hull
o Completed: We first bought a new water bottle and when it was still too small, we cut a
hole in the back of the hull
If parts weigh too much to account for the volume displaced – purchase larger hull
o Not completed
If parts weight too little to account for the volume displaced – either add mass on the inside or
add pontoons
o Completed: We added various small weights to the inside of the hull in order to increase
the weight of the sub
If the ballast does not work – add floatation devices or tether the submarine
o Not completed
If controlled movement doesn’t work – program specific motions before placed in the water
o Not completed
If water leaks in through the shaft holes – use more tin foil and epoxy or come up with new
design
o Not completed
If water leaks through the end cap – use more gasket material
o Completed: There were significant leaks in the end cap, so we purchased a thicker foam
gasket material and sealed the end cap with that. This was very successful at keeping
the water out
If there is not enough power to the motors – add more batteries or use different batteries
o Not completed
P a g e | 41
PROJECT OUTCOMES AND CONCLUSION
Completed by all
Our project came out very close to working exactly as specified in the end. The entire submarine is
controlled wirelessly via a Wiimote. The hull and motor shafts are tolerably waterproof.
The Wiimote control took a long time to get working. Mainly the program I had used to grab the
Wiimote data had to be configured to do fewer checks for the integrity of the Wiimote computer
connection.
There were a lot of issues waterproofing the rudder and propeller shafts in the hull. Wrapping tin foil
around the propeller shaft actually worked out surprisingly well. Only a small amount of water was able
to get in when the propeller ran in the forward direction. Reverse direction was another story. When in
reverse water was more likely to be pushed in and it leaked an intolerable amount.
The only thing that did not work as specified was our rudder mechanism. This was partly due to the fact
that we had to change the rudder design unexpectedly. The first propeller motor we had designed our
project with ended up not working as we had hoped and eventually broke down on us. So we had to
change the motor to a longer one. This forced us to use a gear system to move our rudder.
All in all however things worked out for the most part in the end. We have a mostly working prototype
and it was a very fun project.
P a g e | 42
TEAM DYNAMICS REFLECTION
Completed by all
Team organization
Our team organization improved a lot as the quarter went on. At the beginning it was quite difficult to
coordinate schedules and find times to meet as a group. Many times, the whole team wasn’t on the
same page, which caused some frustration. By week seven, we got a routine down. Most of the time
we would meet around the same time each day, so that helped coordinate us. Also, if one or two
people worked on the project alone, we emailed each other with status updates to keep each other in
the loop.
Team chemistry
We had great team chemistry, especially by the end of the project. We even had fun hanging out
outside of working on the project.
Things that worked well
The things that worked well were brainstorming sessions with all four of us present. Having both the
mechanical and electrical people together was really productive for us. We also designated extra time
to making specific weekly schedules, which kept us on track and focused our attention on getting
specific tasks done.
Things that did not work well
The lack of communication at the beginning of the project was a big challenge. It was unclear what
people had completed or hadn’t completed. People just weren’t on the same page. Also, the lack of
clarity on individual tasks was a problem. We should have designated specific tasks for each team
member earlier and better.
Adjustments based on what happened
We started making specific weekly schedules which specified both when we were meeting and what
tasks we would complete that day. This was extremely helpful to our productivity. We also coordinated
our efforts between the mechanical and electrical sides of the project. At first there was quite a gap
between the two, but when we started communicating better through emails and texts things improved.
Lessons learned through this experience that can be applied to Senior Design next year
Through this experience, we learned how important it is to communicate with each other. Especially
with our unique situation between electrical and mechanical engineers, communication is crucial. Also
starting to be productive early is important. We spent a lot of time working later in the quarter, but if
we would have spaced out our time better, it could have gone more smoothly at the end.
P a g e | 43
SIGNATURE PAGE
Completed by all
Sean Byrnes, Electrical Engineer
Jamie Inouye, Appropriate and Sustainable Engineer
Cam Iseri, Mechanical Engineer
Kristin Lorenzen, Mechanical Engineer
P a g e | 44
BIBLIOGRAPHY
Completed by Kristin
"Actuators - How to Waterproof a Servo." How to Build a Robot Tutorial. Society of Robots,
2010. Web. 11 Apr. 2011.
Brain, Marshall, and Craig Freudenrich. "How Submarines Work." Howstuffworks. Discovery.
Web. 11 Apr. 2011.
"Calculating Underwater Pressure." Ask the Van. University of Illinois at Urbana-Champaign, 12
Nov. 2007. Web. 2 May 2011.
Heiszwolf, Johan J. "Submarine Dive Technology." Submarine Technology. 2001. Web. 11 Apr.
2011.
"Mini RC Submarine Ballast Tank Test 1." Youtube.com. 21 Apr. 2009. Web. 11 Apr. 2011.
"Monthly FAQ." NALGENE Labware. Thermo Fisher Scientific Inc., 2011. Web. 2 May 2011.