04. Design Requirements - kevinc45/TimTam GitHub Wiki
4.1. Overview
Chef Cross, our innovative solution, is a unique collaborative game designed for crosswalks. It effectively redirects pedestrians' attention from their smartphones to their surroundings, particularly when they are waiting to cross the road.
4.1.1. Goals and Objectives
Understanding how dangerous it is to use a mobile phone while crossing the road, we aim to prevent them before the pedestrian crosses the street. Therefore, we want Chef Cross to be able to distract pedestrians from their phones before crossing. If they already put their phones away before starting to cross, we believe it will reduce the chance of them turning on their phone again, at least until they arrive on the other side of the road.
4.1.2. Scope
The project will cover:
- A fully functional game system
- Game controller by using Arduino sensors
- Platform/environment to play the game to enact the real-world experience
However, the project will not cover:
- Planting the display on the floor
- Single-player mode
- A detection of whether a pedestrian is present or not
Understanding things outside of the scope above, our team will try to simulate them as best we can to create an experience as close as possible to the real-world implementation.
4.2. Functional Requirements
Feature 1: Game System
Description: The game should be able to be operated individually, without any operation made by humans to affect the game flow. Requirements:
- The system must be able to check if the ingredients match the recipe given or not.
- The system must be able to send ingredients to the other side.
- The system must be able to randomise the game state when initiating a new round or game.
Feature 2: Arduino Sensors-based Controller
Description: Arduino sensors work as the controller in this game, which means the user's gestures operate the game. It should be able to detect the gestures and send them to the game system. Requirements:
- The system must be able to detect movement from its user.
- The system must be able to trigger a certain function in the game system to operate the game.
4.3. Non-Functional Requirements
- Performance: The system must have a slight/unnoticeable delay between the input (Arduino sensors) and the output (game screen).
- Collaboration: The system must be able to be operated by one or more people, whether on the same side or on different sides.
- Usability: The system must be intuitive, self-explanatory, and easy to understand.
- Environmental: The environment must be able to hold the weight of whatever number of people are supported by the collaboration requirement above. To be able to be played properly, we aim for a maximum of eight people, with four on each side.
4.4. User Roles
Pedestrian(s) that are about to cross on each side will take the role of fellow chefs, trying to complete the randomised recipe placed in the middle of their screen. Both have the same ability and the same randomised condition/state.
4.5. Technical Requirements
Game System: Unity v2022.3.50.f1 and C# (Scripting)
Arduino:
- Arduino IDE
- 2x Arduino Uno Rev3 Board
- 1x Breadboard
- 8x HC-SR04 Ultrasonic Module Distance Measuring Sensor
- Jumper cables to connect boards, sensors, and the breadboard
4.6. Simulated Out-of-Scope Requirements
What it is supposed to be | How it will be simulated | What's missing | What's working | |
---|---|---|---|---|
Game display | A screen planted on the ground and can be see directly while playing the game | We will use a projector that displays the game on a screen | The experience of looking downward and playing the game focuses on looking only at the ground | The experience of knowing the game state, ingredients' position, and the recipe |
Presence detection and a single-player mode | A mode where the player can play by themselves | During the demonstration, one of our team members will be the user on the other side of the road | The experience of being able to experience the game alone | The experience of playing the game against someone else/computer-simulated who fully understands the game |
4.7. Use Case Scenarios
Use Case 1: User arrived when the crossing signal is red
- The game will start by itself
- The user can start sending ingredients to the other side
- The user can collaborate with another user on the other side
- If a recipe is complete, the game will restart and randomise the state again
- When the crossing signal is about to turn green, the game will tell the user that it is time to cross
Use Case 2: User arrived when the crossing signal is green
- The game will not start, either turning off the screen or displaying a warning screen to look around and not using a smartphone.
4.8. Timeline and Milestones
- Milestone 1a: Create the game using Unity, operated by a keyboard. Make functions in the game able to be triggered using a key press.
- Milestone 1b: Create the Arduino .ino code that can detect readings from four sensors.
- Milestone 2: Connect two Arduino boards through the serial monitor using the
tx
andrx
channels. - Milestone 3: Connect the Arduino with the Unity. Attach each sensor to a keypress so the Arduino can trigger functions achieved in
Milestone 1a
. - Milestone 4: Build the platform/environment and implement the working Arduino system.