Beispiel #1
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_1)
        except:
            pass

        self.running = True
Beispiel #2
0
#!/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)
Beispiel #3
0
#!/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')
Beispiel #4
0
#!/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()


Beispiel #5
0
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 ------------')