Exemplo n.º 1
0
def main():
    brick.sound.beep()
    sens1 = LegoPort(address ='ev3-ports:in1') # which port?? 1,2,3, or 4
    #sens2 = LegoPort(address ='ev3-ports:in2') # which port?? 1,2,3, or 4
   
    sens1.mode = 'ev3-analog'
    #sens2.mode = 'ev3-analog'
   
    utime.sleep(0.5)

    sensor_left=MySensor(Port.S1) # same port as above
    sensor_right=MySensor(Port.S2) # same port as above

    left_motor = Motor(Port.A)
    right_motor = Motor(Port.D)
    speed = 0
    value = 100

    while True:
        left_color = sensor_left.readvalue()
        right_color = sensor_right.readvalue()
        print('left sensor is ', left_color)
        print('right sensor is ', right_color)
        left_motor.run(speed)
        right_motor.run(speed)
Exemplo n.º 2
0
def main():
    sens1 = LegoPort(address='ev3-ports:in4')
    sens1.mode = 'ev3-analog'
    utime.sleep(0.5)
    sensor_left = mySensor(Port.S2)
    sensor_right = mySensor(Port.S4)
    i = 1
    tot = 0
    while i < 5:
        val1 = sensor_left.readvalue()
        val2 = sensor_right.readvalue()
        summer = val1 + val2
        avg = summer / 2
        tot = avg + tot
        i = i + 1
    errleft = sensor_left.readvalue() - tot / i
    errright = sensor_right.readvalue() - tot / i
    tail.dc(60)
    # differ = 1
    # differ1 =adjustMovement(val1,val2, differ)
    while True:
        val1 = sensor_left.readvalue()
        val2 = sensor_right.readvalue()
        #print(val1 , ',', val2)
        adjustMovement(val1 - errleft, val2 - errright)
Exemplo n.º 3
0
    def __init__(self):

        # Set LEGO port for NXT Temp sensor
        lego_port = LegoPort(INPUT_2)
        lego_port.mode = 'other-i2c'
        sleep(0.5)
        # Settings for I2C (SMBus(4) for INPUT_2)
        self.lego_bus = SMBus(4)
        # LM75 address
        self.address = NXT_SENSOR_ADDRESS
Exemplo n.º 4
0
    def __init__(self):

        # Set LEGO port for Pixy2 on input port 4
        lego_port = LegoPort(INPUT_4)
        lego_port.mode = 'other-i2c'
        sleep(0.5)
        # Settings for I2C (SMBus(6) for INPUT_4)
        self.lego_bus = SMBus(6)
        # Pixy2 address
        self.address = 0x54
Exemplo n.º 5
0
    def __init__(self):

        # Set LEGO port for arduino i2c
        lego_port = LegoPort(INPUT_4)
        lego_port.mode = 'other-i2c'
        sleep(0.5)
        # Settings for I2C (SMBus(4) for INPUT_2)
        self.lego_bus = SMBus(6)

        # HTU21D address
        self.address = ARDUINO_ADDRESS
Exemplo n.º 6
0
    def __init__(self):

        # Set LEGO port for HTU21D sensor
        lego_port = LegoPort(INPUT_4)
        lego_port.mode = 'other-i2c'
        sleep(0.5)
        # Settings for I2C (SMBus(4) for INPUT_2)
        self.lego_bus = SMBus(6)

        # HTU21D address
        self.address = 0x40
Exemplo n.º 7
0
 def __init__(self,
              address=None,
              name_pattern=SYSTEM_DEVICE_NAME_CONVENTION,
              name_exact=False,
              **kwargs):
     port = LegoPort(address=address)
     port.mode = 'uart'
     port.set_device = 'lego-ev3-ir'
     super(InfraredSensor, self).__init__(address,
                                          name_pattern,
                                          name_exact,
                                          driver_name='lego-ev3-ir',
                                          **kwargs)
