Exemplo n.º 1
0
    # Code 310 - L1 trigger
    # Code 311 - R1 trigger
    # Code 314 - Share button
    # Code 315 - Options button
    # Code 316 - PS button
    elif ev_type == 3:
        # Type 3 event - sticks
        # Code 3 - right stick horizontal
        # Code 2 - L2 trigger
        # Code 5 - R2 trigger
        # Code 0 - left stick horizontal (left is 0)
        # Code 1 - left stick vertical (forward is 0)
        # Code 4 - r stick vertical
        # Code 17 - dpad vertical
        # Code 16 - dpad horizontal
        if code == 3:
            left = scale(value, (0, 255), (40, -40))
        if code == 1:  # Righ stick vertical
            forward = scale(value, (0, 255), (100, -100))

    # Set motor voltages.
    left_motor.dc(-forward)
    right_motor.dc(-forward)

    # Track the steering angle
    steer_motor.track_target(left)

    # Finally, read another event
    event = in_file.read(EVENT_SIZE)

in_file.close()
Exemplo n.º 2
0
# setup serial port
serial = UARTDevice(Port.S4, baudrate=9600, timeout=None)
serial.clear()
while (1):
    if SystemLink.Get_SL('Start27') == 'true':
        throw_ball()
        SystemLink.Put_SL('Start27', 'BOOLEAN', 'false')
    if touch1.pressed() == True:
        throw_ball()
        SystemLink.Put_SL('Start28', 'BOOLEAN', 'true')

    if len(ev3.buttons.pressed()) > 0:
        print("Catching Ball")
        wait(3000)
        motorD.track_target(40)

        # collect data from serial port and move armw
        while (1):
            serial.clear()
            ang1 = ""
            ang2 = ""
            curr_byte = serial.read()
            #print(curr_byte)
            # decode instructions once b'a' is seen
            if curr_byte == b'a':
                # get angles
                curr_byte = serial.read()
                while (curr_byte != b'b'):
                    ang1 += curr_byte.decode('utf-8')
                    curr_byte = serial.read()
Exemplo n.º 3
0
#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor,
                                 InfraredSensor, UltrasonicSensor, GyroSensor)
from pybricks.parameters import (Port, Stop, Direction, Button, Color,
                                 SoundFile, ImageFile, Align)
from pybricks.tools import print, wait, StopWatch
from pybricks.robotics import DriveBase

left_motor = Motor(Port.B)

left_motor.track_target(360)
left_motor.run_angle(360, 360, Stop.BRAKE, True)
Exemplo n.º 4
0
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor,
                                 InfraredSensor, UltrasonicSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Button, Color

from math import sin, radians, pi, atan2, degrees
from connection import SpikePrimeStreamReader, SpikeRCWheel

# Create the connection. See README.md to find the address for your SPIKE hub.
wheel = SpikeRCWheel('38:0B:3C:A3:45:0D')

steer_motor = Motor(Port.A)


sheet_motor = Motor(Port.D)


sheet_spd = 0
left = 0
sheet_pos = 0

# Now you can simply read values!
while True:
    steer_motor.track_target(wheel.steering() * -1 + wheel.right_thumb())

    if wheel.left_paddle() > 15:
        sheet_spd = wheel.left_paddle() * -10
    else:
        sheet_spd = wheel.right_paddle() * 10

    sheet_motor.run(sheet_spd)
Exemplo n.º 5
0
motorB.run_angle(speed=500, rotation_angle=180, then=Stop.HOLD, wait=True)
printMotor(motorB, ev3.screen)
waiter(ir)

ev3.screen.print('=run target 90=')
motorB.run_target(speed=500, target_angle=90, then=Stop.HOLD, wait=True)
printMotor(motorB, ev3.screen)
waiter(ir)

ev3.screen.print('=angle 90=')
motorB.run_angle(speed=500, rotation_angle=90, then=Stop.HOLD, wait=True)
printMotor(motorB, ev3.screen)
waiter(ir)

ev3.screen.print('=track target 90=')
motorB.track_target(target_angle=90)
waiter(ir)

ev3.screen.print('=until stalled=')
motorB.run_until_stalled(15, then=Stop.COAST, duty_limit=10)
printMotor(motorB, ev3.screen)
waiter(ir)

ev3.screen.print('=duty 100=')
motorB.dc(100)
waiter(ir)
printMotor(motorB, ev3.screen)
motorB.stop()
waiter(ir)

