| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
1 | Hanging Plotter Work Breakdown | v22.12 | |||||
2 | piplotter.com/breakdowns | ||||||
3 | Task Number | Done | Task | Estimate | Hurdles / Dependencies | Date completed | Work-Hours |
4 | 100 | MOTOR EPIC | No dependency | ||||
5 | 101 | Spin a motor using RasPi/Arduino/etc | 2 | Need to wire electronics, need to set up RasPi/Arduino/etc | |||
6 | 102 | Spin a motor θ degrees over T milliseconds | 1 | Need timer/stopwatch in code | |||
7 | 103 | Spin one motor A degrees and another B degrees over T milliseconds | 2 | Need to utilize multithreading | |||
8 | 104 | Encapsulate work behind an interface MultiMotor.rotate(A, B, T) | 1 | Possible refactoring | |||
9 | 200 | CONSTRUCTION EPIC | No dependency | ||||
10 | 201 | Attach crossbar onto easel | 1 | How will you make this sturdy? Will you need a drill? | |||
11 | 202 | Create spools for motors | 2 | What will spools be made of? How will you attach to motor? RC wheels? 3D printing? | |||
12 | 203 | Attach motors and spools onto easel | 1 | ||||
13 | 204 | Create hanging rig carriage | 3 | How 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 | 205 | Mount electronics onto back of easel, and re-wire | 1 | ||||
15 | 300 | CONTROLLER EPIC | 304 and 305 depend on 100 and 200 | ||||
16 | 301 | Define interface LineDrawer moveTo(X, Y, T), penDown(), penUp() | 1 | ||||
17 | 302 | Implement moveTo(X, Y, T) with PNG or SVG image drawing for debugging | 1 | ||||
18 | 303 | Write a program using the image drawer to draw a square and a triangle. | 1 | If 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 | 304 | Implement moveTo(X, Y, T) using MultiMotor.rotate(A, B, T) from #104 | 1 | moveTo 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 | 305 | Draw a square and a triangle using the MultiMotor-based moveTo | 2 | Integration time! Much can go wrong here. | |||
21 | 306 | Reduce curvature of lines by calling MultiMotor.rotate in small increments | 1 | ||||
22 | 400 | STRETCH GOALS: ARTISTRY EPIC | Depends on 303 | ||||
23 | 401 | Write a program using the controller to draw random simple flowers | 2 | ||||
24 | 402 | Write a program using the controller to simulate a harmonograph | 2 | ||||
25 | 403 | Write a program using the controller to draw tictactoe for two players | 2 | ||||