Exemplo n.º 8
0
 def __init__(self,
              address=None,
              name_pattern=SYSTEM_DEVICE_NAME_CONVENTION,
              name_exact=False,
              **kwargs):
     port = LegoPort(address=address)
     port.mode = 'analog'
     port.set_device = 'lego-ev3-touch'
     time.sleep(3)
     super(TouchMuxed,
           self).__init__(address,
                          name_pattern,
                          name_exact,
                          driver_name=['lego-ev3-touch', 'lego-nxt-touch'],
                          **kwargs)
Exemplo n.º 9
0
def main():
    brick.sound.beep()
    sens = LegoPort(address='ev3-ports:in1')  # which port?? 1,2,3, or 4
    sens.mode = 'ev3-analog'

    utime.sleep(0.5)
    sensor_left = MySensor(Port.S1)  # same port as above
    sensor_right = MySensor(Port.S3)  # same port as above

    robot.drive(0, 0)
    while True:
        lightLevel = sensor_left.readvalue()
        lightLevel2 = sensor_right.readvalue()

        print('Left', lightLevel, 'Right', lightLevel2)
        robot.drive(1, control(lightLevel2, lightLevel))
        wait(200)
Exemplo n.º 10
0
def main():
    brick.sound.beep()
    sens1 = LegoPort(address='ev3-ports:in4')  # which port?? 1,2,3, or 4
    #sens2 = LegoPort(address ='ev3-ports:in4') # which port?? 1,2,3, or 4

    sens1.mode = 'ev3-analog'
    #sens2.mode = 'ev3-analog'

    utime.sleep(0.5)

    sensor_left = MySensor(Port.S4)  # same port as above
    sensor_right = MySensor(Port.S2)  # same port as above

    left_motor = Motor(Port.A)
    right_motor = Motor(Port.D)
    speed = 200

    Kp = 3
    speed = 250
    Kd = 0.4
    diff = 0
    curr_gain = 0.8
    last = [0, 0]

    while True:
        difflast = diff
        left_color = sensor_left.readvalue()
        right_color = sensor_right.readvalue()
        if last is [0, 0]:
            last = [left_color, right_color]
        left_color, right_color = left_color * curr_gain + (
            last[0] *
            (1 - curr_gain)), right_color * curr_gain + (last[1] *
                                                         (1 - curr_gain))
        last = [left_color, right_color]
        diff = left_color - right_color
        deriv = diff - difflast
        # print(diff)
        # print(deriv)
        print("Left: {}, Right: {}, Diff: {}".format(left_color, right_color,
                                                     diff))
        controller = ((Kp * diff) + (Kd + deriv)) / 2
        left_motor.run(speed + controller)
        right_motor.run(speed - controller)
Exemplo n.º 11
0
def main():
    #brick.sound.beep()

    sens = LegoPort(address='ev3-ports:in1')  # which port?? 1,2,3, or 4
    sens.mode = 'ev3-analog'

    utime.sleep(0.5)
    sensor_left = MySensor(Port.S1)  # same port as above
    sensor_right = MySensor(Port.S3)  # same port as above

    robot.drive(0, 0)
    while True:
        lightLevel = sensor_left.readvalue()
        lightLevel2 = sensor_right.readvalue()
        print('Left', lightLevel)
        print('Right', lightLevel2)
        controller.right = lightLevel2
        controller.left = lightLevel

        robot.drive(50, controller.setangle())
Exemplo n.º 12
0
#

# ref. https://github.com/ev3dev/ev3dev-lang-python-demo/blob/stretch/platform/brickpi3-motor-and-sensor.py

import time, tty, sys
from ev3dev2 import list_devices
from ev3dev2.port import LegoPort
from ev3dev2.motor import OUTPUT_A, LargeMotor, SpeedPercent
from ev3dev2.sensor import INPUT_2
from ev3dev2.sensor.lego import Sensor


