Пример #1
0
import joke
from gyro import gyro

#joke.play_joke("start_up")

import time
import motor

sensor_overview = {
    "v_color": INPUT_2,
    "r_color": INPUT_3,
    "ultra": INPUT_4,
    "gryo": INPUT_1
}

infrared_sensor = lego.UltrasonicSensor(sensor_overview["ultra"])
color_sensor_v = lego.ColorSensor(sensor_overview["v_color"])
color_sensor_r = lego.ColorSensor(sensor_overview["r_color"])
gyro_sensor = gyro(sensor_overview["gryo"])


def get_color():
    return [color_sensor_v.color_name, color_sensor_r.color_name]


def print_sensor(comment=""):
    dist = infrared_sensor.distance_centimeters
    color = get_color()
    gyro = gyro_sensor.get_angel_and_rate()

    print(comment, dist, color, gyro)
    os.system('setfont Lat15-TerminusBold14')
    import ev3dev2.display as display  # Only need this when running on ev3
    disp = display.Display()
else:
    # We are running remotely, so assume we are using RPYC
    import rpyc
    conn = rpyc.classic.connect(
        'ev3dev.local')  # host name or IP address of the EV3
    sensors = conn.modules['ev3dev2.sensor.lego']  # import ev3dev2 remotely
    motors = conn.modules['ev3dev2.motor']

tank = motors.MoveTank('outB', 'outC')

distSensorType = 'Ultrasonic'  # Change to 'IR' for the IR sensor
if distSensorType == 'Ultrasonic':
    distSensor = sensors.UltrasonicSensor()
    distSensor.mode = 'US-DIST-CM'  # Measure distance in centimeters
else:
    distSensor = sensors.InfraredSensor()
    distSensor.mode = 'IR-PROX'  # Put sensor in Proximity mode to measure distance from an obstacle

ts = sensors.TouchSensor()

np.set_printoptions(precision=3)

# touch sensor
# 0: touchsensor not pressed
# 1: touchsensor pressed
numTouchSensorStates = 2

# Ultrasonic returns 0 to 255 cm. IR sensor returns 0 to 100 (v).
Пример #3
0
#!/usr/bin/env python3

# Code adapted from https://github.com/tjohnson250/ev3rl/blob/master/qlearn%20touch%20and%20distance%20sensor.py
# many thanks to TJohnson

import datetime
import numpy as np
import ev3dev2.sensor.lego as sensors
import ev3dev2.motor as motors
import random
import os

#set up sensors
ultra = sensors.UltrasonicSensor()
ultra.mode = 'US-DIST-CM'

# Reducing the distance sensor states to 5 discrete states
numDistSensorStates = 5

bins = [0]
for i in range(numDistSensorStates - 1):
    bins.append((i + 1) * 8)


# returns the discrete distance from the ultrasonic sensor
def getCoarseDistance(sensor, bins):
    rawDist = ultra.distance_centimeters
    dist = np.digitize([rawDist], bins)[0]
    return dist - 1

Пример #4
0
    def __init__(self):
        super().__init__()
        self.running = False

        self.reload()

        self.motors = []
        try:
            self.motors.append(motor.LargeMotor(motor.OUTPUT_A))
        except:
            pass
        try:
            self.motors.append(motor.LargeMotor(motor.OUTPUT_B))
        except:
            pass
        try:
            self.motors.append(motor.LargeMotor(motor.OUTPUT_C))
        except:
            pass
        try:
            self.motors.append(motor.LargeMotor(motor.OUTPUT_D))
        except:
            pass

        self.servos = []
        try:
            self.servos.append(motor.MediumMotor(motor.OUTPUT_A))
            self._servo_counter += 1
        except:
            pass
        try:
            self.servos.append(motor.MediumMotor(motor.OUTPUT_B))
            self._servo_counter += 1
        except:
            pass
        try:
            self.servos.append(motor.MediumMotor(motor.OUTPUT_C))
            self._servo_counter += 1
        except:
            pass
        try:
            self.servos.append(motor.MediumMotor(motor.OUTPUT_D))
            self._servo_counter += 1
        except:
            pass

        self.sound = None
        try:
            self.sound = sound.Sound()
        except:
            pass

        self.infrared_sensor = None
        try:
            self.infrared_sensor = lego.InfraredSensor(sensor.INPUT_4)
        except:
            pass

        self.ultrasonic_sensor = None
        if self.infrared_sensor == None:
            try:
                self.ultrasonic_sensor = lego.UltrasonicSensor(sensor.INPUT_4)
            except:
                pass

        self.running = True