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_1) except: pass self.running = True
#!/usr/bin/micropython #testing motor import ev3dev2.motor as em import ev3dev2 as e import utime as t from ev3dev2.led import Leds from ev3dev2.sound import Sound spkr = Sound() leds = Leds() leds.set_color("LEFT", "GREEN") leds.set_color("RIGHT", "GREEN") m1= em.LargeMotor(em.OUTPUT_A) m1.on(em.SpeedPercent(25)) t.sleep(1) m1.off() leds.set_color("LEFT", "GREEN") leds.set_color("RIGHT", "RED") t.sleep(0.1) leds.set_color("LEFT", "RED") leds.set_color("RIGHT", "GREEN") t.sleep(0.1) leds.set_color("LEFT", "GREEN") leds.set_color("RIGHT", "GREEN") spkr.play_song(( ('D4', 'e3'), ('D4', 'e3'), ('D4', 'e3'), ('G4', 'h'), ('D5', 'h') ),tempo=220)
#!/usr/bin/env python3 import ev3dev2.sensor.lego as sensors import ev3dev2.motor as motors import os #from rl.agents.cem import CEMAgent os.system('setfont Lat15-TerminusBold14') mL = motors.LargeMotor('outB'); ml.stop_action = 'hold' mR = motors.LargeMotor('outC'); mR.stop_action = 'hold' print('Hello, my name is EV3!') Sound.speak('Hello, my name is EV3!').wait() mL.on_to_position(10, 10) mR.on_to_position(10, 10) mL.wait_while('running') mR.wait_while('running')
#!/usr/bin/python3 #testing motor import ev3dev2.motor as em import time as t m1= em.LargeMotor(em.OUTPUT_A) m2= em.LargeMotor(em.OUTPUT_B) m3= em.LargeMotor(em.OUTPUT_C) m4= em.LargeMotor(em.OUTPUT_D) m1.on(em.SpeedPercent(25)) m2.on(em.SpeedPercent(25)) m3.on(em.SpeedPercent(25)) m4.on(em.SpeedPercen(25)) t.sleep(1) m1.off() m2.off() m3.off() m4.off()
def main(): '''The main function of our program''' debug_print('----------- Main Start ------------') # set the console just how we want it reset_console() #重置屏幕 set_cursor(OFF) # set_font('Lat15-Terminus24x12') #菊连主机资源 if DaisyChainEnabled: Gyro_slave = ev3_slave_sensor.GyroSensor(ev3_slave_sensor_port.INPUT_1) Motor_slave = ev3_slave_motor.MediumMotor(ev3_slave_motor.OUTPUT_B) #本地主机资源 MA = ev3_master_motor.LargeMotor(ev3_master_motor.OUTPUT_A) MB = ev3_master_motor.LargeMotor(ev3_master_motor.OUTPUT_B) MC = ev3_master_motor.LargeMotor(ev3_master_motor.OUTPUT_C) MD = ev3_master_motor.LargeMotor(ev3_master_motor.OUTPUT_D) MA.off() MB.off() MC.off() MD.off() if DaisyChainEnabled: Motor_slave.off() col1 = ev3_master_sensor.ColorSensor(ev3_master_sensor_port.INPUT_1) col2 = ev3_master_sensor.ColorSensor(ev3_master_sensor_port.INPUT_2) col3 = ev3_master_sensor.ColorSensor(ev3_master_sensor_port.INPUT_3) col4 = ev3_master_sensor.ColorSensor(ev3_master_sensor_port.INPUT_4) btn = ev3_master_button.Button() #巡线主程序 error = 0 kp = 0.6 speed = 40 angle = 0 n1_threshold = 25 n2_threshold = 25 n3_threshold = 25 n4_threshold = 25 debug_print('----------- Loop Start ------------') while not btn.any(): if DaisyChainEnabled: angle = Gyro_slave.angle n1 = col1.reflected_light_intensity n2 = col2.reflected_light_intensity n3 = col3.reflected_light_intensity n4 = col4.reflected_light_intensity if n1 > 60: n1 = 60 if n2 > 60: n2 = 60 Turn = n1 - n2 - error l = r = speed if n3 < n3_threshold or n4 < n4_threshold: if n3 < n3_threshold: # if n1 > n1_threshold : l = -20 r = 40 else: # if n2 > n2_threshold : l = 40 r = -20 elif n1 < n1_threshold or n2 < n2_threshold: l = 30 + Turn * kp r = 30 - Turn * kp else: pass MA.on(speed=l) MB.on(speed=l) MC.on(speed=r) MD.on(speed=r) if DaisyChainEnabled: Motor_slave.on(speed=l) debug_print( '>> Color {:>3d} {:>3d} {:>3d} {:>3d} Angle {:>6d} >> Left {:>3.1f} Right {:>3.1f}' .format(n1, n2, n3, n4, angle, l, r)) # print(n1,n2,n3,n4,angle) # print('L {} R {}'.format(l,r)) MA.off() MB.off() MC.off() MD.off() if DaisyChainEnabled: Motor_slave.off() debug_print('----------- Main End ------------')