p2 = LegoPort(INPUT_2)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
p2.mode = 'nxt-i2c'

# allow for some time for mode to setup
time.sleep(0.5)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/sensors.html#supported-sensors

""" https://github.com/ev3dev/ev3dev/issues/640

dlech commented on May 15, 2016
    You are forgetting the I2C address for set_device

$ echo mx-pps58-nx 0x0C >/sys/class/lego-port/port0/set_device """

# set device name and i2c address (in hex)
p2.set_device = 'ms-absolute-imu 0x11'
import time
# import sys
# import copy
# import os
# import json

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s:%(levelname)s:%(threadName)s:%(message)s')
log = logging.getLogger(__name__)

port1 = INPUT_7
port4 = INPUT_8

legoPort1 = LegoPort(port1)
legoPort1.mode = 'nxt-i2c'
legoPort1.set_device = 'ms-absolute-imu 0x11'
# legoPort4 = LegoPort(port4)
# legoPort4.mode = 'nxt-i2c'
# legoPort4.set_device = 'ms-absolute-imu 0x11'

print('Pausing 2 seconds...')
time.sleep(2)
print('Done, creating sensor class object for {}, {}'.format(port1, port4))
sensor1 = Sensor(address='{}:i2c17'.format(port1))
# sensor4 = Sensor(address='{}:i2c17'.format(INPUT_4))
target_mode = 'ALL'
sensor1.mode = target_mode
# sensor4.mode = target_mode
while True:
    # log.info('Joint 3 ({}) X/Y/Z angle = {}/{}/{}'.format(INPUT_4, sensor4.value(0), sensor4.value(1), sensor4.value(2)))
Exemplo n.º 14
0
from ev3dev2.motor import LargeMotor, OUTPUT_A, OUTPUT_B
from ev3dev2.port import LegoPort


def limit_speed(speed):
    """ Limit speed in range [-1000,1000] """
    if speed > 1000:
        speed = 1000
    elif speed < -1000:
        speed = -1000
    return speed


# Set LEGO port for Pixy on input port 1
in1 = LegoPort(INPUT_1)
in1.mode = 'auto'
# Wait 2 secs for the port to get ready
sleep(2)

# Connect Pixy camera
pixy = Sensor(INPUT_1)
# Set mode to detect signature 1 only
pixy.mode = 'SIG1'

# Signatures we're interested in (SIG1)
sig = 1

# Connect TouchSensor (to stop script)
ts = TouchSensor(INPUT_4)

# Connect LargeMotors
Exemplo n.º 15
0
# 5/10/2021     Ron King    initial dev

# ref. https://github.com/ev3dev/ev3dev-lang-python-demo/blob/stretch/platform/brickpi3-motor-and-sensor.py

import time, tty, sys
from ev3dev2 import list_devices
from ev3dev2.port import LegoPort
from ev3dev2.motor import OUTPUT_A, LargeMotor, SpeedPercent
from ev3dev2.sensor import INPUT_4
from ev3dev2.sensor.lego import Sensor


p4 = LegoPort(INPUT_4)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
p4.mode = 'ev3-uart'

# allow for some time for mode to setup
time.sleep(0.5)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/sensors.html#supported-sensors

