44
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

Yellow Submarine - Cam Iseri: Portfoliodesign against the requirements. Customer requirements: The mini-submarine must be able to run for at least 20 minutes non-stop. The batteries

  • 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.