# Write your code here :-) from microbit import * import math import neopixel np = neopixel.NeoPixel(pin13, 12) def funcVSpeed(var): # Lager enklere funksjonsnavn for å lettere kunne lese koden. pin0.write_analog(var) # Parameteren heter "var" fordi "dir" og "speed" brukes senere def funcVDir(var): pin8.write_digital(var) def funcHSpeed(var): pin1.write_analog(var) def funcHDir(var): pin12.write_digital(var) def fill(r, g, b): # Fyller alle pixels med en farge. for i in range(0, len(np)): np[i] = (r, g, b) def vFill(r, g, b): # Fyller venstre pixels med en farge. for i in range(0, math.floor(len(np)/2)): np[i] = (r, g, b) def hFill(r, g, b): # Fyller høyre pixels med en farge. for i in range(math.floor(len(np)/2), len(np)): np[i] = (r, g, b) def drive(vDir, vSpeed, hDir, hSpeed): funcVSpeed(math.floor(vSpeed*1023)) # Vil at input speed skal være mellom 0 og 1 funcVDir(vDir) funcHSpeed(math.floor(hSpeed*1023)) funcHDir(hDir) fill(0, 0, 0) # Clearer diodene if vSpeed+vDir != 0 and vSpeed+vDir != 2 and hSpeed+hDir != 0 and hSpeed+hDir != 2 : # Ikke stillestående if vDir == 0: # Framover venstre vFill(0, 255, 0) if hDir == 0: # Framover høyre hFill(0, 255, 0) if vDir == 1: # Bakover venstre vFill(255, 0, 0) if hDir == 1: # Bakover høyre hFill(255, 0, 0) np.show() def weiter(inputSpeed): # Fremad drive(0, inputSpeed, 0, inputSpeed) def ruckwarts(inputSpeed): # Bakover drive(1, 1-inputSpeed, 1, 1-inputSpeed) def links(inputSpeed): # Venstre drive(1, 1-inputSpeed, 0, inputSpeed) def rechts(inputSpeed): # Høyre drive(0, inputSpeed, 1, 1-inputSpeed) def halt(): # Stopp drive(0, 0, 0, 0) # Definerer funskjoner med gitt varighet def weiterFor(inputSpeed, duration): # Fremad drive(0, inputSpeed, 0, inputSpeed) sleep(duration) drive(0, 0, 0, 0) def ruckwartsFor(inputSpeed, duration): # Bakover drive(1, 1-inputSpeed, 1, 1-inputSpeed) sleep(duration) drive(0, 0, 0, 0) def linksFor(inputSpeed, duration): # Venstre drive(1, 1-inputSpeed, 0, inputSpeed) sleep(duration) drive(0, 0, 0, 0) def rechtsFor(inputSpeed, duration): # Høyre drive(0, inputSpeed, 1, 1-inputSpeed) sleep(duration) drive(0, 0, 0, 0) # Her begynner kjøreinstruksjoner weiterFor(0.2, 1000) linksFor(0.2, 1000) weiterFor(0.2, 1000) rechtsFor(0.2, 2000) ruckwartsFor(0.2, 1000) linksFor(0.2, 1000) ruckwartsFor(0.2, 1000) rechtsFor(1, 2500)
Comments