View difference between Paste ID: U1qJWtHy and 2wDN3iwb
SHOW: | | - or go back to the newest paste.
1
# Write your code here :-)
2
from microbit import *
3
import math
4
import neopixel
5
6
np = neopixel.NeoPixel(pin13, 12)
7
8
def funcVSpeed(var):  # Lager enklere funksjonsnavn for å lettere kunne lese koden. 
9
    pin0.write_analog(var)  # Parameteren heter "var" fordi "dir" og "speed" brukes senere
10
def funcVDir(var):
11
    pin8.write_digital(var)
12
def funcHSpeed(var):
13
    pin1.write_analog(var)
14
def funcHDir(var):
15
    pin12.write_digital(var)
16
17
def fill(r, g, b):  # Fyller alle pixels med en farge.
18
    for i in range(0, len(np)):
19
        np[i] = (r, g, b)
20
def vFill(r, g, b):  # Fyller venstre pixels med en farge.
21
    for i in range(0, math.floor(len(np)/2)):
22
        np[i] = (r, g, b)
23
def hFill(r, g, b):  # Fyller høyre pixels med en farge.
24
    for i in range(math.floor(len(np)/2), len(np)):
25
        np[i] = (r, g, b)
26
27
28
def drive(vDir, vSpeed, hDir, hSpeed):
29
    funcVSpeed(math.floor(vSpeed*1023))  # Vil at input speed skal være mellom 0 og 1
30
    funcVDir(vDir)
31
    funcHSpeed(math.floor(hSpeed*1023))
32
    funcHDir(hDir)
33
    fill(0, 0, 0)  # Clearer diodene
34
    if vSpeed+vDir != 0 and vSpeed+vDir != 2 and hSpeed+hDir != 0 and hSpeed+hDir != 2 :  # Ikke stillestående
35
        if vDir == 0:  # Framover venstre
36
            vFill(0, 255, 0)
37
        if hDir == 0:  # Framover høyre
38
            hFill(0, 255, 0)
39
        if vDir == 1:  # Bakover venstre
40
            vFill(255, 0, 0)
41
        if hDir == 1:  # Bakover høyre
42
            hFill(255, 0, 0)
43
    np.show()
44
45
def weiter(inputSpeed):  # Fremad
46
    drive(0, inputSpeed, 0, inputSpeed)
47
def ruckwarts(inputSpeed):  # Bakover
48
    drive(1, 1-inputSpeed, 1, 1-inputSpeed)
49
def links(inputSpeed):  # Venstre
50
    drive(1, 1-inputSpeed, 0, inputSpeed)
51
def rechts(inputSpeed):  # Høyre
52
    drive(0, inputSpeed, 1, 1-inputSpeed)
53
def halt():  # Stopp
54
    drive(0, 0, 0, 0)
55
56
# Definerer funskjoner med gitt varighet
57
58
def weiterFor(inputSpeed, duration):  # Fremad
59
    drive(0, inputSpeed, 0, inputSpeed)
60
    sleep(duration)
61
    drive(0, 0, 0, 0)
62
def ruckwartsFor(inputSpeed, duration):  # Bakover
63
    drive(1, 1-inputSpeed, 1, 1-inputSpeed)
64
    sleep(duration)
65
    drive(0, 0, 0, 0)
66
def linksFor(inputSpeed, duration):  # Venstre
67
    drive(1, 1-inputSpeed, 0, inputSpeed)
68
    sleep(duration)
69
    drive(0, 0, 0, 0)
70
def rechtsFor(inputSpeed, duration):  # Høyre
71
    drive(0, inputSpeed, 1, 1-inputSpeed)
72
    sleep(duration)
73
    drive(0, 0, 0, 0)
74
75
# Her begynner kjøreinstruksjoner
76
77
78
weiterFor(0.2, 1000)
79
linksFor(0.2, 1000)
80
weiterFor(0.2, 1000)
81
rechtsFor(0.2, 2000)
82
ruckwartsFor(0.2, 1000)
83
linksFor(0.2, 1000)
84
ruckwartsFor(0.2, 1000)
85
rechtsFor(1, 2500)