# 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()
# 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()
#!/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)
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)
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=')
#!/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
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:
# 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)
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
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()