# 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)