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).
#!/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
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