The world's cheapest, simplest plotter

A Python-powered drawing machine

Daniele Procida

Education

I present an ultra-cheap (total cost of materials :€12.50) plotter that can be built with minimal skills.

At its heart is a Raspberry Pi Zero and some relatively custom software, driving three servo motors.

The mechanical hardware can be built from nothing but stiff card, a ball-point pen and some glue. The only tools required are a ruler, a sharp knife, a screwdriver and something to make holes in the card.

Almost everything required can be found in a desk or kitchen drawer. The entire device can be built with no special skills in about an hour (and much of that time will be spent getting the glue off the kitchen table before you get in trouble).

As you can see from the following images, the plotter produces images with a distinct charm:

* https://www.dropbox.com/s/s7x3cnxzp1zwnp0/europython.jpg?dl=0
* https://www.dropbox.com/s/lzykb02rxh2d9ef/IMG_0065.jpg?dl=0
* https://www.dropbox.com/s/8ibihhbfz9gmql0/IMG_0067.jpg?dl=0
* https://www.dropbox.com/s/50lemnzw5ismcrq/IMG_0075.jpg?dl=0

It can also function as the world's most inconvenient camera: take a photo using the Raspberry Pi's camera, convert it into lines, and draw it.

This is fun, but it's much more than that. There are barriers of skill, expense and materials around robotics. This project comes with me to African PyCons, and makes it possible for programmers to explore Python-based robotics, however limited their resources.

The tools and complete kit of materials to build several plotters can be carried in a small box. The plotter code is published on GitHub: https://github.com/evildmp/PantoGraph. The code for converting bitmaps to cartesian vectors is at https://github.com/evildmp/linedraw/.

I expect this to appeal to anyone who is interested in the idea of Python-driven robotics but is put off by the cost and complexity of hardware required actually to achieve something.

It will be particularly of interest to people involved in education, or who'd like to explore Python with young people. The code, mathematics and especially the hardware in this project are all simple.

The code resists the temptation to abstraction, and makes a point of breaking operations down into steps that are as easy as possible to follow. The project shows that doing things with robotics isn't just for people with well-equipped workshops and the engineering skills to use them.

Type: Talk (30 mins); Python level: Beginner; Domain level: Beginner

Daniele Procida

Divio

I am a Django core developer. I work at Divio, and live in Cardiff, where I help run things like PyDiff, PyCon Namibia and PyCon UK.

I've been, with various degrees of success, a high-school teacher, a company director, a philosophy lecturer and some other things I don't care to mention, but what really worked was becoming a programmer a few years ago.

I'm heavily involved in the international Python/Django open-source software communities and have a special interest in open-source software development in Africa.