Raspberry Pi project: Python Turtle
In dit project gaan we programmeren met Python Turtle. Turtle afbeeldingen zijn een populaire manier om kinderen kennis te laten maken met programmeren. Het maakte deel uit van de oorspronkelijke programmeertaal Logo, ontwikkeld door Wally Feurzeig, Seymour Papert en Cynthia Solomon in 1967. Deze Python bibliotheek is al standaard geïnstalleerd op je Raspberry Pi.
Deze handleiding behandeld:
- Niveau – Beginner 30%
- Tijdsduur 30 min 35%
- Kosten – €70,30 50%
Stap 1: Benodigdheden:
- Raspberry Pi 4B
- Raspberry Pi 4B voeding
- Micro-SD-kaart Raspberry Pi OS
- Micro-HDMI naar HDMI kabel
- Muis & toetsenbord
- Monitor
Stap 2: Turtle Functies:
Zoals elke Python bibliotheek, heeft ook de Turtle bibliotheek zo z’n eigen functies. Bij dit project gebruiken we niet alle functies van de Turtle bibliotheek. De functies die we wel gebruiken vind je hieronder:
Stap 3: Programmeren:
We programmeren met Python in de Python IDE. Je kunt de volgende stappen volgen om verschillende dingen te tekenen met de turtle-bibliotheek.
Bovenin de code importeren we eerst de turtle bibliotheek.
Vervolgens stellen we de instellingen voor de turtle en de achtergrond in.
In de def sneeuwvlok() schrijven we de programmaregels over hoe we de sneeuwvlok willen tekenen. Wanneer sneeuwvlok() wordt opgeroepen, zal dit worden getekend.
In de def bal() schrijven we de code over hoe we de bal tekenen. Dit doen we door een cirkel te tekenen, waarna we deze inkleuren. door bal() aan te roepen, zal de bal getekend worden.
De code zelf begint met het verplaatsen van de turtle naar een andere locatie. Hierbij wordt er niet getekend. Wanneer de turtle op de juiste lokatie staat, roepen we sneeuwvlok() op, waarna er een sneeuwvlok zal worden getekent. Dit herhalen we vervolgens nogmaals. Bij de derde keer roepen we niet meer de sneeuwvlok() op, maar roepen we bal() op.
Als laatste verplaatsen we de turtle naar de home locatie, waarna we de kleur van de turtle veranderen naar groen.
Hieronder vind je de volledige python code:
#eerst wordt de turtle bibliotheek geimporteerd
import turtle#de turtle (de pen) wordt gekoppeld aan variabele t
t = turtle.Turtle()
#de achtergrondskleur van tet turtle-scherm wordt ingesteld op kleur ‘DeepSkyBlue’
turtle.bgcolor(“DeepSkyBlue”)#wanneer dit wordt aangeroepen, wordt er een sneeuwvlok getekend
def sneeuwvlok():
# – de turtle schrijft de kleur wit (pencolor)
# – de turtle is ingesteld op de snelheid 10, schaal van 1 t/m 10 (speed)
t.pen(pencolor=“white”, speed=10)
#dit stukje code wordt 8x herhaald, omdat de sneeuwvlok acht takken heeft
for i in range (8):
#met elke tak wordt de turte 45 graden gedraait
t.left(45)
#de zijtakken van de sneeuwvlok worden getekent
for i in range(3):
for i in range(3):
t.forward(10)
t.backward(10)
t.right(45)
t.left(90)
t.backward(10)
t.left(45)
t.right(90)
t.forward(30)#wanneer dit wordt aangeroepen, wordt er een bal getekend
def bal():
#de vorm van de turlte wordt aangepast naar de vorm ‘turtle’
t.shape(“turtle”)
# – de turtle schrijft de kleur zwart (pencolor)
# – de opvulling van de turtle krijgt de kleur rood (fillcolor)
# – de grootte van de lijn wordt aangepast naar 5 pixels (pensize)
# – de turtle is ingesteld op de snelheid 5, schaal van 1 t/m 10 (speed)
t.pen(pencolor=“black”, fillcolor=“red”, pensize=5, speed=5)
t.begin_fill()
t.circle(50)
t.end_fill()#def sneeuwvlok wordt getekend op locatie x=200 y=200
t.penup()
t.goto(200,200)
t.pendown()
sneeuwvlok()#def sneeuwvlok wordt getekend op locatie x=100 y=300
t.penup()
t.goto(100,300)
t.pendown()
sneeuwvlok()#def bal wordt getekend op locatie x=10 y=-350
t.penup()
t.goto(10,-350)
t.pendown()
bal()#de turtle gaat weer terug naar de home positie (x=0 y=0)
t.penup()
t.home()#de turtle krijg een groene opvulling
t.pen(fillcolor=“green”)
t.pendown()
Stap 4: Resultaat:
Wanneer je de code goed ingevuld hebt, kun je op “Run” klikken. Vervolgens wordt de Python Turtle Graphics geopend, waarna de figuurtjes worden getekend. Wanneer alles is getekend, ziet het eruit zoals hieronder is aangegeven:
Wanneer je dit project afgerond hebt, weet je nu hoe je aan de slag moet met de Python Turtle bibliotheek. Hiermee kan je dan ook een heleboel leuke figuurtjes tekenen.
Voetnoten
Hier staan de turtle functies verder uitgewerkt die verwerken in het project.
bgcolor(<kleur>):
Hiermee kan je de achtergrond kleur van het turtle-scherm wijzigen. Deze kleur zet je neer tussen de haakjes.
pen():
Hiermee verander je de eigenschappen van de pen. tussen de haakjes zet je neer wat je aan de pen wilt wijzigen. Zo verander je met t.pen(pencolor=”<kleur>”) de schrijfkleur van de pen. Met t.pen(fillcolor=”<kleur>”) wijzig je de kleur van de turtle. Hiermee kan je ook een figuur een opvullingskleur geven. Met t.pen(pensize=<lijnbreedte>) verander je de breedte van de lijn. Met t.pen(speed=<snelheid>) kan je de snelheid instellen dat de turtle gaat. De snelheid kun je is op schaal van 1 (heel langzaam) t/m 10 (heel snel).
forward(<afstand>):
Met forward(<afstand>) kan je zeggen welke afstand de turtle rechtdoor moet. Dit kan je ook doen met verkorte versie: fd(<afstand>).
backward(<afstand>):
Met backward(<afstand>) kan je zeggen welke afstand de turtle achteruit moet. Dit kan je ook doen met verkorte versie: bk(<afstand>).
right(<hoek>):
Met right(<hoek>) geef je aan met welke hoek de turtle rechtsom moet draaien. Dit kan je ook doen met de verkorte versie: rt(<hoek>).
left(<hoek>):
Met left(<hoek>) geef je aan met welke hoek de turtle linksom moet draaien. Dit kan je ook doen met de verkorte versie: lt(<hoek>).
circle(<radius>):
Met circle(<radius>) teken je gemakkelijk een mooie cirkel. Tussen de haakjes zet je de radius van de cirkel neer.
penup():
Normaal gesproken tekent de turtle een lijn wanneer deze van positie veranderd. Met penup() kan je dit uitzetten, waardoor je de turtel van positie kan wijzigen, zonder dat er een lijn getekend wordt.
pendown():
Met pendown() doe je het tegengestelde van penup(). Hierbij stel je dan weer in dat, als je de turtle van positie veranderd, er weer een lijn getekend wordt.
begin_fill():
Met bigin_fill() stel je een begin in van wanneer je een figuur wilt opvullen.
end_fill():
Met end_fill() stel je het eind in van wanneer je een figuur wilt opvullen. nadat je deze functie opgeroepen hebt, zal het figuur opgevuld worden met de kleur die je ingesteld hebt.
goto(x,y):
Met goto(x,y) dirigeer je de turtle snel naar een coördinaat. Tussen de haakjes stel je dit coördinaat in. Eerst vermeld je de x-as, en daarna de y-as.
home():
Met home() dirigeer je de turtle snel naar je home positie. Dit is de coördinaat (0,0).