""" https://github.com/ev3dev/ev3dev/issues/640

dlech commented on May 15, 2016
    You are forgetting the I2C address for set_device

$ echo mx-pps58-nx 0x0C >/sys/class/lego-port/port0/set_device 

dmesg -w
Exemplo n.º 16
0
# Date          Author      Change Notes
# 3/22/2020     Ron King    initial dev
# 6/14/2020     Ron King    changed to input port 3 with no time limit, IR-PROX mode only
#                           added work-around for bogus intermittent readings of '0'
#

import time, tty, sys
from ev3dev2 import list_devices
from ev3dev2.port import LegoPort
from ev3dev2.motor import OUTPUT_A, LargeMotor, SpeedPercent
from ev3dev2.sensor import INPUT_3
from ev3dev2.sensor.lego import InfraredSensor

p3 = LegoPort(INPUT_3)
# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
p3.mode = 'ev3-uart'
# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/sensors.html#supported-sensors
p3.set_device = 'lego-ev3-ir'

# Connect infrared to any sensor port
ir = InfraredSensor(INPUT_3)

# allow for some time to load the new drivers
time.sleep(0.5)

ir.mode = 'IR-PROX'
irProxVal = 100
prev_irProxVal = 0

badValCount = 0
# - LEGO LargeMotor connected to port BAM1
# - LEGO LargeMotor connected to port BBM1
# - LEGO LargeMotor connected to port BBM2
# - LEGO MediumMotor connected to port BAM2
# - LEGO TouchSensor connected to port BAS2
# - LEGO TouchSensor connected to port BBS2
#
from time import sleep

from ev3dev2.port import LegoPort
from ev3dev2.motor import Motor, LargeMotor, OUTPUT_D
from ev3dev2.sensor.lego import TouchSensor

# Configure ports for sensors
port_BAS2 = LegoPort('pistorms:BAS2')
port_BAS2.mode = 'ev3-analog'
port_BBS2 = LegoPort('pistorms:BBS2')
port_BBS2.mode = 'ev3-analog'
sleep(2)


class ExceededRetries(Exception):
    ''' Custom exception for exceeding retries at Remote I/O error.'''
    pass


def try_except(func):
    ''' Retry function when Remote I/O error occurs.'''
    def wrapper(*args, **kwargs):
        for i in range(10):
            try:
Exemplo n.º 18
0
# 5/31/2021     Ron King    - work-around for bogus intermittent readings of '0' (possibly a f/w bug in BrickPi3)
#

# ref. https://github.com/ev3dev/ev3dev-lang-python-demo/blob/stretch/platform/brickpi3-motor-and-sensor.py

import time, tty, sys
from ev3dev2 import list_devices
from ev3dev2.port import LegoPort
from ev3dev2.motor import OUTPUT_A, LargeMotor, SpeedPercent
from ev3dev2.sensor import INPUT_2
from ev3dev2.sensor.lego import GyroSensor

p2 = LegoPort(INPUT_2)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
p2.mode = 'ev3-uart'

# allow for some time for mode to setup
time.sleep(0.5)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/sensors.html#supported-sensors
""" https://github.com/ev3dev/ev3dev/issues/640

dlech commented on May 15, 2016
    You are forgetting the I2C address for set_device

$ echo mx-pps58-nx 0x0C >/sys/class/lego-port/port0/set_device 

dmesg -w

