ABCDEFG
1
Hanging Plotter Work Breakdownv22.12
2
piplotter.com/breakdowns
3
Task NumberDoneTaskEstimateHurdles / DependenciesDate completedWork-Hours
4
100MOTOR EPICNo dependency
5
101Spin a motor using RasPi/Arduino/etc2Need to wire electronics, need to set up RasPi/Arduino/etc
6
102Spin a motor θ degrees over T milliseconds1Need timer/stopwatch in code
7
103Spin one motor A degrees and another B degrees over T milliseconds2Need to utilize multithreading
8
104Encapsulate work behind an interface MultiMotor.rotate(A, B, T)1Possible refactoring
9
200CONSTRUCTION EPICNo dependency
10
201Attach crossbar onto easel1How will you make this sturdy? Will you need a drill?
11
202Create spools for motors2What will spools be made of? How will you attach to motor? RC wheels? 3D printing?
12
203Attach motors and spools onto easel1
13
204Create hanging rig carriage3How is pen mounted? If adding pen lift servo, how will you keep pen off paper without wobbling the carriage? How will you mount the servo?
14
205Mount electronics onto back of easel, and re-wire1
15
300CONTROLLER EPIC304 and 305 depend on 100 and 200
16
301Define interface LineDrawer moveTo(X, Y, T), penDown(), penUp()1
17
302Implement moveTo(X, Y, T) with PNG or SVG image drawing for debugging 1
18
303Write a program using the image drawer to draw a square and a triangle.1If anything goes wrong with our plotter, we can compare the result with this simulated result. It is important that we do this step correctly so we have a known-good reference.
19
304Implement moveTo(X, Y, T) using MultiMotor.rotate(A, B, T) from #1041moveTo moves from current position to position X, Y in T milliseconds. How will you map from a position on the easel to a change in motor angle? (hint: it depends on the perimeter of your spools)
20
305Draw a square and a triangle using the MultiMotor-based moveTo2Integration time! Much can go wrong here.
21
306Reduce curvature of lines by calling MultiMotor.rotate in small increments1
22
400STRETCH GOALS: ARTISTRY EPICDepends on 303
23
401Write a program using the controller to draw random simple flowers2
24
402Write a program using the controller to simulate a harmonograph2
25
403Write a program using the controller to draw tictactoe for two players2