### Building a Drawing Machine Your team is encouraged to choose between the following precedents. - <a href='../../lab/machine/sidewalk.html' target="_self">Sidewalk Plotter</a> - [Bobby et al.'s Roomba](https://geometrikz.github.io/PS70/blog/week_10/). See <a href='../../lab/machine/ps70-drawing-demo.zip' download>Bobby's updated websockets code</a> - [Cindy's Pen Plotter](https://ctian5136.github.io/ps70portfolio/html/weeks/finalproject.html) ### Software The precedents we've shared work via websockets, which allows for real-time control from a laptop or other device. Many drawing machine tutorials you'll find online rely on [gcode](https://machmotion.com/downloads/GCode/boltpattern.txt). The advantages of using gcode some degree of standardization with other digital fabrication machines and some degree of human legibility. But it also needs to be converted to steps eventually, so we tend to have a preference for directly commanding the machine with step values. ### Homing - Limit switch - Hall sensor - Proximity sensor - [PINDA](https://help.prusa3d.com/article/p-i-n-d-a-superpinda-sensor-testing_2091) - Current sensor / [stallGuard](https://learn.watterott.com/silentstepstick/) - Hard stop ### End Effectors A team from [fall 2023](https://mila-barry.github.io/PS70/10_machinebuild/index.html) used a solenoid to raise and lower their drawing instrument. Cindy's example used a servo motor, and Bobby's example dispenses liquid. You're encouraged to get creative!