Skip to content

Commit 5f8950b

Browse files
authored
Merge pull request #74 from alan412/pr_design_docs
Start of design doc
2 parents 04ec144 + d591ea7 commit 5f8950b

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

docs/design.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Overarching thoughts (North Star)
2+
* The primary purpose for Blocks is to be an easier environment for students to program robots.
3+
* Students should be able to program in Blocks without any experienced software mentor help.
4+
* This means that reducing confusion in blocks is more important than being 1:1 mapping to Python
5+
* For ease of use, we are ok with not being able to do everything in Blocks you can do in Python.
6+
* You should be able to make a competitive robot using Blocks
7+
* Our goal is to raise the floor, not lower the ceiling
8+
* Programming in Blocks is still programming. You can make logic errors and programs that don't work and have errors
9+
* Some students will move on from Blocks to text based languages
10+
* Students who want to do more than they can in Blocks can export from Blocks and use that as a starting point for their own Python coding.
11+
12+
# Intentional Limitations (for simplicity)
13+
* Each blockly workspace goes to one Python file (module) and can only contain one class
14+
* The only type of methods that can be created are class instance methods
15+
* All variables created in blockly will be class instance variables
16+
17+
# Design thoughts
18+
(We assume that these bullet points apply to programming in C++, Java, and Python too.)
19+
## OpModes
20+
* An OpMode can be either Autonomous or Teleop
21+
* An OpMode can be marked as Disabled or Enabled
22+
* An OpMode has access to a singleton instance of the Robot class
23+
## Robot
24+
* There should be one robot class that is shared between all OpModes
25+
* A robot has zero or more mechanisms
26+
* A Robot has zero or more components
27+
28+
## Mechanisms
29+
* A mechansim can be created by the student and can have zero or more submechanisms and zero or more components
30+
* Example: A claw could have a servo (to open and close) and a range sensor (to determine when something is in the claw)
31+
32+
## Components
33+
* Every actuator is a component
34+
* Every sensor is a component

0 commit comments

Comments
 (0)