Receipt Printing Robot

This document is based on a draft curriculum to be used for the 2016 Fall Tech Club (at the Waldorf School of Pittsburgh). During this club, students will work together to create a robot that can print quotes out using a receipt printer when a button is pressed, and blink its eyes.

Learning GoalsMaterials needed; Setup; Curricular plan.

Learning Goals

The learning goals of this set of exercises include

  • Understanding the things that make up a computer (memory, processing, and so on)
  • How a computer interfaces with the world (by sensing, or actuation) and relating this to things like a keyboard and monitor that are used frequently
    • How to build hardware that can support sensing (specifically using a single button)
    • How to build hardware that can support actuation (specifically, blinking an LED)
  • How a computer can build on sensors and actuators to communicate
    • Morse code
    • Print statements
  • Programming
    • Primitive types such as integers and booleans
    • Arrays that contain text
    • Picking a random number
    • Conditionals
    • Possibly loops
  • 3D modeling for 3D printing
    • Basic constructive geometry
    • Dimensionality in the real world
    • Printability


Materials include example purchasing links.

Per student (or pair of students):

For the whole group:

  • Cardboard box for head
  • Table or other stand for robot
  • Cardboard box for submitting quotes
    • Pad of paper for writing quotes on
    • Pen to attach to everything
  • Materials for decorating robot (think straw man? Or tissue paper & glue? Or paint?)
    • Mod podge
    • Newspaper
    • Acrylic Paint [jen can bring]
  • Projector (for demonstrating programming to the class)


  • Make sure each Raspberry pi has a working OS and SD Card
    • At home
    • At school
  • Install the following libraries:
  • Prepare each SD card with source code

Curricular Plan

Week one:

Additional Materials Needed

Lesson Plan

Week 2

  • Continue work on circuit setup
  • Introduce the python programming environment on the Pi (which they will need to read input from the GPIO pins). Base code for controlling pins Get a working program that responds to a button press
  • Come up with a plan for decorating the robot

Week 3

  • Introduce Tinkercad
  • Work on Robot decoration project (physical world & regular world)
  • Programming
    • Introduce conditionals
    • Work on printing out a string if a button is pressed.
    • Possibly: Improve the button press program by adding de-bouncing

Week 4


  • Print Picture of LED circuit
  • Bring LEDs and Resistors, breakout boards, etc.
  • Bring printed versions of bookmarks/name tags that are finished


  • LED circuit tutorial
  • Programming
    • Introduce the concept of output to LEDs
    • Build a circuit that lights an LED up
    • Write a program that lights an LED up
    • Possibly: Work on a version of the circuit / program that has 2 LEDs instead of 1 (or more than 2 LEDs).
    • Possibly: Work on body parts
  • Further work on name tags/bookmarks

Week 5

  • Programming
    • Introduce concept of Morse code
    • Morse code picture guide
    • Write a program to flash whatever you want (doesn’t have to be morse code)
    • If students want to: Base code for displaying text using MORSE code
    • 3D modeling: Work on body parts
  • Others can work on other robotic decorations

Week 6

  • Assemble the robot
  • Catch up on programming tasks

Rapid Fabrication / Prototyping

Required Readings (videos for these and others found below)

Mueller, S., Im, S., Gurevich, S., Teibrich, A., Pfisterer, L., Guimbretière, F., & Baudisch, P. (2014, October). WirePrint: 3D printed previews for fast prototyping. In Proceedings of the 27th annual ACM symposium on User interface software and technology (pp. 273-280). ACM.

Interactive design space exploration and optimization for CAD models (ACM SIGGRAPH 2017) Adriana Schulz, Jie Xu, Bo Zhu, Changxi Zheng, Eitan Grinspun, and Wojciech Matusik.

Videos to flip through

Much of the work here is by Stefanie Mueller, Patrick Baudisch and others. I didn’t want to assign too many papers by the same group, but these videos are worth browsing! There are some other authors represented here too.



Coarse to fine fabrication of large objects:

TrussFab: making even larger objects

Patching physical objects:



On-the-fly printing while modeling:

What you sculpt is what you get:

Accommodating measurement error (no video)

Jeeeun Kim, Anhong Guo, Tom Yeh, Scott E Hudson, & Jennifer Mankoff. Understanding Uncertainty in Measurement and Accommodating its Impact in 3D Modeling and Printing, In Proceedings of ACM Conference on Designing Interactive Systems (DIS’17), Edinburgh, UK PDF



