LegoLeague/main_neu.py

101 lines
3.2 KiB
Python
Raw Permalink Normal View History

2024-02-21 16:59:40 +00:00
# LEGO type:standard slot:5 autostart
import os, sys
from spike import PrimeHub, LightMatrix, Button, StatusLight, ForceSensor, MotionSensor, Speaker, ColorSensor, App, DistanceSensor, Motor, MotorPair
from spike.control import wait_for_seconds, wait_until, Timer
from hub import battery
from math import *
############################## NICHT ÄNDERN ###############################
def importFile(slotid=0, precompiled=False, module_name='importFile'):
print("##### START # IMPORTING CODE FROM SLOT "+str(slotid)+" ##############")
import os, sys
suffix = ".py"
if precompiled:
suffix = ".mpy"
with open("/projects/.slots","rt") as f:
slots = eval(str(f.read()))
#print(slots)
#print(os.listdir("/projects/"+str(slots[slotid]["id"])))
with open("/projects/"+str(slots[slotid]["id"])+"/__init__"+suffix,"rb") as f:
#print("trying to read import program")
program = f.read()
#print(program)
try:
os.remove("/"+module_name+suffix)
except:
pass
with open("/"+module_name+suffix,"w+") as f:
#print("trying to write import program")
f.write(program)
if (module_name in sys.modules):
del sys.modules[module_name]
#exec("from " + module_name + " import *")
print("##### END # IMPORTING CODE FROM SLOT "+str(slotid)+" ##############")
#####################################################################################
################ Importiere Code aus andere Dateien #################################
# Importiere Code aus der Datei "iqrobot.py"
# Dateiname und Modulname sollten gleich sein, dann kann man Code Completion nutzen
importFile(slotid=6, precompiled=True, module_name="brickiesbot")
import brickiesbot as bot
################### Hauptcode ####################################
'''
Code zum Lösen einer Aufgabe, kann oben importierten Code nutzen
Es können auch pro Aufgabe eigene Funktionen geschrieben werden
Wichtig ist, dass die PORTS der Sensoren überall gleich sind
und auch `hub` als Instanz von PrimeHub
dh auch an die Funktionen im importierten Code übergeben werde
'''
# Initialisieren des Hubs, der Aktoren und Sensoren
hub = PrimeHub()
# Initialisiere Robot Klasse mit unseren Funktionen
brickiesBot: bot.IQRobot = bot.IQRobot(hub)
#Druckmaschiene1
brickiesBot.show('HAPPY')
brickiesBot.fahre_gerade_aus(21,50)
brickiesBot.drehe(-45)
brickiesBot.fahre_gerade_aus(22,50)
#Hologramm
brickiesBot.fahre_gerade_aus(-20,50)
brickiesBot.drehe(45)
brickiesBot.fahre_gerade_aus(43)
brickiesBot.drehe(45)
brickiesBot.fahre_gerade_aus(12,50)
brickiesBot.fahre_gerade_aus(-12,50)
#AGRealiy
brickiesBot.drehe(-135)
brickiesBot.fahre_gerade_aus(43,50)
brickiesBot.drehe(90)
brickiesBot.fahre_gerade_aus(12,50)
brickiesBot.schaufel(0.53, 30)
brickiesBot.fahre_gerade_aus(-8,50)
brickiesBot.drehe(90)
brickiesBot.fahre_gerade_aus(14,50)
brickiesBot.drehe(-60)
brickiesBot.fahre_gerade_aus(1.5,50)
brickiesBot.fahre_gerade_aus(-1.5,50)
brickiesBot.drehe(60)
brickiesBot.fahre_gerade_aus(-16,50)
brickiesBot.drehe(45)
#Drukmaschiene2
brickiesBot.fahre_gerade_aus(15)
brickiesBot.schaufel(0.33, 30)
brickiesBot.fahre_gerade_aus(6)
brickiesBot.schaufel(0.45, 200)
#lichtshow
brickiesBot.fahre_gerade_aus(-20, 50)
brickiesBot.drehe(-45)