Skip to content
Jeroen Slemmer edited this page Jun 6, 2024 · 6 revisions

Deze bibliotheek biedt een makkelijke en leuke manier om de basis van het programmeren van forks en loops in Python te leren. Je kan een robotarm programmeren die dozen van één stapel naar een andere stapel kan verplaatsen. Daarnaast kun je ook diverse instructies aan je robotarm geven om bijvoorbeeld de kleur van een doos te achterhalen, hiermee zou je dus dozen kunnen stapelen op basis van kleur. Je kunt de robotarm ook zelf besturen met jouw toetsenbord, om uit te vogelen hoe je dozen het beste kan verplaatsen. Maar daarna gaan automatiseren!

robotarm

Aan de slag met de bibliotheek

  • Begin met het maken van een python programma met de volgende inhoud:
            # Robotarm bibliotheek inladen
            from RobotArm import RobotArm

            # Een of meer challenges importeren. Er zijn challenges beschikbaar voor beginners en gevorderen
            from robotArmChallenges import challenge_example
            
            # De robotarm opstarten met de challenge en op een bepaald level: 0, 1, 2 of 3
            robotArm = RobotArm(challenge_example, 0)
            
            # Jouw python instructies zet je vanaf hier:

            # Na jouw code een raport opvragen en wachten tot het sluiten van de window:
            robotArm.report()
  • Installeer de laatste versie Python op jouw computer
  • Installeer de pygame module in de terminal met: pip install pygame
  • Plaats de RobotArm.py en de robotArmChallenges.py in dezelfde map als jouw python programma, bijvoorbeeld example.py
  • Test of je code werkt door het in de terminal op te starten met: python example.py
  • Check in de terminal welke fouten er worden gegeven bij de uitvoering van jouw programma
  • Voor meer info over de vele mogelijkheden van de robotarm lees ook de documentatie in RobotArm.py
  • Als de robotarm jouw code niet goed kan uitvoeren, dan krijg je een melding. Bijvoorbeeld hit right border! wanneer de robotarm te ver naar rechts moet.
  • Als de robotarm onnodige acties uitvoert, dan krijg je waarschuwingen
  • Het level bepaalt de criteria waaraan de code moet voldoen:

Levels:

  • 0: geen criteria, er wordt nergens op gelet
  • 1: de code moet de dozen volgens de challenge verplaatsen; errors zijn niet toegestaan.
  • 2: als level 1 en bovendien mag het aantal coderegels het opgegeven maximum van de challenge niet overschrijden
  • 3: als level 2 en bovendien mag het aantal robotarm-acties het opgegeven maximum van de challenge niet overschrijden; waarschuwingen niet toegestaan

Methodes die je kan gebruiken

robotArm.moveRight()

Verplaats de robotarm één stapel naar rechts.

Code voorbeeld

robotArm.moveRight();

robotArm.moveLeft()

Verplaats de robotarm één stapel naar links.

Code voorbeeld

robotArm.moveLeft()

robotArm.grab()

Grijp het bovenste blok van een stapel. Dat werkt natuurlijk alleen als de robotarm nog geen blok vast heeft.

Code voorbeeld

robotArm.grab()

robotArm.drop()

Plaats het blok wat de robotarm vast heeft boven op de stapel waar de robotarm zich boven begeeft. Dit werkt natuurlijk alleen als de robotarm een blok vast heeft.

Code voorbeeld

robotArm.drop()

robotArm.scan()

Geeft de kleur van het blok dat de robotarm op dat moment vast heeft. Indien de robotarm geen blok vast heeft geeft hij als kleur de waarde '', dus een lege string.

Code voorbeeld

color = robotArm.scan()

robotArm.stackEmpty()

Geeft True als de stack onder de robotarm leeg is, anders False. Dit kan je gebruiken om te voorkomen dat de robotarm onnodig moet grijpen waar geen doos meer is.

Code voorbeeld

if not robotArm.stackEmpty(): robotArm.grab()

robotArm.stackIndex()

Geeft de stackpositie van de robotarm. Dit kan je gebruiken om te bepalen hoeveel je de arm moet verplaatsen.

Code voorbeeld

while robotArm.stackIndex() < 9: robotArm.moveRight()

robotArm.report()

Toon het rapport van de mission. In een mission doe je de challenge op een bepaald level. Heb je de dozen op de juiste manier verplaatst? Is het aantal coderegels minimaal? Is het aantal acties beperkt? Heb je geen errors? Heb je geen waarschuwingen?

Code voorbeeld

robotArm.report()

Voorbeeld van rapport:

robotarm2

robotArm.wait()

Wacht met verdere uitvoering van het programma.

Code voorbeeld

robotArm.wait()

robotArm.operate()

Ga de robotarm bedienen met jouw pijltjes toetsen. Maar het is leuker om bepaalde ingewikkelde opdrachten te automatiseren met jouw programma.

Code voorbeeld

robotArm.operate()

robotArm.showSolution()

Toont de solution, dus hoe de dozen verplaatst moeten zijn. Als je niet weet wat de bedoeling van de challenge is gebruik je deze methode. Na showSolution() stopt de verdere werking van de robotarm.

Code voorbeeld

robotArm.showSolution()

Eigenschappen die je kunt wijzigen

robotArm.speed

Bepaalt de snelheid waarmee de robotarm beweegt. Standaard staat deze op 1. De minimale waarde is 0 (echt sloom) en de maximale waarde die je kunt opgeven is 5. Je kunt de snelheid ook verhogen en verlagen tijdens het runnen van de code met de pijltjestoetsen: omhoog en omlaag!

code example

robotArm.speed = 5