#!/usr/bin/env pybricks-micropython
from pybricks.hubs import EV3Brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor,
InfraredSensor, UltrasonicSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Button, Color
from pybricks.tools import wait, StopWatch, DataLog
from pybricks.robotics import DriveBase
from pybricks.media.ev3dev import SoundFile, ImageFile
# Initialize the EV3 Brick.
ev3 = EV3Brick()
# Initialiserer motorer, og definerer porter hvor de er plugget inn.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)
# Initialiserer drivebasen, definerer motorer hjuldiameter og aksel avstand. Bidrar til presisjon i svingene.
robot = DriveBase(left_motor, right_motor, wheel_diameter=56, axle_track = 111)
# Angir kjørehastighet og svinghastighet.
robot.settings(straight_speed=300, turn_rate=250)
# Skriver "Hello, World" på skjermen, før den pauser før program kjøring.
ev3.screen.print("Hello, World")
wait(2000)
# Løkken gjennomfører kjøringen i firkant mønster, kjører kodeblokken under 4 ganger.
for i in range(4):
if i == 3: # Var opprinnelig nødvendig, ettersom den igjen kjørte for langt på siste gjennomkjøringen. Når den er fjernet oppfører roboten seg rart, og kjører i et ikke firkantet mønster.
robot.straight(300)
# Ble unødvendig på siste praksis gjennomkjøring, kan komme av at gulvet er ujevnt.
else:
robot.straight(300)
wait(500)
robot.turn(89) # Tilsvarer 90 Grader svinger i virkeligheten, kan være pga Axle_track avstanden er litt for stor/liten.
wait(500)
# Tilbakestiller skjermen og spiller av lydklipp
ev3.screen.clear() #Sletter Hello World! fra skjermen
wait(100)
ev3.speaker.say("Have a nice day") # Spiller av Have a nice day over høytaleren.
wait(300)