75 lines
1.9 KiB
Markdown
75 lines
1.9 KiB
Markdown
# Infrastructure UML
|
|
|
|
---
|
|
|
|
The design for our project can be represented by the diagram below.
|
|
|
|
A simple linguistic representation of the diagram is as follows:
|
|
|
|
We have a Raspberry Pi, which runs a NodeJS server to handle all incoming requests.
|
|
This server is connected to a MariaDB database, which stores all the exercise data.
|
|
This data can then be received from the application we built for the Pepper robot.
|
|
We also have two ESP8266 modules, which are connected to the Pepper robot's Web Server.
|
|
These modules record angular motion via gyroscopes, and send this data to the web server on the Pepper robot.
|
|
The web server is a requirement to receive incoming data from the sensors, due to the ESP's not having a
|
|
dedicated bluetooth chip to communicate with the Pepper robot.
|
|
The parsed data on the application can then be shown to the user with some feedback regarding their performance.
|
|
|
|
``` mermaid
|
|
classDiagram
|
|
|
|
Raspberry Pi --> NodeJS
|
|
Raspberry Pi --> Database
|
|
NodeJS <--> Android Application : Request exercise data from database
|
|
Database <--> NodeJS : Database queries
|
|
|
|
|
|
ESP8266 --> Android Application : Send rotation data via WiFi to\n Pepper Web Server
|
|
namespace Server {
|
|
class Raspberry Pi {
|
|
+MariaDB
|
|
+Apache2
|
|
+NodeJS
|
|
Database
|
|
Webserver
|
|
}
|
|
|
|
class Database {
|
|
+ExerciseID
|
|
+ExerciseName
|
|
+ExerciseShortDesc
|
|
+ExerciseDescription
|
|
+ExerciseVideo
|
|
+ExerciseImage
|
|
+GyroVectors
|
|
+MuscleGroup
|
|
}
|
|
|
|
class NodeJS {
|
|
+MariaDB
|
|
+Handle requests
|
|
}
|
|
}
|
|
|
|
namespace Pepper {
|
|
class Android Application {
|
|
+Java
|
|
+Android SDK
|
|
+QiSDK
|
|
+WebServer
|
|
+Acquire rotation data from sensors
|
|
}
|
|
|
|
}
|
|
|
|
namespace Hardware {
|
|
class ESP8266{
|
|
+RotationX
|
|
+RotationY
|
|
+RotationZ
|
|
Send rotation data to Web Server
|
|
}
|
|
}
|
|
```
|
|
|