Skip to content

Commit

Permalink
Merge pull request #26 from Lagavulin9/documentation
Browse files Browse the repository at this point in the history
#25 [doc] put docu in main
  • Loading branch information
Lagavulin9 committed Nov 2, 2023
2 parents fbf3f2b + 910a377 commit 24f9954
Show file tree
Hide file tree
Showing 29 changed files with 389 additions and 427 deletions.
28 changes: 28 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Project Setting
.vscode/
sample
.DS_Store

# QT temporary files
build*/
*.o
*.stash
.qtc_clangd/
qrc*.cpp
app/dashboard/dashboard
dashboard.app/
Makefile
*.pro.user

# Python Virtual Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Python Temporary Files
__pycache__/
.fake
427 changes: 0 additions & 427 deletions LICENSE

This file was deleted.

8 changes: 8 additions & 0 deletions documentation/can_communication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Can Communication
## Table of Contents
- [Intro](#intro)
- [feature1](#feature1)

## Intro

## feature1
47 changes: 47 additions & 0 deletions documentation/car_control.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Car Control
## Table of Contents
- [Intro](#intro)
- [Gamepad](#gamepad)

## Intro
This document describes how to control the car. <br>

## Gamepad - User Interface

<img src="./images/gamepad.png" >|

| Button | Action |
| ------ | ------ |
| Left Joystick | Steering |
| Right Joystick | Throttle |
| L1 | Left Turn Signal |
| R1 | Right Turn Signal |
| X | Neutral ("N")|
| A | Drive ("D")|
| B | Park ("P")|
| Y | Reverse ("R")|

The car's steering and throttle are controlled by the joysticks. <br>
The car's turn signals are controlled by the L1 (left indicator) and R1 buttons (right indicator). <br>
The car's gear is selected by the X (Neutral), A (Drive), B (Park), and Y (Reverse) buttons. <br>
If the car is in Drive ("D"), the car will drive forward. <br>
If the car is in Reverse ("R"), the car will drive backwards. <br>
In "D" the Joystick needs to be pushed forward to drive forward. Hence, the car will not move if the Joystick is pushed backwards. <br>
The same rule apply for the gear selection reverse ("R") just in reverse. <br>
Last but not least, in Park ("P") & Neutral mode ("N"), the car will not move. <br>

## Car Control - Software Interface
Class Car has these attributes that hold the follwoing values: <br>

Attribute | Value
--- | ---
throttle | -1.00 (reverse) up to +1.00 (forward)
max_throttle | 0.00 up to 1.00
steering | -1.00 (left) up to +1.00 (right)
max_steering | 0.00 up to 1.00
indicator | "L" (left), "R" (right), None (no indicator)
gear | "P" (park), "N" (neutral), "D" (drive), "R" (reverse) (default: "N")

Note: steering & throttle are multiplied by max_throttle and max_steering to limit the max values. max_throttel default: 0.3 & max_steering default: 1.00<br>


8 changes: 8 additions & 0 deletions documentation/car_info.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Moderator
## Table of Contents
- [Intro](#intro)
- [feature1](#feature1)

## Intro

## feature1
8 changes: 8 additions & 0 deletions documentation/dashboard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Dashboard
## Table of Contents
- [Intro](#intro)
- [feature1](#feature1)

## Intro

## feature1
39 changes: 39 additions & 0 deletions documentation/design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Design & User Stories

## Table of Contents
- [Intro](#intro)
- [Dashboard](#dashboard)
- [Head Unit](#head-unit)
<br>

## Intro

This is the design for the new head unit and dashboard. <br>
Designs are made in [Figma](https://www.figma.com/file/mVfEtLbcduyV5czodVTCHv/HMI-Cluster-Design-(Community)?type=design&node-id=104%3A12&mode=design&t=MNUstrlhuIIZIg9A-1). Click the link to view the current design. <br>
The design is based on the [user requirements](../project-requirements.md#user-requirements) and [system requirements](../project-requirements.md#system-requirements). <br>

💡 If you have suggestions to enhance the design, do not hesitate to contact us. <br>

## Dashboard
The image below shows the dashboard. <br>
It is split into **three** parts. <br>
- **Left:** Car related informations like battery level. <br>
- **Middle:** Driving relevant informations like speed and the gear selection. <br>
- **Right:** Media Player <br>

<img src="./images/design-dashboard.png">

## Head Unit
**Left:** Gear Selection (selected by touch input) <br>
**Right:** The user can swipe through **three** features.
- First: Media Player -> The User can listen & whatch to various media sources streamed from a mobile device that is connected via bluetooth. <br>
- Second: Car Info -> The user can see all dashboard informations at a glace.
- Third: Ambiente lights -> The color scheme of the headunit & dashboard can be selected by the user's preferences.

<br>
<img src="./images/design-headunit.png">





8 changes: 8 additions & 0 deletions documentation/headunit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Head Unit
## Table of Contents
- [Intro](#intro)
- [feature1](#feature1)

## Intro

## feature1
Binary file added documentation/images/2ch-can-fd-hat.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
163 changes: 163 additions & 0 deletions documentation/images/Head_Unit_Structure.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
<mxfile host="app.diagrams.net" modified="2023-10-03T17:32:55.193Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/118.0" etag="FnixyxP-PPXGhE1FhJFr" version="22.0.0" type="device">
<diagram name="페이지-1" id="K-Ejqc2MxE7wKMK-bB0k">
<mxGraphModel dx="2312" dy="1547" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="3kEx9sMu7WbUUJkY24tn-57" value="&lt;div&gt;application&lt;/div&gt;&lt;div&gt;car_control&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=default;fillColor=none;align=left;arcSize=0;" vertex="1" parent="1">
<mxGeometry x="-1240" y="190" width="590" height="160" as="geometry" />
</mxCell>
<mxCell id="fAp-2_j_3HBK7AKlGlLT-26" value="&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;class Car&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#000000;arcSize=3;align=left;" parent="1" vertex="1">
<mxGeometry x="-1100" y="250" width="450" height="70" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-1" value="&lt;div&gt;class Car_Control&lt;/div&gt;&lt;div&gt;(Server)&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=default;fillColor=none;align=left;arcSize=6;" vertex="1" parent="1">
<mxGeometry x="-1210" y="190" width="560" height="60" as="geometry" />
</mxCell>
<mxCell id="fAp-2_j_3HBK7AKlGlLT-13" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-800" y="100" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="fAp-2_j_3HBK7AKlGlLT-14" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fAp-2_j_3HBK7AKlGlLT-13" target="fAp-2_j_3HBK7AKlGlLT-16" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-685" y="130" as="sourcePoint" />
<mxPoint x="-790" y="170" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fAp-2_j_3HBK7AKlGlLT-17" value="&lt;div&gt;Request&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 6px;&quot;&gt;(getter/setter)&lt;/font&gt;&lt;br&gt;&lt;/div&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="fAp-2_j_3HBK7AKlGlLT-14" vertex="1" connectable="0">
<mxGeometry x="-0.0614" y="1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="fAp-2_j_3HBK7AKlGlLT-15" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" parent="1" source="fAp-2_j_3HBK7AKlGlLT-16" target="fAp-2_j_3HBK7AKlGlLT-13" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-760" y="230" as="sourcePoint" />
<mxPoint x="-757" y="130" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fAp-2_j_3HBK7AKlGlLT-32" value="&lt;div&gt;Response&lt;/div&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="fAp-2_j_3HBK7AKlGlLT-15" vertex="1" connectable="0">
<mxGeometry x="0.1826" y="-2" relative="1" as="geometry">
<mxPoint y="7" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="fAp-2_j_3HBK7AKlGlLT-16" value="set_gear_service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-800" y="210" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="9B1BcEBASf7qN-Ou7HYL-8" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1100" y="100" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="9B1BcEBASf7qN-Ou7HYL-11" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" parent="1" source="9B1BcEBASf7qN-Ou7HYL-13" target="9B1BcEBASf7qN-Ou7HYL-8" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-1060" y="230" as="sourcePoint" />
<mxPoint x="-1057" y="130" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="9B1BcEBASf7qN-Ou7HYL-12" value="&lt;div&gt;Notifiy&amp;amp;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Publish&lt;/div&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="9B1BcEBASf7qN-Ou7HYL-11" vertex="1" connectable="0">
<mxGeometry x="-0.1893" y="-2" relative="1" as="geometry">
<mxPoint y="-23" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="9B1BcEBASf7qN-Ou7HYL-13" value="get_indicator_service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1100" y="210" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-2" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;startArrow=classicThin;startFill=1;" edge="1" parent="1" source="9B1BcEBASf7qN-Ou7HYL-8" target="9B1BcEBASf7qN-Ou7HYL-13">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-1065" y="140" as="sourcePoint" />
<mxPoint x="-1065" y="230" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-3" value="&lt;div&gt;Find,&lt;/div&gt;&lt;div&gt;Offer, &lt;/div&gt;&lt;div&gt;Subcribe&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;amp; ACK&lt;/div&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="3kEx9sMu7WbUUJkY24tn-2">
<mxGeometry x="-0.1893" y="-2" relative="1" as="geometry">
<mxPoint y="8" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="3kEx9sMu7WbUUJkY24tn-22" target="9B1BcEBASf7qN-Ou7HYL-13">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-960" y="260" />
<mxPoint x="-1030" y="260" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="3kEx9sMu7WbUUJkY24tn-23" target="fAp-2_j_3HBK7AKlGlLT-16">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-610" y="453" as="sourcePoint" />
<mxPoint x="-730" y="240" as="targetPoint" />
<Array as="points">
<mxPoint x="-772" y="280" />
<mxPoint x="-770" y="280" />
<mxPoint x="-770" y="260" />
<mxPoint x="-730" y="260" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-35" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-950" y="100" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-38" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="3kEx9sMu7WbUUJkY24tn-40" target="3kEx9sMu7WbUUJkY24tn-35">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-910" y="230" as="sourcePoint" />
<mxPoint x="-907" y="130" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-39" value="&lt;div&gt;Notifiy&amp;amp;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Publish&lt;/div&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="3kEx9sMu7WbUUJkY24tn-38">
<mxGeometry x="-0.1893" y="-2" relative="1" as="geometry">
<mxPoint y="-23" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-40" value="get_gear_service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-950" y="210" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-41" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;startArrow=classicThin;startFill=1;" edge="1" parent="1" source="3kEx9sMu7WbUUJkY24tn-35" target="3kEx9sMu7WbUUJkY24tn-40">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-915" y="140" as="sourcePoint" />
<mxPoint x="-915" y="230" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-42" value="&lt;div&gt;Find,&lt;/div&gt;&lt;div&gt;Offer, &lt;/div&gt;&lt;div&gt;Subcribe&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;amp; ACK&lt;/div&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="3kEx9sMu7WbUUJkY24tn-41">
<mxGeometry x="-0.1893" y="-2" relative="1" as="geometry">
<mxPoint y="8" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="3kEx9sMu7WbUUJkY24tn-22" target="3kEx9sMu7WbUUJkY24tn-40">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-610" y="453" as="sourcePoint" />
<mxPoint x="-1020" y="250" as="targetPoint" />
<Array as="points">
<mxPoint x="-960" y="260" />
<mxPoint x="-880" y="260" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fAp-2_j_3HBK7AKlGlLT-8" value="throttle" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1030" y="293" width="80" height="20" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-23" value="setter" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-842" y="266" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-22" value="getter" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;container=0;" vertex="1" parent="1">
<mxGeometry x="-1030" y="266" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-44" value="steering" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-947" y="293" width="80" height="20" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-45" value="indicator" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-864" y="293" width="80" height="20" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-47" value="gear" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-781" y="293" width="80" height="20" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-55" value="&lt;div&gt;class ShanWanGamepad&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#000000;arcSize=3;align=left;" vertex="1" parent="1">
<mxGeometry x="-919" y="320" width="139" height="30" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-56" value="&lt;div&gt;class PiRacerStandard&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#000000;arcSize=3;align=left;" vertex="1" parent="1">
<mxGeometry x="-780" y="320" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-58" value="&lt;div&gt;application&lt;/div&gt;&lt;div&gt;moderator&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=default;fillColor=none;align=left;arcSize=0;" vertex="1" parent="1">
<mxGeometry x="-1240" y="-20" width="590" height="160" as="geometry" />
</mxCell>
<mxCell id="3kEx9sMu7WbUUJkY24tn-59" value="&lt;div&gt;Car_Control&lt;/div&gt;&lt;div&gt;(Client)&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=default;fillColor=none;align=left;arcSize=6;" vertex="1" parent="1">
<mxGeometry x="-1210" y="80" width="560" height="60" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file added documentation/images/arduino_uno.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/assembled_PiRacer_1.JPG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/assembled_PiRacer_2.JPG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/can_bus_shield_Ardunio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/design-dashboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/design-headunit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/gamepad.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/piracer.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/raspberry-pi-4-modell-b.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/speedsensor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/system_requirements.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/user_requirements.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/waveshare-7inch-HDMI-LCD.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/waveshare-9inch-DSI-LCD.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions documentation/moderator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Moderator
## Table of Contents
- [Intro](#intro)
- [feature1](#feature1)

## Intro

## feature1
14 changes: 14 additions & 0 deletions documentation/project-requirments.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Project Requirements

The following are the requirements for the project. <br>
There are two types of requirements: <br>
- [User Requirements](#user-requirements)
- [System Requirements](#system-requirements)

The lists will be used to **test the project.** <br>

## User Requirements
![image](images/user_requirements.png)

## System Requirements
![image](images/system_requirements.png)
1 change: 1 addition & 0 deletions documentation/software-structure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Loading

0 comments on commit 24f9954

Please sign in to comment.