Exemplo n.º 1
0
import time, tty, sys, threading
from ev3dev2 import list_devices
from ev3dev2.motor import LargeMotor, OUTPUT_A, SpeedPercent, SpeedDPS, MoveTank
from ev3dev2.sensor import INPUT_1

# some keyboard control setup and vars
tty.setcbreak(sys.stdin)
x = 0   # set here to make global


# setup motor
mL = LargeMotor(OUTPUT_A)
time.sleep(0.5)
mL.reset()
time.sleep(2)
mL.duty_cycle_sp = 0
mLDtyMax = 16
mL.stop_action = 'coast'
mL.polarity = 'inversed'
mL.position = 0

StallDetected = False
mLlastPos = 0
i = 0


# Turn motor on with run_direct and duty_cycle_sp of '0'
mL.run_direct()

def keyboardInput(name):
    while (True):
Exemplo n.º 2
0
#                           - this is the initial code testing the Left Right PiCam shuttle mechanism
#                             designed to simulate a Stereo camera
#

import time, tty, sys
from ev3dev2.motor import LargeMotor, OUTPUT_D, SpeedPercent, SpeedDPS, MoveTank
from ev3dev2.sensor import INPUT_1

tty.setcbreak(sys.stdin)


mShuttle = LargeMotor(OUTPUT_D)
time.sleep(0.5)
mShuttle.reset()
time.sleep(2)
mShuttle.duty_cycle_sp = 0
mShuttleDtyMax = 22
mShuttle.stop_action = 'coast'
mShuttle.polarity = 'inversed'
mShuttle.position = 0

prev_mShuttle_pos = 0

# Turn motor on with run_direct and duty_cycle_sp of '0'
mShuttle.run_direct()

print ("Ready for keyboard commands...")

while (True):
    x = ord(sys.stdin.read(1))
    if x == 120: # x key pushed - exit
Exemplo n.º 3
0
# 2/22/2020     Ron King    Port from MindSensors Pistorms version
# 3/1/2020      Ron King    Fixed issues in speed change control logic and sequencing
# 3/22/2020     Ron King    v2.0 - change from regulated 'on', 'speed' to duty_cycle
#                           Removed all traces of Pistorms version (issues and comments)

import time, tty, sys
from ev3dev2.motor import LargeMotor, OUTPUT_C, OUTPUT_D, SpeedPercent, SpeedDPS, MoveTank
from ev3dev2.sensor import INPUT_1

tty.setcbreak(sys.stdin)

mLift = LargeMotor(OUTPUT_C)
time.sleep(0.5)
mLift.reset()
time.sleep(2)
mLift.duty_cycle_sp = 0
mLiftDtyMax = 36
mLift.stop_action = 'coast'
mLift.polarity = 'inversed'
mLift.position = 0

mGrab = LargeMotor(OUTPUT_D)
time.sleep(0.5)
mGrab.reset()
time.sleep(2)
mGrab.duty_cycle_sp = 0
mGrabDtyMax = 36
mGrab.stop_action = 'coast'
mGrab.polarity = 'inversed'
mGrab.position = 0
Exemplo n.º 4
0
import time, tty, sys, threading
from ev3dev2 import list_devices
from ev3dev2.motor import LargeMotor, OUTPUT_A, SpeedPercent, SpeedDPS, MoveTank
from ev3dev2.sensor import INPUT_1

# some keyboard control setup and vars
tty.setcbreak(sys.stdin)
x = 0  # set here to make global

# setup motor
mL = LargeMotor(OUTPUT_A)
time.sleep(0.5)
mL.reset()
time.sleep(2)
mL.duty_cycle_sp = 0
mLDtyMax = 12
mL.stop_action = 'coast'
mL.polarity = 'inversed'
mL.position = 0

StallDetected = False
mLlastPos = 0
mLposU = 0
mLposJ = 0
i = 0

# Turn motor on with run_direct and duty_cycle_sp of '0'
mL.run_direct()

Exemplo n.º 5
0
from smbus import SMBus

from ev3dev2.display import Display
from ev3dev2.motor import LargeMotor, SpeedPercent, OUTPUT_A, OUTPUT_D
from ev3dev2.sensor import INPUT_1
from ev3dev2.port import LegoPort
from ev3dev2.button import Button

# Brick Variables
left_motor = LargeMotor(OUTPUT_D)
right_motor = LargeMotor(OUTPUT_A)

# Start program
target_duty_cycle = 75
correction_factor = 0.3
left_motor.duty_cycle_sp = target_duty_cycle
right_motor.duty_cycle_sp = target_duty_cycle
left_motor.run_direct()
right_motor.run_direct()

for i in range(100):
    left_degrees = left_motor.degrees
    right_degrees = right_motor.degrees
    steering = (left_degrees - right_degrees) * correction_factor

    left_duty = (target_duty_cycle - steering/2.0)
    if left_duty > 100:
        left_duty = 100
    elif left_duty < -100:
        left_duty = -100
    left_motor.duty_cycle_sp = left_duty
Exemplo n.º 6
0
pos_rel = 0
eprint("dt = " + str(dt))

nowError = False
preError = False
error_cont = 0
error = 0

angle = 0  # (deg)
rate = 0  # (deg/s)
time.sleep(0.01)
media_angle = offset()  # (deg)

motorLeft.reset()
motorRight.reset()
motorLeft.duty_cycle_sp = 0
motorRight.duty_cycle_sp = 0
motorLeft.run_direct()
motorRight.run_direct()

vel = 0
pos = 0
avance = 0
max_acel = 0
extra_pwr = 0

tiempo = time.time()
t1 = []
t2 = []
t3 = []
Exemplo n.º 7
0
import sys
import time

# TODO: implement fast read/write

from ev3dev2.motor import LargeMotor, OUTPUT_A, OUTPUT_D
from ev3dev2.sensor.lego import GyroSensor, TouchSensor

touch = TouchSensor()

gyro = GyroSensor()
gyro.mode = gyro.MODE_GYRO_G_A
offset = 0

left = LargeMotor(OUTPUT_D)
left.duty_cycle_sp = 0
left.command = left.COMMAND_RUN_DIRECT

right = LargeMotor(OUTPUT_A)
right.duty_cycle_sp = 0
right.command = right.COMMAND_RUN_DIRECT

alpha = 0.8
dc_gain = 1.0
p_gain = 1
i_gain = 0.029
d_gain = 0.049
#dt = 30 / 1000
dt = 250 / 1000