SPIKE™ Prime de LEGO® Education
Programas Python
Posibles soluciones
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
2/31
SPIKE™ Prime de LEGO® Education
¡Ayuda!
https://education.lego.com/es-es/lessons/prime-
invention-squad/help
from spike import PrimeHub, App, ColorSensor
from spike.control import wait_for_seconds
hub = PrimeHub()
app = App()
color_sensor = ColorSensor('B')
# Esta es la historia n.º 1: Kiki está paseando. Está feliz de salir a tomar el aire, pero de repente...
hub.left_button.wait_until_pressed()
color_sensor.wait_until_color('blue')
app.play_sound('Traffic')
color_sensor.wait_until_color('yellow')
app.play_sound('Ring Tone')
color_sensor.wait_until_color('green')
app.play_sound('Dog Bark 1')
app.play_sound('Dog Bark 1')
# Esta es la historia n.º 2:
hub.right_button.wait_until_pressed()
color_sensor.wait_until_color('blue')
app.play_sound('Door Knock')
color_sensor.wait_until_color('yellow')
app.play_sound('Glass Breaking')
color_sensor.wait_until_color('green')
app.play_sound('Dog Bark 3')
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
3/31
SPIKE™ Prime de LEGO® Education
Carrera de
saltadores
https://education.lego.com/es-es/lessons/prime-
invention-squad/hopper-race
from spike import PrimeHub, MotorPair
from spike.control import wait_for_seconds
hub = PrimeHub()
hop_motors = MotorPair('E', 'F')
hop_motors.set_default_speed(50)
hub.light_matrix.write('3')
wait_for_seconds(1)
hub.light_matrix.write('2')
wait_for_seconds(1)
hub.light_matrix.write('1')
wait_for_seconds(1)
# Ajústalo para cambiar la distancia que recorrerá tu saltador.
# --------------v
hop_motors.move(10, 'seconds')
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
4/31
SPIKE™ Prime de LEGO® Education
Superlimpieza
https://education.lego.com/es-es/lessons/prime-
invention-squad/super-cleanup
from spike import ForceSensor, Motor
force_sensor = ForceSensor('E')
grabber_motor = Motor('A')
while True:
force_sensor.wait_until_pressed()
grabber_motor.set_stall_detection(False)
grabber_motor.start(-75)
force_sensor.wait_until_released()
grabber_motor.set_stall_detection(True)
grabber_motor.start(75)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
5/31
SPIKE™ Prime de LEGO® Education
Roto
https://education.lego.com/es-es/lessons/prime-
invention-squad/broken
from spike import PrimeHub, Motor
from spike.control import wait_for_seconds
hub = PrimeHub()
x_motor = Motor('A')
y_motor = Motor('C')
hub.left_button.wait_until_pressed()
x_motor.set_default_speed(-100)
x_motor.run_for_seconds(1.5)
wait_for_seconds(1)
# Estas líneas deberían «cortar» un cuadrado.
x_motor.set_default_speed(100)
y_motor.set_default_speed(100)
x_motor.run_for_degrees(400)
y_motor.run_for_degrees(575)
x_motor.run_for_degrees(-400)
y_motor.run_for_degrees(-575)
hub.right_button.wait_until_pressed()
x_motor.set_default_speed(100)
x_motor.run_for_seconds(1.5)
wait_for_seconds(1)
# Estas líneas deberían «cortar» un rectángulo.
x_motor.run_for_degrees(-60)
x_motor.run_for_degrees(-400)
y_motor.run_for_degrees(-800)
x_motor.run_for_degrees(400)
y_motor.run_for_degrees(800)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
6/31
SPIKE™ Prime de LEGO® Education
Diseñar para
alguien
https://education.lego.com/es-es/lessons/prime-
invention-squad/design-for-someone
from spike import PrimeHub, Motor, ForceSensor
from spike.control import wait_for_seconds
hub = PrimeHub()
motor_a = Motor('A')
motor_e = Motor('E')
force_sensor = ForceSensor('B')
motor_a.set_default_speed(100)
motor_e.set_default_speed(-100)
motor_a.set_stall_detection(False)
motor_e.set_stall_detection(False)
motor_a.set_stop_action('hold')
motor_e.set_stop_action('hold')
motor_a.run_to_position(0)
hub.speaker.beep(60)
hub.speaker.beep(72)
# Haz que la prótesis se agarre al brazo de alguien
motor_a.run_for_seconds(1)
motor_e.run_for_seconds(1)
while True:
if hub.right_button.was_pressed():
# Haz que la prótesis se suelte
motor_a.run_to_position(0)
motor_e.run_to_position(0)
break
if force_sensor.get_force_newton() > 5:
hub.light_matrix.show_image('SQUARE')
else:
hub.light_matrix.off()
wait_for_seconds(0.01)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
7/31
SPIKE™ Prime de LEGO® Education
Haz tu pedido
https://education.lego.com/es-es/lessons/prime-
kickstart-a-business/place-your-order
from spike import PrimeHub, App, ColorSensor, DistanceSensor, Motor
from spike.control import wait_for_seconds
hub = PrimeHub()
app = App()
distance_sensor = DistanceSensor('C')
color_sensor = ColorSensor('D')
arm_motor = Motor('A')
base_motor = Motor('F')
arm_motor.set_default_speed(50)
base_motor.set_default_speed(50)
arm_motor.run_to_position(350)
base_motor.run_to_position(350)
app.start_sound('Connect')
distance_sensor.light_up_all()
for x in range(10):
hub.light_matrix.show_image('HEART')
wait_for_seconds(0.5)
hub.light_matrix.show_image('HEART_SMALL')
wait_for_seconds(0.5)
hub.light_matrix.show_image('HEART')
while True:
color_sensor.wait_until_color('violet')
arm_motor.run_for_degrees(30)
arm_motor.run_for_degrees(-60)
arm_motor.run_for_degrees(60)
arm_motor.run_for_degrees(-30)
app.start_sound('Connect')
hub.light_matrix.show_image('HEART')
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
8/31
SPIKE™ Prime de LEGO® Education
Fuera de servicio
https://education.lego.com/es-es/lessons/prime-
kickstart-a-business/out-of-order
from spike import PrimeHub, DistanceSensor, Motor, MotorPair
from spike.control import wait_for_seconds
hub = PrimeHub()
distance_sensor = DistanceSensor('B')
drive_motors = MotorPair('A', 'E')
small_wheel_motor = Motor('C')
small_wheel_motor.set_default_speed(100)
drive_motors.set_default_speed(50)
hub.left_button.wait_until_pressed()
# Aquí tienes una forma de depurar el primer programa.
small_wheel_motor.run_to_position(0)
drive_motors.start()
# Ajusta el valor aquí ----------------------v
distance_sensor.wait_for_distance_closer_than(15, DistanceSensor.CM)
drive_motors.stop()
hub.right_button.wait_until_pressed()
# Aquí tienes una forma de depurar el segundo programa.
small_wheel_motor.run_to_position(0)
drive_motors.start()
# Ajusta el valor aquí ----------------------v
distance_sensor.wait_for_distance_closer_than(15, DistanceSensor.CM)
drive_motors.stop()
# Ajusta el valor aquí ----------v
small_wheel_motor.run_to_position(20)
wait_for_seconds(1)
drive_motors.move(-50, DistanceSensor.CM)
drive_motors.stop()
small_wheel_motor.run_to_position(0)
wait_for_seconds(1)
# Ajusta el valor aquí.
# ----------------v
drive_motors.move(50, DistanceSensor.CM)
drive_motors.stop()
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
9/31
SPIKE™ Prime de LEGO® Education
Hacer un
seguimiento de
los paquetes
https://education.lego.com/es-es/lessons/prime-
kickstart-a-business/track-your-packages
from spike import PrimeHub, Motor
from spike.control import wait_for_seconds
hub = PrimeHub()
horizontal_motor = Motor('A')
vertical_motor = Motor('C')
horizontal_motor.set_default_speed(75)
vertical_motor.set_default_speed(75)
# Este programa hará un seguimiento del paquete en el mapa n.º 1
hub.left_button.wait_until_pressed()
horizontal_motor.run_for_seconds(1)
wait_for_seconds(1)
vertical_motor.run_for_degrees(475)
horizontal_motor.run_for_degrees(-545)
vertical_motor.run_for_degrees(950)
horizontal_motor.run_for_degrees(550)
vertical_motor.run_for_degrees(380)
# Haz funcionar ambos motores al mismo tiempo para moverte en diagonal
vertical_motor.start(speed=75)
horizontal_motor.run_for_degrees(-540, speed=50)
vertical_motor.stop()
vertical_motor.run_for_degrees(175)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
10/31
SPIKE™ Prime de LEGO® Education
Un lugar seguro
https://education.lego.com/es-es/lessons/prime-
kickstart-a-business/keep-it-safe
from spike import PrimeHub, Motor, LightMatrix
from spike.control import wait_for_seconds, wait_until
from spike.operator import greater_than
hub = PrimeHub()
lock_motor = Motor('C')
dial_motor = Motor('B')
lock_motor.set_default_speed(50)
hub.speaker.beep(60)
hub.speaker.beep(72)
# Esto cierra la puerta.
dial_motor.set_stop_action('coast')
dial_motor.run_to_position(0)
dial_motor.set_degrees_counted(0)
hub.light_matrix.show_image('NO')
# Esto desbloquea la puerta al pulsar el botón izquierdo del Hub.
hub.left_button.wait_until_pressed()
hub.speaker.beep(72)
wait_until(dial_motor.get_degrees_counted, greater_than, 180)
hub.speaker.beep(60)
lock_motor.run_for_seconds(1)
hub.light_matrix.show_image('NO')
wait_for_seconds(2)
hub.light_matrix.show_image('YES')
wait_for_seconds(5)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
11/31
SPIKE™ Prime de LEGO® Education
¡Un sitio
superseguro!
https://education.lego.com/es-es/lessons/prime-
kickstart-a-business/keep-it-really-safe
from spike import PrimeHub, App, Motor
from spike.control import Timer, wait_for_seconds
hub = PrimeHub()
app = App()
dial = Motor('B')
lock = Motor('C')
dial_cover = Motor('E')
timer = Timer()
dial.set_default_speed(75)
lock.set_default_speed(75)
dial_cover.set_default_speed(75)
def unlock():
while not hub.left_button.is_pressed() and dial.get_degrees_counted() < 180:
hub.speaker.beep(60)
dial_cover.run_for_degrees(15)
wait_for_seconds(0.8)
if timer.now() > 5:
app.play_sound('Bonk')
return
hub.light_matrix.show_image('NO')
wait_for_seconds(2)
hub.light_matrix.show_image('YES')
dial_cover.run_to_position(0)
lock.run_for_seconds(1)
app.play_sound('Wand')
wait_for_seconds(5)
# Esto bloquea la puerta y arranca el mecanismo de protección adicional.
hub.speaker.beep(60)
hub.speaker.beep(72)
lock.run_for_seconds(-1)
dial.run_to_position(0)
dial_cover.run_to_position(0)
dial.set_degrees_counted(0)
dial.set_stop_action('coast')
hub.light_matrix.show_image('NO')
timer.reset()
unlock()
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
12/31
SPIKE™ Prime de LEGO® Education
¡Automatízalo!
https://education.lego.com/es-es/lessons/prime-
kickstart-a-business/automate-it
from spike import App, Motor, ColorSensor
from spike.control import wait_for_seconds
app = App()
base_motor = Motor('A')
arm_motor = Motor('F')
color_sensor = ColorSensor('D')
base_motor.set_default_speed(25)
arm_motor.set_default_speed(25)
def check_color():
# Esto comprobará el color del paquete.
arm_motor.run_to_position(235)
wait_for_seconds(4)
if color_sensor.get_color() == 'violet':
base_motor.run_to_position(0)
arm_motor.run_to_position(25)
app.play_sound('Triumph')
arm_motor.run_to_position(240)
else:
app.play_sound('Oops')
arm_motor.run_to_position(25)
for x in range(3):
arm_motor.run_for_degrees(-100, speed=100)
arm_motor.run_for_degrees(100, speed=100)
# Esto enciende el robot y hace que agarre un paquete de cada lado.
base_motor.run_to_position(0)
arm_motor.run_to_position(240)
base_motor.run_to_position(90)
arm_motor.run_to_position(25)
check_color()
base_motor.run_to_position(0)
arm_motor.run_to_position(240)
base_motor.run_to_position(270)
arm_motor.run_to_position(25)
check_color()
base_motor.run_to_position(0)
arm_motor.run_to_position(240)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
13/31
SPIKE™ Prime de LEGO® Education
Break dance
https://education.lego.com/es-es/lessons/prime-
life-hacks/break-dance
La lección “Break dance” se ha creado para nuestro lenguaje de programación de bloques
de palabra. Actualmente no es posible utilizar exactamente el mismo transcurso de la lección
utilizando nuestra programación en Python.
¡Aquí tienes un programa que al menos hará que tu modelo se mueva!
from spike import PrimeHub, Motor, ColorSensor
from spike.control import wait_for_seconds
hub = PrimeHub()
leg_motor = Motor('F')
arm_motor = Motor('B')
color_sensor = ColorSensor('D')
leg_motor.set_default_speed(-80)
arm_motor.set_default_speed(-80)
leg_motor.run_to_position(0)
arm_motor.run_to_position(0)
wait_for_seconds(1)
for x in range(10):
hub.light_matrix.write("1")
leg_motor.start()
arm_motor.run_for_rotations(1)
leg_motor.stop()
wait_for_seconds(0.45)
hub.light_matrix.write("2")
leg_motor.start()
arm_motor.run_for_rotations(1)
leg_motor.stop()
wait_for_seconds(0.45)
hub.light_matrix.write("3")
leg_motor.start()
arm_motor.run_for_rotations(1)
leg_motor.stop()
wait_for_seconds(0.45)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
14/31
SPIKE™ Prime de LEGO® Education
Repetir 5 veces
https://education.lego.com/es-es/lessons/prime-
life-hacks/repeat-5-times
from spike import PrimeHub, App, Motor
from spike.control import wait_until, wait_for_seconds
from spike.operator import equal_to
hub = PrimeHub()
app = App()
left_leg_motor = Motor('B')
right_leg_motor = Motor('F')
left_leg_motor.set_default_speed(50)
right_leg_motor.set_default_speed(-50)
left_leg_motor.start()
right_leg_motor.start()
wait_until(hub.motion_sensor.get_orientation, equal_to, 'leftside')
right_leg_motor.stop()
left_leg_motor.stop()
app.play_sound('Sport Whistle 1')
for count in range(5):
left_leg_motor.set_default_speed(-50)
right_leg_motor.set_default_speed(50)
left_leg_motor.start()
right_leg_motor.start()
wait_until(hub.motion_sensor.get_orientation, equal_to, 'front')
right_leg_motor.stop()
left_leg_motor.stop()
app.start_sound('Male Jump 1')
hub.light_matrix.write(count + 1)
wait_for_seconds(0.5)
left_leg_motor.set_default_speed(50)
right_leg_motor.set_default_speed(-50)
left_leg_motor.start()
right_leg_motor.start()
wait_until(hub.motion_sensor.get_orientation, equal_to, 'leftside')
right_leg_motor.stop()
left_leg_motor.stop()
wait_for_seconds(0.5)
app.play_sound('Sport Whistle 2')
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
15/31
SPIKE™ Prime de LEGO® Education
¿Lluvia o sol?
https://education.lego.com/es-es/lessons/prime-
life-hacks/rain-or-shine
La lección “Lluvia o sol” se ha creado para nuestro lenguaje de programación de bloques de
palabra. Actualmente no es posible utilizar las funciones de pronóstico meteorológico utilizando
nuestra programación en Python.
¡Aquí tienes un programa que hará que el pronosticador meteorológico se mueva!
from spike import PrimeHub, App, Motor
from spike.control import wait_for_seconds
hub = PrimeHub()
app = App()
umbrella_motor = Motor("B")
glasses_motor = Motor("F")
YOUR_LOCAL_FORECAST = "sunny"
umbrella_motor.set_default_speed(100)
glasses_motor.set_default_speed(100)
# Esto pone el robot en la posición de partida correcta.
umbrella_motor.run_to_position(45)
glasses_motor.run_to_position(300)
hub.speaker.beep(60, seconds=0.1)
hub.speaker.beep(72, seconds=0.1)
if YOUR_LOCAL_FORECAST == "sunny":
# Si el día está soleado, ponte las gafas de sol
glasses_motor.run_to_position(0)
hub.light_matrix.show_image("SQUARE")
wait_for_seconds(2)
glasses_motor.run_to_position(300)
elif YOUR_LOCAL_FORECAST == "rainy":
# O, si llueve, levanta tu paraguas
umbrella_motor.run_to_position(340)
app.play_sound("Rain")
umbrella_motor.run_to_position(45)
else:
# De lo contrario, mostrar X
hub.light_matrix.show_image("NO")
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
16/31
SPIKE™ Prime de LEGO® Education
Velocidad del
viento
https://education.lego.com/es-es/lessons/prime-
life-hacks/wind-speed
La lección “Velocidad del viento” se ha creado para nuestro lenguaje de programación
de bloques de palabra. Actualmente no es posible utilizar las funciones de pronóstico
meteorológico utilizando nuestra programación en Python.
¡Aquí tienes un programa que al menos hará que tu modelo se mueva!
from spike import App, Motor
from spike.control import wait_for_seconds
tilt_motor = Motor("A")
WIND_SPEED_FORECAST = 8
tilt_motor.set_default_speed(20)
tilt_motor.run_to_position(5)
if WIND_SPEED_FORECAST < 5.5:
tilt_motor.run_for_degrees(30)
wait_for_seconds(1)
tilt_motor.run_for_degrees(-30)
else:
tilt_motor.run_for_degrees(60)
wait_for_seconds(1)
tilt_motor.run_for_degrees(-60)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
17/31
SPIKE™ Prime de LEGO® Education
Amor vegetariano
https://education.lego.com/es-es/lessons/prime-
life-hacks/veggie-love
La lección “Amor vegetariano” se ha creado para nuestro lenguaje de programación de bloques
de palabra. Actualmente no es posible utilizar las funciones de pronóstico meteorológico
utilizando nuestra programación en Python.
¡Aquí tienes un programa que al menos hará que tu modelo se mueva!
from spike import PrimeHub, App, Motor
hub = PrimeHub()
app = App()
pointer_motor = Motor("E")
pointer_motor.set_default_speed(-50)
WEEK_RAIN = 50
ROTATION = 0
hub.left_button.wait_until_pressed()
pointer_motor.run_for_seconds(2)
pointer_motor.set_degrees_counted(0)
pointer_motor.set_default_speed(50)
pointer_motor.run_for_seconds(2)
hub.light_matrix.write(abs(pointer_motor.get_degrees_counted()))
rotation = int(week_rain * abs(pointer_motor.get_degrees_counted()) / 60)
print(ROTATION)
hub.right_button.wait_until_pressed()
pointer_motor.set_degrees_counted(0)
pointer_motor.set_default_speed(-50)
pointer_motor.run_for_degrees(ROTATION)
hub.light_matrix.write(WEEK_RAIN)
print(WEEK_RAIN)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
18/31
SPIKE™ Prime de LEGO® Education
Juego mental
https://education.lego.com/es-es/lessons/prime-
life-hacks/brain-game
from spike import PrimeHub, App, Motor, ColorSensor wait_for_seconds(1)
from spike.control import wait_for_seconds mouth_motor.set_default_speed(50)
mouth_motor.run_for_degrees(95)
wait_for_seconds(1)
hub = PrimeHub()
app = App() # Ilumina la posición de los ladrillos rojos si están
mouth_motor = Motor('A') en la misma posición en los dos bastones de caramelo.
color_sensor = ColorSensor('B') candy1_red_index = candy1.index('red')
candy1 = [] candy2_red_index = candy2.index('red')
candy2 = [] for x in range(5):
print(candy1[x])
while True:
hub.left_button.wait_until_pressed() if candy1_red_index == candy2_red_index:
for x in range(5):
# Esto hace que el Director de juego se coma el hub.light_matrix.set_pixel(x, candy1_red_
bastón de caramelo y a continuación lea y registre su index)
secuencia de colores en la lista llamada «Caramelo1». app.play_sound('Win')
hub.light_matrix.off() else:
candy1.clear() app.play_sound('Oops')
mouth_motor.set_default_speed(-50)
mouth_motor.run_for_seconds(2)
app.play_sound('Bite')
app.play_sound('Bite')
for x in range(5):
candy1.append(color_sensor.get_color())
wait_for_seconds(1)
mouth_motor.set_default_speed(50)
mouth_motor.run_for_degrees(95)
wait_for_seconds(1)
hub.right_button.wait_until_pressed()
# Esto hace que el Director de juego se coma el
bastón de caramelo y a continuación lea y registre su
secuencia de colores en la lista llamada «Caramelo2».
candy2.clear()
mouth_motor.set_default_speed(-50)
mouth_motor.run_for_seconds(2)
app.play_sound('Bite')
app.play_sound('Bite')
for x in range(5):
candy2.append(color_sensor.get_color())
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
19/31
SPIKE™ Prime de LEGO® Education
El entrenador
https://education.lego.com/es-es/lessons/prime-
life-hacks/the-coach
from spike import Motor
from spike.control import Timer, wait_for_seconds
left_leg_motor = Motor('F')
right_leg_motor = Motor('B')
timer = Timer()
left_leg_motor.run_to_position(0)
right_leg_motor.run_to_position(0)
while True:
while timer.now() < 5:
left_leg_motor.start_at_power(-80)
right_leg_motor.start_at_power(80)
wait_for_seconds(0.1)
left_leg_motor.start_at_power(80)
right_leg_motor.start_at_power(-80)
wait_for_seconds(0.1)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
20/31
SPIKE™ Prime de LEGO® Education
Campamento de
entrenamiento 1
https://education.lego.com/es-es/lessons/prime-
competition-ready/training-camp-1-driving-around
from spike import MotorPair
from spike.control import wait_for_seconds
drive_motors = MotorPair('C', 'D')
drive_motors.set_default_speed(30)
drive_motors.set_motor_rotation(17.5, 'cm')
wait_for_seconds(1)
for x in range(4):
drive_motors.move(10, 'cm')
wait_for_seconds(0.5)
drive_motors.move(182, 'degrees', steering=100)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
21/31
SPIKE™ Prime de LEGO® Education
Campamento de
entrenamiento 2
https://education.lego.com/es-es/lessons/prime-
competition-ready/training-camp-2-playing-with-
objects
from spike import PrimeHub, MotorPair, Motor, DistanceSensor
from spike.control import wait_for_seconds
hub = PrimeHub()
drive_motors = MotorPair('C', 'D')
grabber_motor = Motor('E')
distance_sensor = DistanceSensor('F')
drive_motors.set_default_speed(30)
drive_motors.set_motor_rotation(17.5, 'cm')
grabber_motor.set_default_speed(-20)
grabber_motor.run_for_seconds(1)
grabber_motor.set_default_speed(20)
grabber_motor.run_for_degrees(75)
hub.speaker.beep(60)
hub.speaker.beep(72)
hub.right_button.wait_until_pressed()
wait_for_seconds(1)
drive_motors.start()
distance_sensor.wait_for_distance_closer_than(10, 'cm')
drive_motors.stop()
grabber_motor.run_for_degrees(-75)
hub.speaker.beep(60)
hub.speaker.beep(72)
drive_motors.move(-20, 'cm')
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
22/31
SPIKE™ Prime de LEGO® Education
Campamento de
entrenamiento 3
https://education.lego.com/es-es/lessons/prime-
competition-ready/training-camp-3-react-to-lines
from spike import PrimeHub, MotorPair, ColorSensor
from spike.control import wait_for_seconds
hub = PrimeHub()
drive_motors = MotorPair('C', 'D')
color_sensor = ColorSensor('B')
drive_motors.set_default_speed(50)
POWER = 50
while True:
if hub.left_button.was_pressed():
drive_motors.start()
color_sensor.wait_until_color('black')
drive_motors.stop()
if hub.right_button.was_pressed():
while True:
drive_motors.start_tank_at_power(0, POWER)
color_sensor.wait_until_color('black')
drive_motors.start_tank_at_power(POWER, 0)
color_sensor.wait_until_color('white')
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
23/31
SPIKE™ Prime de LEGO® Education
Montar una base de
conducción avanzada
https://education.lego.com/es-es/lessons/prime-
competition-ready/assembling-an-advanced-
driving-base
from spike import PrimeHub, MotorPair
from spike.control import wait_for_seconds, wait_until
from spike.operator import greater_than, less_than
hub = PrimeHub()
drive_motors = MotorPair('A', 'E')
drive_motors.set_default_speed(50)
drive_motors.set_motor_rotation(27.63, 'cm')
wait_for_seconds(1)
drive_motors.move(20, 'cm')
drive_motors.move(-20, 'cm')
drive_motors.move(20, 'cm', steering=-40)
hub.motion_sensor.reset_yaw_angle()
drive_motors.start(steering=100)
wait_until(hub.motion_sensor.get_yaw_angle, greater_than, 90)
drive_motors.stop()
drive_motors.start(steering=-100)
wait_until(hub.motion_sensor.get_yaw_angle, less_than, 0)
drive_motors.stop()
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
24/31
SPIKE™ Prime de LEGO® Education
Mi código,
nuestro programa
https://education.lego.com/es-es/lessons/prime-
competition-ready/my-code-our-program
from spike import PrimeHub, MotorPair
from spike.control import wait_for_seconds
hub = PrimeHub()
drive_motors = MotorPair('A', 'E')
drive_motors.set_default_speed(50)
drive_motors.set_motor_rotation(27.63, 'cm')
def square():
for x in range(4):
drive_motors.move(1.5, 'rotations')
drive_motors.move(0.365, 'rotations', steering=100)
def triangle():
for x in range(3):
drive_motors.move(1.5, 'rotations')
drive_motors.move(0.486, 'rotations', steering=100)
def circle():
drive_motors.move(3, 'rotations', steering=60)
wait_for_seconds(1)
square()
hub.speaker.beep()
triangle()
hub.speaker.beep()
circle()
hub.speaker.beep()
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
25/31
SPIKE™ Prime de LEGO® Education
¡Hora de mejorar!
https://education.lego.com/es-es/lessons/prime-
competition-ready/time-for-an-upgrade
from spike import PrimeHub, Motor
hub = PrimeHub()
lift_arm_motor = Motor('D')
dozer_blade_motor = Motor('C')
lift_arm_motor.set_default_speed(-100)
lift_arm_motor.run_for_seconds(1)
dozer_blade_motor.set_default_speed(-100)
dozer_blade_motor.run_for_seconds(1)
lift_arm_motor.set_default_speed(100)
lift_arm_motor.run_for_degrees(70)
dozer_blade_motor.set_default_speed(100)
dozer_blade_motor.run_for_degrees(70)
hub.speaker.beep()
lift_arm_motor.run_for_degrees(180)
lift_arm_motor.run_for_degrees(-180)
dozer_blade_motor.run_for_degrees(180)
dozer_blade_motor.run_for_degrees(-180)
hub.speaker.beep()
lift_arm_motor.run_for_degrees(180, speed=15)
lift_arm_motor.run_for_degrees(-180, speed=15)
dozer_blade_motor.run_for_degrees(180, speed=15)
dozer_blade_motor.run_for_degrees(-180, speed=15)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
26/31
SPIKE™ Prime de LEGO® Education
Listo para la
misión
https://education.lego.com/es-es/lessons/prime-
competition-ready/mission-ready
from spike import Motor, MotorPair
from spike.control import wait_for_seconds
dozer_blade_motor = Motor('C')
lift_arm_motor = Motor('D')
drive_motors = MotorPair('A', 'E')
drive_motors.set_default_speed(25)
drive_motors.set_motor_rotation(27.63, 'cm')
dozer_blade_motor.start(-100)
lift_arm_motor.start(-100)
wait_for_seconds(1)
dozer_blade_motor.stop()
lift_arm_motor.stop()
dozer_blade_motor.run_for_degrees(70, speed=100)
lift_arm_motor.run_for_degrees(20, speed=100)
drive_motors.move(-2, 'cm')
drive_motors.move(10.5, 'cm')
dozer_blade_motor.run_for_degrees(180, speed=40)
drive_motors.move(-6, 'cm')
dozer_blade_motor.run_for_degrees(-180, speed=60)
dozer_blade_motor.run_for_degrees(180, speed=60)
drive_motors.move(7, 'cm')
dozer_blade_motor.run_for_degrees(-180, speed=60)
drive_motors.move(0.405, 'rotations', steering=-100)
drive_motors.move(60.5, 'cm', steering=-30)
drive_motors.move(34, 'cm')
drive_motors.move(32, 'cm', steering=-50)
drive_motors.move(17.5, 'cm')
drive_motors.move(0.415, 'rotations', steering=-100)
drive_motors.move(32, 'cm')
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
27/31
SPIKE™ Prime de LEGO® Education
Pasa el ladrillo
https://education.lego.com/es-es/lessons/prime-
extra-resources/pass-the-brick
from spike import Motor, PrimeHub
hub = PrimeHub()
grabber_motor = Motor('F')
# Esto hará que la mano se abra una vez para comenzar.
grabber_motor.run_for_seconds(1)
while True:
# Esto hará que la mano se cierre cuando pulses el botón izquierdo del Hub.
hub.left_button.wait_until_pressed()
grabber_motor.set_stall_detection(False)
grabber_motor.start(-75)
# Esto hará que la mano se abra cuando pulses el botón izquierdo del Hub.
hub.left_button.wait_until_released()
grabber_motor.set_stall_detection(True)
grabber_motor.start(75)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
28/31
SPIKE™ Prime de LEGO® Education
Ideas, ¡al estilo
LEGO!
https://education.lego.com/es-es/lessons/prime-
extra-resources/ideas-the-lego-way
from spike import PrimeHub
from spike.control import wait_for_seconds
hub = PrimeHub()
while True:
if hub.left_button.was_pressed():
hub.light_matrix.write('3')
wait_for_seconds(1)
hub.light_matrix.write('2')
wait_for_seconds(1)
hub.light_matrix.write('1')
wait_for_seconds(1)
hub.light_matrix.off()
hub.speaker.beep(60, 0.5)
hub.speaker.beep(72, 0.5)
if hub.right_button.was_pressed():
hub.light_matrix.write('5')
wait_for_seconds(60)
hub.light_matrix.write('4')
wait_for_seconds(60)
hub.light_matrix.write('3')
wait_for_seconds(60)
hub.light_matrix.write('2')
wait_for_seconds(60)
hub.light_matrix.write('1')
wait_for_seconds(60)
hub.light_matrix.off()
hub.speaker.beep(60, 0.5)
hub.speaker.beep(72, 0.5)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
29/31
SPIKE™ Prime de LEGO® Education
¿En qué
consiste?
https://education.lego.com/es-es/lessons/prime-
extra-resources/what-is-this
from spike import Motor
motor = Motor('F')
motor.set_stall_detection(False)
for x in range(5):
motor.set_default_speed(50)
motor.run_for_seconds(2)
motor.set_default_speed(-50)
motor.run_for_seconds(2)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
30/31
SPIKE™ Prime de LEGO® Education
Cubrir la
distancia
https://education.lego.com/es-es/lessons/prime-
extra-resources/going-the-distance
from spike import MotorPair
drive_motors = MotorPair('B', 'A')
drive_motors.set_default_speed(50)
drive_motors.move(10, 'rotations')
drive_motors.stop()
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.
31/31
SPIKE™ Prime de LEGO® Education
¡Gol!
https://education.lego.com/es-es/lessons/prime-
extra-resources/goal
from spike import PrimeHub, Motor
from spike.control import wait_for_seconds
hub = PrimeHub()
kicker = Motor('A')
kicker.set_default_speed(100)
while True:
kicker.run_to_position(0)
hub.left_button.wait_until_pressed()
kicker.run_for_rotations(1)
wait_for_seconds(1)
LEGO, the LEGO logo, the Minifigure and the SPIKE logo are trademarks of the LEGO Group. ©2020 The LEGO Group.
FIRST® is a registered trademark of For Inspiration and Recognition of Science and Technology (FIRST). LEGO® is a registered trademark of the LEGO Group. FIRST® LEGO® League are jointly
held trademarks of FIRST and the LEGO Group. ©2020 FIRST and the LEGO Group. All rights reserved.