"""
Exemplo n.º 19
0
    1: INPUT_1,
    2: INPUT_2,
    3: INPUT_3,
    4: INPUT_4,
}
lego_port = portMap.get(port, 'Invalid Port')

# EV3 Display
lcd = Display()

# Connect ToucSensor
ts = TouchSensor(INPUT_4)

# Set LEGO port for Pixy2 on input port 1
in1 = LegoPort(lego_port)
in1.mode = 'other-i2c'
# Short wait for the port to get ready
sleep(0.5)

# Settings for I2C (SMBus(3) for INPUT_1)
bus = SMBus(port + 2)
# Make sure the same address is set in Pixy2
address = 0x54

# Signatures we're interested in (SIG1)
sigs = 255

# Data for requesting block
data = [174, 193, 32, 2, sigs, 1]

f = open('tmp_camera_data.txt', 'r+', os.O_NONBLOCK)
# Make sure the same address is set in Pixy2
PIXY2_I2C_ADDRESS = 0x54

# Data for requesting block
GET_OBJECTS_COMMAND = [174, 193, 32, 2, 255, 255]

# Defines all of the LEGO Motor Ports
lmA = LargeMotor(OUTPUT_A)
lmB = LargeMotor(OUTPUT_B)
lmC = LargeMotor(OUTPUT_C)
mmD = MediumMotor(OUTPUT_D)

# Set LEGO port for Pixy2 on input port 1
in4 = LegoPort(INPUT_4)
in4.mode = 'other-i2c'

# List of valid three-in-a-rows
isValidThreeInARow = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [0, 4, 8],
                      [1, 4, 7], [2, 5, 8], [2, 4, 6]]

#Speed of the wheels
speed = 10

# number of rotations to pick up a coin
pickingUpCoin = -0.16

# lower the claw this number of rotations + extra for each coin to pick up
lowerToReachCoin = 0.12

# lower the claw this number of rotations in addition to the above to pick up each coin
Exemplo n.º 21
0
#
# uses ev3dev2-based code
#
# Date          Author      Change Notes
# 4/12/2020     Ron King    initial dev

import time, tty, sys
from ev3dev2 import list_devices
from ev3dev2.port import LegoPort
from ev3dev2.motor import OUTPUT_A, LargeMotor, SpeedPercent
from ev3dev2.sensor import INPUT_1
from ev3dev2.sensor.lego import TouchSensor

p1 = LegoPort(INPUT_1)
# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
p1.mode = 'nxt-analog'
# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/sensors.html
p1.set_device = 'lego-nxt-touch'

# Connect infrared to any sensor port
ts = TouchSensor(INPUT_1)

# allow for some time to load the new drivers
time.sleep(0.5)

tsVal = False
prev_tsVal = False

print(
    "#######################################################################")
print(
Exemplo n.º 22
0
# Date          Author      Change Notes
# 4/15/2020     Ron King    initial dev

# ref. https://github.com/ev3dev/ev3dev-lang-python-demo/blob/stretch/platform/brickpi3-motor-and-sensor.py

import time, tty, sys
from ev3dev2 import list_devices
from ev3dev2.port import LegoPort
from ev3dev2.motor import OUTPUT_A, LargeMotor, SpeedPercent
from ev3dev2.sensor import INPUT_1
from ev3dev2.sensor.lego import Sensor

p1 = LegoPort(INPUT_1)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
p1.mode = 'nxt-i2c'

# allow for some time for mode to setup
time.sleep(0.5)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/sensors.html#supported-sensors
""" https://github.com/ev3dev/ev3dev/issues/640

dlech commented on May 15, 2016
    You are forgetting the I2C address for set_device

$ echo mx-pps58-nx 0x0C >/sys/class/lego-port/port0/set_device 

dmesg -w

