Programming with Python Turtle graphics
Turtle Thermometer
For the thermometer project (Listing 3), I use two turtles: a static background turtle (thermo
, line 27) and a dynamic turtle (bar
, line 29). The background turtle is used only once at the start of the program. The drawing and text from the dynamic turtle (bar
) are erased with the bar.clear
method (line 8) and then redrawn with each new temperature value.
Listing 3
turtle2.py
The final turtle thermometer code is a little more complex than the earlier code, because I include temperature labels (lines 42-46) and a drawbar()
function (lines 6-19) that gets a new temperature value and redraws the dynamic bar and the text that indicates the current value (Figure 5).

A screen object wn
(line 22) resizes the window, adds a title, and defines an ontimer
function (lines 19 and 58). The wn.ontimer(drawbar, 5000)
statement updates the thermometer graphic every five seconds.
Final Comments
The mercury thermometer project was a fun example of how to use some basic Python Turtle code to talk to Raspberry Pi inputs. To include user input in your projects, the turtle library has an onkey(mykeyfunc,key)
method to listen for key presses and an onscreenclick(onclick_handler)
call to listen for mouse clicks.
Compared with other Python graphics libraries (e.g., Pygame, Tkinter, or Qt), Turtle graphics are slow and perhaps limiting, but for kids projects, Turtle can be a nice, easy introduction to graphics programming.
Raspberry Pi Turtle projects can be fun. Some other projects my daughters and I have created include:
- Drawing pictures with a Wii remote
- Showing the path of a rover while it is being driven
- Creating a "Spirograph" drawing by entering colors and turn angles
Infos
- Python Turtle graphics: https://docs.python.org/3.3/library/turtle.html?highlight=turtle
- DHT11 sensors: https://www.adafruit.com/product/386
- DHT Python library: https://github.com/adafruit/Adafruit_Python_DHT
- Pi prototyping top: https://www.dx.com/p/diy-prototyping-expansion-board-for-raspberry-pi-b-red-2047708
« Previous 1 2
Buy this article as PDF
(incl. VAT)