-
Notifications
You must be signed in to change notification settings - Fork 0
/
Overview.txt
145 lines (84 loc) · 3.36 KB
/
Overview.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
____________________ Overview ____________________
- Structure of repo
______________________ Clients ______________________
1. Mazerobot
- ev3 robot running ev3dev
- executes robot cmds from GUI
2. GUI (1 & 2)
- Website
- Custom Interface to allow users to program the robot
3. Log
- Observes the interaction among clients
- Traceback errors
________________ Channel Interaction ________________
* This is a demonstration of how the channel look like, in reality, messages are not enumerated.
~[Client ID] [Client Msg]~
msg 1 : [Mazerobot] status: Free
msg 2 : [GUI1] Maze_robot run [...]
msg 3 : [Mazerobot] Received
msg 4 : [Mazerobot] status: Occupied
[Robot Completes the GUI Program]
msg 5 : [MazeRunner] status: Free
...
____________________ Break-down ____________________
# msg 1 : [Mazerobot] status: Free [MazeRobot✅] [GUI✅]
- Once the robot is ready, this msg will be sent by the robot to the channel
- Once received by GUIs, GUIs can go ahead to run the seq of movements on the robot
# msg 2 : [GUI1] Maze_robot run [...] [MazeRobot✅] [GUI✅]
- ... : commands for the movement of the robot
- [Optional] : GUI shows that the program is being loaded
# msg 3 : [Mazerunner] Received [MazeRobot✅] [GUI✅]
- cfmation from the Maze-Runner
- [Optional] GUI shows that the robot is running
# msg 5 : [Mazerunner] status: Free [MazeRobot✅] [GUI✅]
- The loop continues
# Other messages : [GUI] Interrupt Execution [MazeRobot✅] [GUI✅]
- if program on pybricks is running, immediately stops the program
- [Software specification] threading: - one thread to receive incoming cmd and interrupt execution, another one to close pybricks once execution is done
_____________________ Robot cmd _____________________
| Basic Robot Movement |
1. f1000 [MazeRobot✅] [GUI✅]
- f : move forward
- 1000 : for 1000 deg
2. b1000 [MazeRobot✅] [GUI✅]
^
3. l30 [MazeRobot✅] [GUI✅]
- l : turn left on the spot
- 30 : (30/360)*1325; robot to the 30 bearing
4. r30 [MazeRobot✅] [GUI✅]
^
| Code Snippets |
1. t1000 [MazeRobot✅] [GUI✅]
- t : line trace
- 1000 : for 1000 deg
| Gyro | [❌]
1. gf1000 [❌]
gf : pid gyro straight
1000 : by 1000 deg
2. gt90 [❌]
gf : p gyro turn
90 : until bearing 90 is reached
| Sensors |
1. lr [MazeRobot✅] [GUI✅]
- lr : returns light reflection value (0 - 100 arbitrary units)
2. ud [MazeRobot✅] [GUI✅]
- usd : returns distance value from ultrasonic sensor (0 - 2000 mm)
[* 🌟 New *] | Indentation |
1. ...,[,... [MazeRobot✅]
- [ : increases global indentation by 1
2. ...,],... [MazeRobot✅]
- ] : decreases global indentation by 1
[* ❗ Revised *] | Loops & Logic |
1. w(),[,...,] [MazeRobot✅]
w() -> while true, execute functions inside the bracket
2. if(condition), ef(condition), el(condition) [MazeRobot✅]
- checking of syntax done on gui side
3. kb [MazeRobot✅]
kb : keyword break
4. w(),[,if(condition),[, ... ,], ef(condition),[, ... ,],el(condition),[, ... ,],] [MazeRobot✅]
- if/else statement nested inside while loop
5. for(i),[,...,], [MazeRobot✅]
- executes the loop i times
| Operators |
1. >, <, ==, <=, >= [MazeRobot✅] [GUI✅]
- comparison operators