Desbravando o PyBricks: Programando o SPIKE Prime em Python do Zero
Aula

Objetivo da aula

  • Aprender a usar variáveis para armazenar e reutilizar informações no programa.
  • Compreender o funcionamento de loops (repetições automáticas de comandos).
  • Entender como as condições permitem que o robô tome decisões lógicas.
  • Aplicar esses conceitos em programas práticos no PyBricks.

1. Variáveis — guardando informações

Uma variável é como uma “caixinha” onde guardamos um valor para usar mais tarde.
Podemos armazenar números, textos, cores e até leituras de sensores.
No Python, criamos uma variável simplesmente dando um nome e atribuindo um valor:

velocidade = 400
rotacoes = 720

motorA.run_angle(velocidade, rotacoes)
motorB.run_angle(velocidade, rotacoes)

Assim, se quisermos mudar a velocidade do robô, basta alterar o valor da variável velocidade — sem precisar editar várias linhas.

Variáveis tornam o código mais limpo, fácil de entender e rápido de ajustar durante os testes.

2. Loops — repetindo ações automaticamente

Um loop (ou laço de repetição) serve para executar um mesmo trecho de código várias vezes.
Em Python, usamos o comando for para repetir algo um número específico de vezes.

for i in range(3):
    motorA.run_angle(400, 360)
    motorB.run_angle(400, 360)
    wait(500)

O robô repetirá esse bloco 3 vezes.
A variável i representa o número da repetição (0, 1 e 2 neste caso).

Loop infinito

Se quisermos que uma ação continue para sempre (até o robô ser desligado ou parado manualmente), usamos o comando while True:

while True:
    hub.light.on(Color.BLUE)
    wait(300)
    hub.light.off()
    wait(300)

Esse loop piscará a luz azul do hub continuamente até que o programa seja interrompido.

3. Condições — decisões inteligentes

As condições permitem que o robô tome decisões com base em uma regra ou comparação.
O comando usado é if, que significa “se”.
Também podemos usar elif (senão se) e else (senão).

distancia = sensor_ultrassonico.distance()

if distancia < 100:
    motorA.stop()
    motorB.stop()
elif distancia < 300:
    motorA.run(200)
    motorB.run(200)
else:
    motorA.run(400)
    motorB.run(400)

Nesse exemplo, o robô ajusta sua velocidade conforme a distância detectada pelo sensor ultrassônico.
Se algo estiver muito perto, ele para; se estiver longe, acelera.

Combinando tudo: variáveis + loops + condições

Agora podemos unir os três conceitos em um único programa.
Veja o exemplo abaixo, onde o robô avança repetidas vezes e reage a um obstáculo:

velocidade = 400
distancia_minima = 150

for i in range(5):
    leitura = sensor_ultrassonico.distance()
    
    if leitura < distancia_minima:
        motorA.stop()
        motorB.stop()
        hub.light.on(Color.RED)
        wait(500)
    else:
        motorA.run(velocidade)
        motorB.run(velocidade)
        hub.light.on(Color.GREEN)
        wait(1000)

Observe como o robô toma decisões baseadas em variáveis (velocidade, distancia_minima), repete ações com o for e muda seu comportamento com o if.

Resumo dos comandos principais

Comando Função Exemplo
= Atribui um valor a uma variável. velocidade = 400
for Repete o código um número definido de vezes. for i in range(3):
while Repete enquanto a condição for verdadeira. while True:
if / elif / else Cria decisões lógicas no programa. if distancia < 100:

Erros comuns

  • Esquecer a indentação: todos os comandos dentro de um loop ou condição precisam estar recuados igualmente.
  • Escrever comparações com um “=”: em Python, o sinal de comparação é ==, e não apenas =.
  • Usar variáveis antes de criá-las: o Python precisa “conhecer” a variável antes de usá-la.

Atividade prática

  1. Crie um código que use um for para fazer o robô andar para frente cinco vezes.
  2. Adicione uma condição (if) para parar se o sensor detectar algo a menos de 200 mm.
  3. Use uma variável para definir a velocidade e teste diferentes valores.
  4. Acrescente uma luz vermelha no hub quando o robô parar e verde quando ele estiver se movendo.