"""
Exemplo n.º 23
0
    def __init__(self,
                 robot_config_file,
                 initRobotConfig,
                 timeStep,
                 odometryTimer=0.1,
                 defaultLogging=30):
        """
        Creates the main bot class.
        """
        if not os.path.exists(robot_config_file):
            raise ValueError(f'Cannot find configuration file '
                             f'"{robot_config_file}"')

        with open(robot_config_file, 'r') as f:
            self.robotConfiguration = json.load(f)

        # Adjust JSON just read
        self.__adjustConfigDict(self.robotConfiguration)

        # Exception Queue for inter threads exception communications
        self.exceptionQueue = queue.Queue()
        self.mqttMoveQueue = queue.Queue()
        self.baseMovementLock = asyncio.locks.Lock()
        self.timeStep = timeStep
        self.powerSupply = PowerSupply()

        # region sensor Init
        self.sensors = {}
        for sensor in self.robotConfiguration["sensors"]:
            sensorDict = self.robotConfiguration["sensors"][sensor]
            legoPort = LegoPort(sensorDict["input"])
            # Applies to both I2C and SDK controled sensors
            if legoPort.mode != sensorDict["mode"]:
                legoPort.mode = sensorDict["mode"]
            # Only applies to sensors controled by the python SDK
            if "set_device" in sensorDict:
                legoPort.set_device = sensorDict["set_device"]
                time.sleep(1)
            address = sensorDict["input"]
            self.sensors[sensor] = sensorDict["sensorType"](address=address)
        # endregion

        # base Init
        self.base = DiffDriveBase(self.robotConfiguration["base"],
                                  initRobotConfig, odometryTimer)

        # arm/endeffector Init
        self.arm = Arm(armLinkDefinitions=self.robotConfiguration["arm"])

        # Other matrix init
        self.M0e = mr.RpToTrans(
            R=np.array(
                self.robotConfiguration["arm"]["arm1"]["manipulatorConfiguration"]["M0e"]["rotationMatrix"]).T,   # noqa F501
            p=self.robotConfiguration["arm"]["arm1"]["manipulatorConfiguration"]["M0e"]["p"])   # noqa F501
        self.Toe_grip = mr.RpToTrans(
            R=np.array(
                self.robotConfiguration["arm"]["arm1"]["manipulatorConfiguration"]["Toe_grip"]["rotationMatrix"]).T,   # noqa F501
            p=self.robotConfiguration["arm"]["arm1"]["manipulatorConfiguration"]["Toe_grip"]["p"])    # noqa F501
        self.Tbc = mr.RpToTrans(
            R=np.array(
                self.robotConfiguration["cameraConfiguration"]["Tbc"]["rotationMatrix"]).T,   # noqa F501
            p=self.robotConfiguration["cameraConfiguration"]["Tbc"]["p"])
        self.Tcb = mr.TransInv(self.Tbc)

        # Reset all motors at init
        self.urgentStop = False
        log.info(LOGGER_DDR_MAIN, 'Done main robot init.')
Exemplo n.º 24
0
tank_pair = MoveTank(OUTPUT_B,OUTPUT_C)
steer_pair = MoveSteering(OUTPUT_B,OUTPUT_C)
MediumMotor_Claw = MediumMotor(OUTPUT_A)
MediumMotor_lift = MediumMotor(OUTPUT_D)

sound = Sound()
leds = Leds()
btn = Button()

# Mindstorms EV3-Sensor-Mux connected to EV3 Ultrasonic Sensor, Infrared Sensor and Gyro Sensor --------------------

us_port = LegoPort(address='ev3-ports:in2:i2c80:mux1') 
ir_port = LegoPort(address='ev3-ports:in2:i2c81:mux2') 
gyro_port = LegoPort(address='ev3-ports:in2:i2c82:mux3')

us_port.mode = 'uart'
ir_port.mode = 'uart'
gyro_port.mode = 'uart'

us_port.set_device = 'lego-ev3-us' 
ir_port.set_device = 'lego-ev3-ir'
gyro_port.set_device = 'lego-ev3-gyro'

sleep(2)

us = UltrasonicSensor('ev3-ports:in2:i2c80:mux1')
ir = InfraredSensor('ev3-ports:in2:i2c81:mux2')
gyro = GyroSensor('ev3-ports:in2:i2c82:mux3')

us_value = us.value(0)
us_dist = us.distance_centimeters # takes multiple measurements
Exemplo n.º 25
0
import utime, array
from pybricks.ev3devio import Ev3devSensor


class EV3Sensor(Ev3devSensor):
    _ev3dev_driver_name = 'ev3-analog-01'

    def read(self):
        self._mode('ANALOG')
        return self._value(0)


# this is a hack to set the mode properly
from ev3dev2.port import LegoPort
s2 = LegoPort(address='ev3-ports:in2')
s2.mode = 'ev3-analog'
utime.sleep(1)
s3 = LegoPort(address='ev3-ports:in3')
s3.mode = 'ev3-analog'
utime.sleep(1)

# Write your program here
brick.sound.beep()

# testing
# sensor=EV3Sensor(Port.S1) # same port as above
# while True:
#    print(sensor.read())
#    wait(2000)

# global object declarations
Exemplo n.º 26
0
#
# Date          Author      Change Notes
# 4/11/2020     Ron King    initial dev

import time, tty, sys
from ev3dev2 import list_devices
from ev3dev2.port import LegoPort
from ev3dev2.motor import OUTPUT_A, LargeMotor, SpeedPercent
from ev3dev2.sensor import INPUT_1
from ev3dev2.sensor.lego import UltrasonicSensor

###  Ref: https://github.com/ev3dev/ev3dev-lang-python-demo/blob/stretch/platform/brickpi3-motor-and-sensor.py

p1 = LegoPort(INPUT_1)
# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
p1.mode = 'ev3-uart'
# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/sensors.html#supported-sensors
p1.set_device = 'lego-ev3-us'

# Connect infrared to any sensor port
us = UltrasonicSensor(INPUT_1)

# allow for some time to load the new drivers
time.sleep(0.5)

usDistCmVal = 0
prev_usDistCmVal = 0

startTime = time.time()

badValCount = 0
from ev3dev2.sensor import INPUT_2
from ev3dev2.sensor.lego import Sensor
from ev3dev2.sensor import I2cSensor

p2 = LegoPort(INPUT_2)
# p2 = LegoPort('spi0.1:S2:i2c1')

print("wait 2")

# allow for some time to stabilze
time.sleep(1)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
print("valid port (p2) modes are...", p2.modes)
# p2.mode = 'nxt-i2c'   ## this works on most of the other i2c sensors used so far (Ron King, 5/7/2021)
p2.mode = 'none'  ## setting to 'none' so smbus can access (Ron King, 5/10/2021)
print("...port (p2) mode currently set to...", p2.mode)
print("")

print("wait 3")

# allow for some time to stabilze
time.sleep(1)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/sensors.html#supported-sensors
""" https://github.com/ev3dev/ev3dev/issues/640