ev3.screen.print('=duty -100=')
Exemplo n.º 6
0
#!/usr/bin/env pybricks-micropython
from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor
from pybricks.parameters import Port, Button, Stop
from pybricks.tools import print, wait, StopWatch
import math

motor = Motor(Port.B)
watch = StopWatch()
amplitude = 90

while True:
    bts = brick.buttons()

    t = watch.time() / 1000
    angle = math.sin(t) * amplitude
    motor.track_target(angle)

    if Button.CENTER in bts:
        break
Exemplo n.º 7
0
skr = list()
skk = list()

for i in range(3):
    robot.drive(100, 0)
    while not (dcl.color() == Color.BLACK and dcp.color() == Color.BLACK):
        wait(10)
    robot.drive_time(50, 0, 330)
    if i == 0:
        mc.run_time(-700, 2100)
sh_code()
# robot.drive_time(150, 0, 870)
nch_hr()
for j in range(2):
    mb.track_target(360)
    wait(1300)
    mb.stop()
    wait(300)
# mc.run_time(-300, 1000)
for i in range(2):
    robot.drive(100, 0)
    while dr.distance() > 45:
        wait(10)
    robot.stop()
    line()
    robot.drive_time(0, 100, 835)
    # mc.run_time(300, 1000)
    if i == 0:
        mc.run_time(700, 2100)
    else:
Exemplo n.º 8
0
# Read from the file
# long int, long int, unsigned short, unsigned short, unsigned int
FORMAT = 'llHHI'
EVENT_SIZE = struct.calcsize(FORMAT)
event = in_file.read(EVENT_SIZE)

while event:
    brick.light(Color.GREEN)
    (tv_sec, tv_usec, ev_type, code, value) = struct.unpack(FORMAT, event)
    if ev_type == 1:
        if code == 305:
            # Taskuparkki Ympyralla
            brick.light(Color.RED)
            brick.light(Color.ORANGE)
            steer_motor.track_target(45)
            #brick.sound.beep(500, 1000, 200)
            robot.drive_time(-40, 0, 1000)
            steer_motor.track_target(0)
            #.sound.beep(500, 1000, 200)
            robot.drive_time(-40, 0, 500)
            steer_motor.track_target(-35)
            #brick.sound.beep(500, 1000, 200)
            robot.drive_time(-40, 0, 1000)
            steer_motor.track_target(0)
            #brick.sound.beep(500, 1000, 200)
            robot.drive_time(-30, 0, 300)
            robot.drive_time(30, 0, 500)
            #while obstacle_sensor.distance() > 100:
            #    robot.drive(-100, 0)
            #    brick.sound.beep(500, 1000, 200)
Exemplo n.º 9
0
t.start()  # start angle-integration routine

# max speed (deg/sec * 10) and accel (deg/s ^2)
#test_motor.set_run_settings(500, 400)

# Run the motor up to 500 deg/s to a target angle of X degrees.
#test_motor.run_target(500, 360)

# Play another beep sound.
# This time with a higher pitch (1000 Hz) and longer duration (500 ms).
brick.sound.beep(100, 10)

# ==========================================

mC.track_target(0)
# mC.stop(Stop.HOLD)

pi = 3.14159265359  # roughly
pi2 = pi * 2.0  # roughly
angB = 0
angC = 0

# wiggle-waggle loop running one wheel, then the other

while True:
    sstart = watch.time() / 1000
    mB.reset_angle(0)
    while True:
        seconds = watch.time() / 1000 - sstart  # time in seconds
        angle_now = (2 - (1 + cos(seconds))) * amplitude
Exemplo n.º 10
0
    elif ev_type == 3 and code == 1:
        left_stick_y = value
        process_event = True

    if process_event:
        # Scale stick positions to -100,100
        forward = scale(left_stick_y, (0, 65535), (100, -100))
        left = scale(left_stick_x, (0, 65535),
                     (max_steering_angle, -max_steering_angle))

        if (-left_stick_deadzone < forward and forward < left_stick_deadzone
                and -left_stick_deadzone < left
                and left < left_stick_deadzone):
            # Stop driving motors
            left_motor.dc(0)
            right_motor.dc(0)
            # Set steering to center
            steer_motor.track_target(0)
        else:
            # Set motor voltages. If we're steering left, the left motor
            # must run backwards so it has a -left component
            # It has a forward component for going forward too.
            left_motor.dc(-forward)
            right_motor.dc(forward)
            # Set steering angle
            steer_motor.track_target(-left)

    # Finally, read another event
    event = in_file.read(EVENT_SIZE)

in_file.close()