Pick one to read (or read both!)

  • Ion, A., Frohnhofen, J., Wall, L., Kovacs, R., Alistar, M., Lindsay, J., … & Baudisch, P. (2016, October). Metamaterial mechanisms. In Proceedings of the 29th Annual Symposium on User Interface Software and Technology (pp. 529-539). ACM.
  • Ion, A., Wall, L., Kovacs, R., & Baudisch, P. (2017, May). Digital Mechanical Metamaterials. In Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems (pp. 977-988). ACM.
  • Also read this: Vidimce, K., Kaspar, A., Wang, Y., & Matusik, W. (2016, October). Foundry: Hierarchical material design for multi-material fabrication. In Proceedings of the 29th Annual Symposium on User Interface Software and Technology (pp. 563-574). ACM.

Optional Additional neat stuff (note the publication venues — this is a hot topic)

Martínez, J., Dumas, J., & Lefebvre, S. (2016). Procedural voronoi foams for additive manufacturing. ACM Transactions on Graphics (TOG)35(4), 44.

Think hyper-local robots which make up a larger structure: McEvoy, M. A., & Correll, N. (2015). Materials that couple sensing, actuation, computation, and communicationScience347(6228), 1261689.

Very cool use of auxetic building blocks (these react differently to compression than normal): Babaee, S., Shim, J., Weaver, J. C., Chen, E. R., Patel, N., & Bertoldi, K. (2013). 3D Soft metamaterials with negative Poisson’s ratioAdvanced Materials25(36), 5044-5049.

Moving slightly from meta materials to micro structures, but still same basic domain:

Very light, stiff lattices: Zheng, X., Lee, H., Weisgraber, T. H., Shusteff, M., DeOtte, J., Duoss, E. B., … & Kucheyev, S. O. (2014). Ultralight, ultrastiff mechanical metamaterials. Science344(6190), 1373-1377.

Use for manipulating optics: Chanda, D., Shigeta, K., Gupta, S., Cain, T., Carlson, A., Mihi, A., … & Rogers, J. A. (2011). Large-area flexible 3D optical negative index metamaterial formed by nanotransfer printing. Nature nanotechnology6(7), 402-

Ladd, C., So, J. H., Muth, J., & Dickey, M. D. (2013). 3D printing of free standing liquid metal microstructuresAdvanced Materials25(36), 5081-5085.

3D Printing for Social Good Final Project

The goal of the final project assignment is to give you an opportunity both to become comfortable using a 3D printer and to think about novel research that can be done with the printer and begin defining and executing on such a problem. It is very open ended, and there is no single ‘right’ answer to what makes a successful projects.

This project is divided into three pieces.

1) The first is a proposal. This is an individual proposal. We will spend 3 minutes per proposal in class hearing your ideas, and you will turn in a brief description of them on Canvas.

  • Your proposal should involve some sort of fabrication, and be in one of the areas we have explored during class (including both application domains and advances such as printing with new materials). The rest is up to you, though I am happy to provide guidance.
  • It should be no more than one page long, including references (which are optional)
  • It should be organized as follows: Promise (what opportunity it creates); Obstacle (why is it currently not possible); Solution (what you will do).

2) The second is team formation. Each of you will be asked to assign a points to every proposal indicating your interest in it.  You have 20 votes, and may apply up to four for any one project. You may not vote for your own project. Approximately 5 of the projects will be selected as starting points, allowing teams of 3-4 students to be assigned based on approximate best match. Swaps will be allowed with permission of the instructor, once both teams agree.

3) The final project should include a two page report and a final presentation. The presentation should include a prototype (fabricated), discuss the promise, obstacle, and explain your solution process.

3D Printing in a Range of Materials


Soft Objects:

Printing Teddy Bears: A Technique for 3D Printing of Soft Interactive Objects (ACM CHI 2014), Scott E. Hudson 

Carbon Fiber at scale:

(watch through about 2:30, and then from about 5:15 onward. 6:30 explains the process)

Food: (just watch the videos)


Printflatables: Printing Human-Scale, Functional and Dynamic Inflatable Objects (ACM CHI 2017) Harpreet Sareen, Udayan Umapathi, Patrick Shin, Yasuaki Kakehi, Jifei Ou, Pattie Maes, Hiroshi Ishii. 