dlech commented on May 15, 2016
    You are forgetting the I2C address for set_device

$ echo mx-pps58-nx 0x0C >/sys/class/lego-port/port0/set_device 
Exemplo n.º 28
0
motor B = Right motor

 """

import time, tty, sys, threading
import numpy as np
from ev3dev2 import list_devices
from ev3dev2.port import LegoPort
from ev3dev2.motor import LargeMotor, OUTPUT_A, OUTPUT_B, SpeedPercent, SpeedDPS, MoveTank
from ev3dev2.sensor import INPUT_1, INPUT_2, INPUT_3
from ev3dev2.sensor.lego import InfraredSensor, UltrasonicSensor
from ev3dev2.sensor.lego import Sensor

p1 = LegoPort(INPUT_1)
# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
p1.mode = 'ev3-uart'
# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/sensors.html#supported-sensors
p1.set_device = 'lego-ev3-us'

# Connect lego-ev3-us to any sensor port
us = UltrasonicSensor(INPUT_1)

# allow for some time to load the new drivers
time.sleep(0.5)

usDistCmVal = 0
prev_usDistCmVal = 0

p2 = LegoPort(INPUT_2)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
Exemplo n.º 29
0
print("wait 1")
# allow for some time to stabilze
time.sleep(3)

p2 = LegoPort(INPUT_2)

print("valid port (p2) modes are...", p2.modes)
print("")

print("wait 2")

# allow for some time to stabilze
time.sleep(3)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/brickpi3.html#brickpi3-in-port-modes
p2.mode = 'nxt-i2c'  ## this works on most of the other i2c sensors used so far (Ron King, 5/7/2021)

print("wait 3")

# allow for some time to stabilze
time.sleep(3)

# http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-stretch/sensors.html#supported-sensors
""" https://github.com/ev3dev/ev3dev/issues/640

dlech commented on May 15, 2016
    You are forgetting the I2C address for set_device

$ echo mx-pps58-nx 0x0C >/sys/class/lego-port/port0/set_device 

dmesg -w