Lego Mindstorms EV3 con micropython¶
La documentación para lograr el control de los Lego Midstorms EV3 con micropython puede ser consultada a continuación:
Configuración¶
Para usar micropython con el LEGO Mindstorms EV3 debemos tener:
- Una microSD con micropython.
- Visual Studio Code con la extensión "LEGO Mindstorms EV3 MicroPython".
y ya con esto tendremos el entorno de trabajo configurado.
Ejemplo seguidor de linea¶
A continuación presentamos un ejemplo de un robot seguidor de linea, el ejemplo esta sin comentarios. Para descargar el código comentado hacer clic aqui
from pybricks import ev3brick as brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor,
InfraredSensor, UltrasonicSensor, GyroSensor)
from pybricks.parameters import (Port, Stop, Direction, Button, Color,
SoundFile, ImageFile, Align)
from pybricks.tools import print, wait, StopWatch
from pybricks.robotics import DriveBase
color_sensor = ColorSensor(Port.S4)
distance_sensor = UltrasonicSensor(Port.S1)
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)
wheel_diameter = 56
axle_track = 114
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)
brick.display.clear()
def calibrate():
brick.display.text("WHITE?")
brick.sound.beep()
while not any(brick.buttons()):
wait(10)
white = color_sensor.reflection()
while any(brick.buttons()):
wait(10)
brick.display.text("BLACK?")
brick.sound.beep()
while not any(brick.buttons()):
wait(10)
black = color_sensor.reflection()
return black, white
black, white = calibrate()
reference = (black + white)/2
Kp = 1
brick.display.text("Reference at: "+str(reference))
while True:
measure = color_sensor.reflection()
error = reference - measure
robot.drive(100, Kp*error)
wait(50)