Optional others: 

1 printer, many materials

xPrint: A Modularized Liquid Printer for Smart Materials Deposition (ACM CHI 2016) 
Guanyun Wang, Lining Yao, Wen Wang, Jifei Ou, Chin-Yi Cheng, and Hiroshi Ishii 

Sitthi-Amorn, P., Ramos, J. E., Wangy, Y., Kwan, J., Lan, J., Wang, W., & Matusik, W. (2015). MultiFab: a machine vision assisted platform for multi-material 3D printing. ACM Transactions on Graphics (TOG), 34(4), 129.

Vidimče, K., Wang, S. P., Ragan-Kelley, J., & Matusik, W. (2013). OpenFab: a programmable pipeline for multi-material fabrication. ACM Transactions on Graphics (TOG)32(4), 136.


A 3D printer for interactive electromagnetic devicesHuaishu Peng, François Guimbretière, James McCann, and Scott Hudson 


Igarashi, Yuki, Takeo Igarashi, and Hiromasa Suzuki. “Knitty: 3D Modeling of Knitted Animals with a Production Assistant Interface.” In Eurographics (Short Papers), pp. 17-20. 2008.

Igarashi, Y., & Igarashi, T. (2009). Designing plush toys with a computerCommunications of the ACM52(12), 81-88.

A Compiler for 3D Machine Knitting


A Layered Fabric 3D Printer for Soft Interactive Objects (ACM CHI 2015) 
Huaishu Peng, Jennifer Mankoff, Scott E. Hudson, and James McCann 

DressUp: a 3D interface for clothing design with a physical mannequin (ACM TEI 2012) 
Amy Wibowo, Daisuke Sakamoto, Jun Mitani, and Takeo Igarashi 

and The Hybrid Bricolage: Bridging Parametric Design with Craft through Algorithmic Modularity (ACM CHI 2016) Tamara Anna Efrat, Moran Mizrahi, and Amit Zoran:


Wooden Furniture:

Design and fabrication by example (ACM SIGGRAPH 2014) 
Adriana Schulz, Ariel Shamir, David I. W. Levin, Pitchaya Sitthi-amorn, and Wojciech Matusik 

Fabrication-aware Design with Intersecting Planar Pieces (EUROGRAPHICS 2013) 
Yuliy Schwartzburg, and Mark Pauly

SketchChair: an all-in-one chair design system for end users (ACM TEI 2011) 
Greg Saul, Manfred Lau, Jun Mitani, and Takeo Igarashi 

3D Printing for Health

Basic Research:


3D Printing and Sustainability

Sustainability of 3D printing

Uses of 3D printing in achieving a sustainable world

3D Printing for Education

An article blurring 3DP, education, and social good: Loy, Jennifer. “eLearning and eMaking: 3D Printing Blurring the Digital and the Physical.” Education Sciences 4, no. 1 (2014): 108-121.

Irwin, J. L., D. E. Oppliger, J. M. Pearce, and G. Anzalone. “Evaluation of RepRap 3D Printer Workshops in K-12 STEM. 122nd ASEE 122nd ASEE Conf.” Proceedings, paper ID 12036 (2015).

Buechley, Leah, Mike Eisenberg, Jaime Catchen, and Ali Crockett. “The LilyPad Arduino: using computational textiles to investigate engagement, aesthetics, and diversity in computer science education.” In Proceedings of the SIGCHI conference on Human factors in computing systems, pp. 423-432. ACM, 2008.

Schelly, Chelsea, Gerald Anzalone, Bas Wijnen, and Joshua M. Pearce. “Open-source 3-D printing technologies for education: Bringing additive manufacturing to the classroom.” Journal of Visual Languages & Computing 28 (2015): 226-237.


Observe a Maker

Find someone in (or out of) the class who has to repair or create something.

  • Ask them if you can watch them work on it. Ask them if you can video and/or take photos + audio record them.
  • Before you watch them, write down your thoughts about how they will do this (like a recipe for the goal they have told you).
  • Watch and record what they do. Ask lots of questions. Base your approach on our discussion and practice in class.
  • The same day, write a short summary of what they did, noting in particular any trouble they ran into, and things that differed from your predictions
  • By the assignment due date, turn in a document containing your before and after thoughts and some illustrative pictures.