Project Description
The goal of this project was to provide a framework in which we could apply our knowledge of microcontrollers and multi-processor communications to a task that would provide an enjoyable experience for the users and the observers.
The underlying purpose of this project was to provide us with an opportunity to gain experience in integrating all that we have learned in the ME218 course sequence, with an emphasis on the new material in ME218c. Ultimately, wirelessly controlled motorized small boats were constructed that could communicate with multiple different controllers in order to navigate across Terman Fountain and complete various tasks.
The underlying purpose of this project was to provide us with an opportunity to gain experience in integrating all that we have learned in the ME218 course sequence, with an emphasis on the new material in ME218c. Ultimately, wirelessly controlled motorized small boats were constructed that could communicate with multiple different controllers in order to navigate across Terman Fountain and complete various tasks.
Our Strategy
Our strategy was to build as fast, maneuverable and mechanically robust (read: large and intimidating) ship as possible. This led us to constructing our ship out of duron and fiberglass instead of pink foam (which led to us taking extensive water-proofing measures), as we thought that the extra weight would allow us to navigate better through choppy water and wind. We also chose to propel our ship with jet engines instead of a more traditional propellor/fan/paddle boat system as we felt that these jets would give us the most power and speed.
Detailed Project Specifications
General
□ Each team will construct a SHIP and an ANSIBLE.
□ The SHIPs are devices capable of navigating in Terman Pond while herding the other SHIPs into the gates.
□ The ANSIBLEs are remote controllers for the SHIPs, communicating wirelessly
Basic Gameplay
□ A game round will be a competition between two teams, each with half of the class’ SHIPs and ANSIBLEs.
□ The goal of the game is to score the maximum number of SHIPs through the opposing team’s gate.
□ The game ends when a majority of SHIPs on the Battle Pond are in one team’s Gate, or when people get bored.
The Battlepond
□ The Battle Pond is comprised of a region of Terman Pond, measuring approximately 60 ft by 25 ft
□ The boundaries of the Battle Pond are formed by the walls of Terman Pond on the sides, with the ends composed by constructed walls containing the gates at the center.
□ At the beginning of each game the participating SHIPs will be placed in front of their respective gates
□ Each of the long edges of the Battle Pond will have a refueling station located halfway between the gates.
□ Each team will construct a SHIP and an ANSIBLE.
□ The SHIPs are devices capable of navigating in Terman Pond while herding the other SHIPs into the gates.
□ The ANSIBLEs are remote controllers for the SHIPs, communicating wirelessly
Basic Gameplay
□ A game round will be a competition between two teams, each with half of the class’ SHIPs and ANSIBLEs.
□ The goal of the game is to score the maximum number of SHIPs through the opposing team’s gate.
□ The game ends when a majority of SHIPs on the Battle Pond are in one team’s Gate, or when people get bored.
The Battlepond
□ The Battle Pond is comprised of a region of Terman Pond, measuring approximately 60 ft by 25 ft
□ The boundaries of the Battle Pond are formed by the walls of Terman Pond on the sides, with the ends composed by constructed walls containing the gates at the center.
□ At the beginning of each game the participating SHIPs will be placed in front of their respective gates
□ Each of the long edges of the Battle Pond will have a refueling station located halfway between the gates.
Battlepond
The SHIPs
□ Each SHIP must be capable of moving under its own power within the Battle Pond.
□ SHIPs must be battery powered and operate without a tether. NiCd or NiMH batteries are the only approved power sources.
□ Propulsion and steering systems are not restricted.
□ Control of SHIP functions must be achieved via an ANSIBLE using the provided RF hardware (XBee24 modules)
□ Each SHIP must carry a means of indicating (to the SHIP software) which team it is representing.
□ The SHIP must proudly display their team number.
□ The SHIP must carry a display of the SHIP’s home team. This display will be static for each game.
□ The SHIP must carry a display indicating whether the craft is fueled or not fueled.
□ The SHIP must carry a display indicating the current controlling team. The current controlling team will be one of RED, BLUE, or NONE.
□ All displays defined in the above specifications must be interpretable in direct sunlight at a distance of no less than 30 ft in all directions.
□ SHIPs may only expel water above the waterline under pressure provided by a class-standard water pump provided by SPDL.
□ SHIPs must each carry a class-standard Fuel Tank (funnel assembly). Further details are in The Fuel Tank. □ SHIPs must incorporate an easily accessible switch that disables all moving systems.
□ The perimeter of the largest normal projection of the SHIP to MBPL2 must not exceed 72”. The entire vehicle, projected vertically onto the Pond, must lie within the perimeter, with one exception listed below. Height is not restricted.
□ SHIPs must incorporate a class standard foam bumper around their perimeter, and must be tolerant of moderate bumping from other SHIPs. The bottom edge of the foam bumper must be at a height between 0” and 1.25” above waterline. The bumper must follow the same perimeter that is measured to fit the 72” requirement.
□ SHIPs may also carry a battering ram/lance made from a 3 ft length of the same class-standard foam material. This battering ram is the only device that may extend beyond the perimeter of the craft.
□ If your team chooses to do so, the battering ram may contain a flexible hose, as long as the hose is fully contained within the battering ram.
□ Every SHIP must be controllable through any of the ANSIBLEs via the class-wide protocol (See Communications).
□ The SHIP may issue messages to the ANSIBLE at a rate no greater than 5 Hz.
□ If the SHIP fails to receive a message from its controller for 1 second, it will assume that there is a problem and revert to the controller search process described under Game Details.
The ANSIBLEs
□ Each team will design and construct an ANSIBLE that will relay commands from a human operator to a SHIP, and receive and display connection status with the SHIP and fuel status from the SHIP.
□ The ANSIBLE must be capable of displaying to the operator an indication of active communication with its associated SHIP.
□ The ANSIBLE must provide a method for the operator to use between games to change the home team allegiance of the ANSIBLE from BLUE to RED.
□ The ANSIBLE must provide a method for the operator to use to indicate which SHIP (by team number) the operator would like to control. □ ANSIBLEs must be battery powered, and shall have sufficient battery capacity for at least 8 hours of continuous operation. The report shall show documentation and calculations to support meeting this requirement.
□ ANSIBLEs must be untethered and portable by one person.
□ Input to the ANSIBLE should involve at least 3 sensing modalities (e.g. position, force, audio, acceleration, etc.). Use of unusual interface methods is encouraged.
□ The actions required by the user of the ANSIBLE to issue commands to the SHIP should be inventive and interesting for the audience to watch.
□ The ANSIBLE may issue commands to a SHIP at a rate no greater than 5 Hz.
□ ANSIBLEs should be intuitive to operate, and/or have sufficient visual instructions that a typical spectator (even a non-engineer) would be able to learn its controls within a minute or so. IKEA4 format instructions are preferred.
□ ANSIBLEs must have a switch that controls their self-identified home team: RED or BLUE.
The Fuel Tank
□ Each SHIP must have a Fuel Tank.
□ The Fuel Tank will consist of a funnel mounted on a spring and sensing circuitry that can report to the SHIP the current fuel status.
□ The Fuel Tank must be mounted vertically, with the top of the funnel 15 inches above waterline.
□ The funnel must be carried such that it can deflect from vertical by a minimum of 45° in all directions. Furthermore, the funnel must be carried such that it may tip sufficiently far to completely empty the funnel in directions away from the SHIP centroid.
□ The funnel must not be protected by a structure on the SHIP that completely prevents it from being contacted by another SHIP’s battering ram.
□ Each Fuel Tank will slowly drain of water, eventually causing the SHIP to run out of fuel unless it is replenished.
□ The Fuel Tank will provide a male 4-pin Molex KK254 connector that carries power, ground, and two data lines for asynchronous serial communication.
□ Communication with the Fuel Tank must be accomplished via a PIC12F752 programmed in assembly.
The Gates
□ The Gates are openings in the end walls 4 ft wide.
□ Access through the Gate is controlled by a sliding door.
□ SHIPs may only pass through the Gate when the sliding door is open; they may not pass over or under the walls or the sliding door.
□ Each Gate has two funnels, located to either side of the Gate. The velocity of the sliding door is controlled by the difference in water level between the two funnels.
□ The funnels, like those on the SHIPs, will slowly drain, and may be tipped by SHIPs.
□ Each Gate will have a display of the speed and direction of the sliding door’s movement.
Game Details
□ Upon power-up, voluntary un-pairing, or in the event of a loss of communication with its current ANSIBLE, the SHIP will activate its display that it has no current ANSIBLE and wait for a request for pairing from an eligible ANSIBLE.
□ ANSIBLE eligibility: any ANSIBLE from any team, except for the ANSIBLE that was most recently paired with a given SHIP, may pair with any un-paired un-fueled SHIP. Fueled SHIPs will only pair with an ANSIBLE from their home team.
□ The operator of an ANSIBLE that wishes to control a particular SHIP must select that SHIP (by SHIP number) using the ANSIBLE, and make a unique control action to initiate taking control of the SHIP. This action will result in the ANSIBLE sending a message to the SHIP requesting control of the SHIP. The details of the request process will be defined in the class-wide communications protocol.
□ Setup for the game will consist of: pairing your ANSIBLE with your SHIP, and filling the fuel tank.
□ The game will be started by the sound of an air horn.
□ The game ends when a majority of SHIPs on the Battle Pond are in one team’s Gate, or when people get bored.
□ At the end of the game, the team with the most SHIPs in its Gate is declared victorious.
□ Any SHIP that enters a Gate is removed from active gameplay and may not exit the Gate into the Battle Pond.
□ SHIPs that become un-fueled dissociate from their paired ANSIBLE and become available for pairing by any other available ANSIBLE.
□ Un-fueled SHIPs are limited to 50% of their maximum speed in any direction.
□ When un-fueled SHIPs become fueled, they un-pair from any paired ANSIBLE and revert to being loyal to their home team by accepting pair requests only from that team’s ANSIBLEs.
□ Any paired ANSIBLE may voluntarily un-pair from its SHIP at any time. The SHIP then reverts to a pairing state, limited by fuel tank level as clarified above.
□ Any SHIP found to not be in compliance with the fuel level indicator will be forcibly placed in their opposing team’s Gate.
Communications
□ Communications between the SHIPs and ANSIBLEs will take place over an SPDL-supplied 802.15.4 radio (Xbee24) using the Non-Beacon API mode of operation.
□ Each XBee module will communicate with your device at 115 200 baud.
□ Any ANSIBLE should be capable of controlling any SHIP.
□ Once a game begins, communication will take the form of bidirectional communications between a SHIP and its paired ANSIBLE.
□ Each SHIP and ANSIBLE will be assigned a unique ID in the form of the source address of each SPDL supplied radio.
□ The details of the communications protocol will be defined and specified by a Communications Committee, which will consist of one member from each project group. The specification must be in a written form and with sufficient detail that someone skilled in ME218 material could implement it.
□ In order to better balance the workload and learning among team members, each of the following tasks must be completed by a different member of the team: – serve on the communications committee. – implement communications on the SHIP. – implement communications on the ANSIBLE.
□ The class communications protocol must include a procedure for validation of communication between the SHIP and ANSIBLE. The SHIPs must provide a visual indication of when a functioning communications link between the SHIP and ANSIBLE exists. The ”current controlling team” display is sufficient to meet this requirement.
□ The SHIP will respond to the first received request for control from an eligible ANSIBLE by sending a message back to the requesting ANSIBLE confirming receipt. At this time, the SHIP will also manipulate its display of the current controlling team to match that of the newly-paired ANSIBLE.
□ If a SHIP receives a request for control while it is already under control, it will silently ignore the request. □ Within 100 ms of un-pairing from its paired ANSIBLE, a SHIP must reset its display of current controlling team.
□ A ANSIBLE may issue messages to SHIP at a rate not to exceed 5 Hz.
□ Each SHIP must be capable of moving under its own power within the Battle Pond.
□ SHIPs must be battery powered and operate without a tether. NiCd or NiMH batteries are the only approved power sources.
□ Propulsion and steering systems are not restricted.
□ Control of SHIP functions must be achieved via an ANSIBLE using the provided RF hardware (XBee24 modules)
□ Each SHIP must carry a means of indicating (to the SHIP software) which team it is representing.
□ The SHIP must proudly display their team number.
□ The SHIP must carry a display of the SHIP’s home team. This display will be static for each game.
□ The SHIP must carry a display indicating whether the craft is fueled or not fueled.
□ The SHIP must carry a display indicating the current controlling team. The current controlling team will be one of RED, BLUE, or NONE.
□ All displays defined in the above specifications must be interpretable in direct sunlight at a distance of no less than 30 ft in all directions.
□ SHIPs may only expel water above the waterline under pressure provided by a class-standard water pump provided by SPDL.
□ SHIPs must each carry a class-standard Fuel Tank (funnel assembly). Further details are in The Fuel Tank. □ SHIPs must incorporate an easily accessible switch that disables all moving systems.
□ The perimeter of the largest normal projection of the SHIP to MBPL2 must not exceed 72”. The entire vehicle, projected vertically onto the Pond, must lie within the perimeter, with one exception listed below. Height is not restricted.
□ SHIPs must incorporate a class standard foam bumper around their perimeter, and must be tolerant of moderate bumping from other SHIPs. The bottom edge of the foam bumper must be at a height between 0” and 1.25” above waterline. The bumper must follow the same perimeter that is measured to fit the 72” requirement.
□ SHIPs may also carry a battering ram/lance made from a 3 ft length of the same class-standard foam material. This battering ram is the only device that may extend beyond the perimeter of the craft.
□ If your team chooses to do so, the battering ram may contain a flexible hose, as long as the hose is fully contained within the battering ram.
□ Every SHIP must be controllable through any of the ANSIBLEs via the class-wide protocol (See Communications).
□ The SHIP may issue messages to the ANSIBLE at a rate no greater than 5 Hz.
□ If the SHIP fails to receive a message from its controller for 1 second, it will assume that there is a problem and revert to the controller search process described under Game Details.
The ANSIBLEs
□ Each team will design and construct an ANSIBLE that will relay commands from a human operator to a SHIP, and receive and display connection status with the SHIP and fuel status from the SHIP.
□ The ANSIBLE must be capable of displaying to the operator an indication of active communication with its associated SHIP.
□ The ANSIBLE must provide a method for the operator to use between games to change the home team allegiance of the ANSIBLE from BLUE to RED.
□ The ANSIBLE must provide a method for the operator to use to indicate which SHIP (by team number) the operator would like to control. □ ANSIBLEs must be battery powered, and shall have sufficient battery capacity for at least 8 hours of continuous operation. The report shall show documentation and calculations to support meeting this requirement.
□ ANSIBLEs must be untethered and portable by one person.
□ Input to the ANSIBLE should involve at least 3 sensing modalities (e.g. position, force, audio, acceleration, etc.). Use of unusual interface methods is encouraged.
□ The actions required by the user of the ANSIBLE to issue commands to the SHIP should be inventive and interesting for the audience to watch.
□ The ANSIBLE may issue commands to a SHIP at a rate no greater than 5 Hz.
□ ANSIBLEs should be intuitive to operate, and/or have sufficient visual instructions that a typical spectator (even a non-engineer) would be able to learn its controls within a minute or so. IKEA4 format instructions are preferred.
□ ANSIBLEs must have a switch that controls their self-identified home team: RED or BLUE.
The Fuel Tank
□ Each SHIP must have a Fuel Tank.
□ The Fuel Tank will consist of a funnel mounted on a spring and sensing circuitry that can report to the SHIP the current fuel status.
□ The Fuel Tank must be mounted vertically, with the top of the funnel 15 inches above waterline.
□ The funnel must be carried such that it can deflect from vertical by a minimum of 45° in all directions. Furthermore, the funnel must be carried such that it may tip sufficiently far to completely empty the funnel in directions away from the SHIP centroid.
□ The funnel must not be protected by a structure on the SHIP that completely prevents it from being contacted by another SHIP’s battering ram.
□ Each Fuel Tank will slowly drain of water, eventually causing the SHIP to run out of fuel unless it is replenished.
□ The Fuel Tank will provide a male 4-pin Molex KK254 connector that carries power, ground, and two data lines for asynchronous serial communication.
□ Communication with the Fuel Tank must be accomplished via a PIC12F752 programmed in assembly.
The Gates
□ The Gates are openings in the end walls 4 ft wide.
□ Access through the Gate is controlled by a sliding door.
□ SHIPs may only pass through the Gate when the sliding door is open; they may not pass over or under the walls or the sliding door.
□ Each Gate has two funnels, located to either side of the Gate. The velocity of the sliding door is controlled by the difference in water level between the two funnels.
□ The funnels, like those on the SHIPs, will slowly drain, and may be tipped by SHIPs.
□ Each Gate will have a display of the speed and direction of the sliding door’s movement.
Game Details
□ Upon power-up, voluntary un-pairing, or in the event of a loss of communication with its current ANSIBLE, the SHIP will activate its display that it has no current ANSIBLE and wait for a request for pairing from an eligible ANSIBLE.
□ ANSIBLE eligibility: any ANSIBLE from any team, except for the ANSIBLE that was most recently paired with a given SHIP, may pair with any un-paired un-fueled SHIP. Fueled SHIPs will only pair with an ANSIBLE from their home team.
□ The operator of an ANSIBLE that wishes to control a particular SHIP must select that SHIP (by SHIP number) using the ANSIBLE, and make a unique control action to initiate taking control of the SHIP. This action will result in the ANSIBLE sending a message to the SHIP requesting control of the SHIP. The details of the request process will be defined in the class-wide communications protocol.
□ Setup for the game will consist of: pairing your ANSIBLE with your SHIP, and filling the fuel tank.
□ The game will be started by the sound of an air horn.
□ The game ends when a majority of SHIPs on the Battle Pond are in one team’s Gate, or when people get bored.
□ At the end of the game, the team with the most SHIPs in its Gate is declared victorious.
□ Any SHIP that enters a Gate is removed from active gameplay and may not exit the Gate into the Battle Pond.
□ SHIPs that become un-fueled dissociate from their paired ANSIBLE and become available for pairing by any other available ANSIBLE.
□ Un-fueled SHIPs are limited to 50% of their maximum speed in any direction.
□ When un-fueled SHIPs become fueled, they un-pair from any paired ANSIBLE and revert to being loyal to their home team by accepting pair requests only from that team’s ANSIBLEs.
□ Any paired ANSIBLE may voluntarily un-pair from its SHIP at any time. The SHIP then reverts to a pairing state, limited by fuel tank level as clarified above.
□ Any SHIP found to not be in compliance with the fuel level indicator will be forcibly placed in their opposing team’s Gate.
Communications
□ Communications between the SHIPs and ANSIBLEs will take place over an SPDL-supplied 802.15.4 radio (Xbee24) using the Non-Beacon API mode of operation.
□ Each XBee module will communicate with your device at 115 200 baud.
□ Any ANSIBLE should be capable of controlling any SHIP.
□ Once a game begins, communication will take the form of bidirectional communications between a SHIP and its paired ANSIBLE.
□ Each SHIP and ANSIBLE will be assigned a unique ID in the form of the source address of each SPDL supplied radio.
□ The details of the communications protocol will be defined and specified by a Communications Committee, which will consist of one member from each project group. The specification must be in a written form and with sufficient detail that someone skilled in ME218 material could implement it.
□ In order to better balance the workload and learning among team members, each of the following tasks must be completed by a different member of the team: – serve on the communications committee. – implement communications on the SHIP. – implement communications on the ANSIBLE.
□ The class communications protocol must include a procedure for validation of communication between the SHIP and ANSIBLE. The SHIPs must provide a visual indication of when a functioning communications link between the SHIP and ANSIBLE exists. The ”current controlling team” display is sufficient to meet this requirement.
□ The SHIP will respond to the first received request for control from an eligible ANSIBLE by sending a message back to the requesting ANSIBLE confirming receipt. At this time, the SHIP will also manipulate its display of the current controlling team to match that of the newly-paired ANSIBLE.
□ If a SHIP receives a request for control while it is already under control, it will silently ignore the request. □ Within 100 ms of un-pairing from its paired ANSIBLE, a SHIP must reset its display of current controlling team.
□ A ANSIBLE may issue messages to SHIP at a rate not to exceed 5 Hz.