KRITSADA icon

Robot Control

KRITSADA | PRO | 10/28/19 08:37:22 AM UTC | 0 ⭐ | 582 👁️ | Never ⏰ | []
Python |

2.62 KB

|

None

|

0 👍

/

0 👎

# 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