Artbot for adults (Part 2)

In the Artbot for Adults PART 2 lab we move beyond building a basic functional Artbot and start to refine it.

In this class we consider the mechanical / industrial design of the Artbot. We introduce 3D printing and CNC machining. We review the software abstraction, build edge detection so that the Artbot does not exit a page, and introduce some new sensors / actuators, amongst a raft of other activities.

Week 1: Introduction / Re-orientation …

  • All Artbots returned to full functionality

Week 2: Code Abstraction Revision (Github)

  • Working with Github (forking, pushing, etc.)
  • Review/Cleanup of Artbot code
  • Review of exposed methods: What is the best way to expose control of the wheels such that hacking possibility is optimised?
  • Should there be a better “stop-drawing” interrupt?

Week 3: IR edge detection (circuit and algorithm)

  • Circuit for IR implementation
  • Software for reading IR values
  • Hardware mounting

Week 4: 3D basics (working with Fusion 360)

  • Download & Install outside of class
  • 3D basics (3D primitives, volume operations, file formats, etc.)

Week 5: Introduction to 3D printing (with

Week 6: Exporting to STL / Preparation for CNC

  • Introduction to G-code
  • Converting model into tool paths

Week 7: CNC test / 3D print test

Week 8: Rechargeable battery and power management

  • What is the optimal power supply for Artbot.
  • How much power is required to produce one drawing?
  • How many drawings can be produced by one battery?
  • Should the OLED screen be turned off during drawing?

Week 9: New Component + dev

  • Magnetic switches
  • Continue with Artbot development

Week 10: New components + dev

  • Sonification of drawing bot (2 x Piezo’s)
  • Continue with Artbot development

Open Challenges:

1) Design a good pen actuation mechanism
2) Design solid edge detection (drawing bouncing) system

Introduction to 3D modelling

The very early basics on 3D modelling techniques

Line Detection – Photodiodes and IR LEDs

Using Github

How to use Github, clone, commit, sync.

Cleaning up code abstraction

What to check in the code before committing to the code repository.