Daily Archives: December 6, 2014

Turtle Graphics on the Raspberry Pi

In 1966, Seymour Papert and Wally Feurzig developed the Logo Programming Language. As a part of this, Turtle Graphics was a very simple way of teaching programming to children. It consisted of a robotic turtle starting at coordinates 0, 0 in the X-Y plane on a computer screen. With a command turtle.forward(20), the turtle would move forward by 20 pixels in the direction it was facing, drawing a line as it moved. To turn the turtle where it is standing, a command turtle.right(30) would make it rotate 30-degrees clockwise. By combining the two commands and a few others, drawing intricate pictures and shapes on the screen was possible.

Now, the Python standard distribution contains a module “turtle” that allows extending the re-implementation of Turtle Graphics. You can run this on your tiny credit card sized inexpensive single board computer, the Raspberry Pi or RBPi. The Python module tries to keep the same merits as available with Turtle Graphics and is nearly fully compatible with it. That means the learning programmer can use the same commands, classes and methods interactively, when using the module.

For example, if you want to find out where your turtle is at present, you can query it with turtle.postion(), and the turtle will respond with its current X & Y coordinates. Now you can command it to move forward or backward, turn right or left and even check its orientation. For a complete list of the turtle commands, look up module-turtle. Apart from moving in straight lines, you can command the turtle to move in a circle of a given radius.

The Python module turtle is a versatile program. Various commands make the turtle do different things. For example, you may want the turtle to move but without drawing any line. Another command can make the turtle leave a stamped mark at its current position. Yet another command can make the turtle invisible, and another can make it draw lines in the color you specify.

Since RBPi is for children who are starting to learn computer programming, the combination of Turtle Graphics and RBPi is a powerful way of teaching them the basics of robotics. The language used by the module turtle is very similar to every-day English, which makes it very easy for children to learn and use.

Children find it difficult to grasp the abstractions on which traditional Euclidean geometry is built. For example, how do you have a point without size or a line that has a length but no thickness? Young people find all this difficult to grasp. However, the turtle being a real concrete object can be seen and manipulated. Turtle geometry being body syntonic, is easily understood since the turtle moves about just as everybody does. That makes it easy to identify with and its actions are well understood by kids.
Seymour Papert has explained the rationale behind turtle geometry in his book Mindstorms.

Another very simple way of learning turtle graphics on the RBPi is through Kids Ruby. Overall, with Turtle Graphics you can teach absolute beginners the concept of storing algorithms and running them so that the computer will simply obey the given commands.