Código de Pesquisa

Aula Lição 2 de 10: Python básico para dirigir o Kit de Carro Inteligente 4WD Raspberry Pi Pico

Esta lição faz parte de: Carro inteligente Raspberry Pi Pico 4WD

Aula Lição 2 de 10: Python básico para dirigir o Kit de Carro Inteligente 4WD Raspberry Pi Pico

Nesta segunda lição do curso Robojax Raspberry Pi Pico 4WD Smart Car, mergulhamos nos conceitos fundamentais de programação em Python que permitirão que você controle seu robô. Este guia foi projetado para levá-lo de zero experiência em codificação a escrever scripts com confiança que controlam hardware. Em vez de apenas memorizar sintaxe, exploraremos o "porquê" por trás de cada conceito, dando a você as ferramentas para construir e personalizar seus próprios projetos. Ao final desta lição, você terá uma compreensão sólida de variáveis, fluxo de controle, funções e listas — os blocos de construção para todos os projetos futuros.

Este conhecimento não é apenas para um carro inteligente. Os princípios que você aprenderá aqui são os mesmos usados em inúmeras aplicações do mundo real. Você poderia aplicar essas habilidades para:

  • Automatizar uma estufa doméstica para controlar ventiladores, bombas e luzes com base em dados de sensores.
  • Construir um sistema de segurança personalizado que aciona alarmes ou envia notificações.
  • Criar instalações de arte interativas que respondem ao ambiente.
  • Desenvolver seus próprios comportamentos de robô personalizados além dos pré-programados.

Hardware/Componentes

Para acompanhar os exemplos de hardware nesta lição, você precisará dos seguintes componentes. Todos fazem parte do Kit SunFounder Raspberry Pi Pico 4WD Smart Car, mas podem ser comprados individualmente para experimentos independentes.

  • Raspberry Pi Pico: O cérebro microcontrolador do projeto.
  • Um LED: Usado para demonstrar o controle de saída digital.
  • Um Resistor (150Ω - 330Ω): Para limitar a corrente e proteger o LED.
  • Fios de conexão (Jumper Wires): Para fazer conexões em uma placa de prototipagem.
  • Uma Placa de Prototipagem (Breadboard): Para prototipar seu circuito.

Guia de Conexões

Para a demonstração de hardware nesta lição, construiremos um circuito simples para controlar um LED com um Raspberry Pi Pico. A conexão é direta e é um primeiro passo clássico na computação física. O segredo é usar um resistor limitador de corrente para evitar que o LED queime. O resistor é conectado em série com o LED. A perna longa do LED (o ânodo) é a conexão positiva, e a perna curta (o cátodo) é a conexão negativa.

No vídeo, o instrutor usa um resistor conectado ao pino de terra e à perna curta do LED. A perna longa é conectada ao pino GPIO 22. Esta configuração permite que o Pico envie um sinal alto (3,3V) ao pino para ligar o LED e um sinal baixo (0V) para desligá-lo.

Nota: O diagrama de conexão é mostrado no vídeo. Consulte o guia visual para a colocação exata.

Explicação do Código

Esta lição foca na sintaxe e lógica central do Python, que é essencial para controlar seu robô. Vamos detalhar os conceitos-chave abordados no vídeo. Os exemplos de código são escritos em MicroPython, uma versão do Python projetada para rodar em microcontroladores como o Raspberry Pi Pico.

Variáveis e Tipos de Dados

Variáveis são como caixas rotuladas onde você armazena informações. Em Python, você não precisa declarar o tipo de uma variável; ele é inferido do valor que você atribui. (no vídeo em 03:33)


age = 23  # Isto é um inteiro
name = "Ahmad"  # Isto é uma string (texto)
pi = 3.14  # Isto é um float (decimal)

Você pode usar essas variáveis em cálculos e imprimir seus valores. Por exemplo, para calcular o número de dias em uma determinada idade, você poderia usar days = age * 365. A função print() é usada para exibir a saída no console.

Declarações Condicionais (If/Else)

Declarações condicionais permitem que seu código tome decisões. Isso é crucial para um robô reagir ao seu ambiente, como parar quando detecta um obstáculo. (no vídeo em 07:39)


age = 16
if age >= 17:
    print("Você pode dirigir")
else:
    print("Muito jovem para dirigir")

A declaração if verifica uma condição. Se a condição for True, o bloco de código indentado abaixo dela é executado. Se for False, o código sob a declaração else é executado. A indentação (espaços no início de uma linha) é crítica em Python; ela define qual código pertence a qual bloco.

Loops (For e While)

Loops são usados para repetir um bloco de código. Isso é ideal para tarefas como escanear valores de sensores ou mover um motor através de uma sequência de passos. (no vídeo em 09:04)

Loop For: Este loop itera um número específico de vezes.


for x in range(5):  # x será 0, 1, 2, 3, 4
    print(x)

Loop While: Este loop continua enquanto uma condição for verdadeira. Isso é útil para criar um loop principal do programa que roda para sempre até que um evento específico ocorra. (no vídeo em 12:13)


x = 9
while x > 5:
    print("Valor de x é:", x)
    x = x - 1  # Decrementa x
print("Loop finalizado")

Tome cuidado com loops while True:. Eles rodarão para sempre, a menos que você use uma declaração break para sair do loop ou pare o programa.

Funções

Funções são blocos de código reutilizáveis que executam uma tarefa específica. Elas ajudam a manter seu código organizado e evitam repetição. (no vídeo em 14:52)


def calcular_dias(anos):
    dias = anos * 365
    return dias

# Agora podemos usar esta função várias vezes
dias_em_10_anos = calcular_dias(10)
print("Dias em 10 anos:", dias_em_10_anos)

Aqui, calculate_days é uma função que recebe um argumento (years) e retorna um valor. Isso é mais eficiente do que escrever o mesmo cálculo repetidamente. O vídeo também demonstra como uma função pode chamar outra, permitindo que você construa operações complexas a partir de partes simples e testáveis.

Listas

Listas são usadas para armazenar uma coleção ordenada de itens. Isso é perfeito para armazenar uma sequência de comandos para o seu robô, como "frente", "trás", "esquerda" e "direita". (no vídeo em 19:15)


move = ["frente", "trás", "esquerda", "direita", "parar"]
print(len(move))  # Imprime o número de itens na lista (5)
print(move[0]) # Imprime o primeiro item, "frente"

# Você pode adicionar itens
move.append("borda")
# Você pode remover itens
move.pop()  # Remove "borda"
# Você pode alterar itens
move[2] = "voar"  # Altera o terceiro item para "voar"

Listas são indexadas a partir de zero, ou seja, o primeiro item está no índice 0. A função len() fornece o comprimento da lista, e você pode usar um loop for para iterar por todos os itens. A função enumerate() também é introduzida, que fornece tanto o índice quanto o valor durante um loop, o que é útil para trabalhar com múltiplos pinos ou sensores.

Trabalhando com Pinos e Tempo

É aqui que você conecta a lógica do Python ao mundo físico. Você usa a biblioteca machine para controlar os pinos GPIO do Pico. (no vídeo em 25:16)


from machine import Pin
import time

# Configura o pino 22 como saída
led = Pin(22, Pin.OUT)

# Liga e desliga o LED
led.on()
time.sleep(1)
led.off()
time.sleep(1)

Você também pode ler de um pino configurando-o como entrada com Pin(2, Pin.IN). A biblioteca time é essencial para adicionar atrasos (time.sleep()) e para medir o tempo decorrido usando time.ticks_ms() ou convertendo entre formatos de tempo com time.localtime() e time.mktime(). Isso é crucial para lógica baseada em tempo, como criar um sinal de modulação por largura de pulso (PWM) para controlar a velocidade do motor.

Projeto/Demonstração ao Vivo

No vídeo, o instrutor fornece uma demonstração ao vivo desses conceitos. Ele começa mostrando declarações simples de print() e atribuições de variáveis em um interpretador Python. Em seguida, ele passa para exemplos mais complexos, mostrando visualmente como declarações if mudam o fluxo de um programa com base no valor de uma variável.

O instrutor então demonstra um exemplo prático de hardware conectando um LED ao Raspberry Pi Pico. Ele escreve um script MicroPython simples que liga e desliga o LED com um atraso de um segundo, mostrando o resultado direto de controlar uma saída física com código. Este exemplo prático solidifica a conexão entre a lógica de programação e a ação no mundo real. A lição conclui mostrando como usar enumerate para gerenciar múltiplos pinos e como usar o módulo time para operações mais avançadas de temporização e agendamento.

Capítulos

  • [00:00] Introdução ao Curso de Carro Inteligente Raspberry Pi Pico
  • [01:31] Visão Geral do Curso e Capacidades do Kit
  • [03:33] Variáveis e Tipos de Dados em Python
  • [07:39] Declarações Condicionais (If/Else)
  • [09:04] Entendendo Loops For
  • [12:13] Explorando Loops While
  • [14:52] Definindo e Usando Funções
  • [19:15] Trabalhando com Listas e Estruturas de Dados
  • [25:16] Controlando Pinos GPIO com MicroPython
  • [29:54] Exemplo Prático: Piscando um LED
  • [31:15] Controle Avançado de Pinos com Enumerate
  • [31:24] Trabalhando com Funções de Tempo
Nenhum código anexado.

Recursos e referências

Ainda não há recursos.

Arquivos📁

Nenhum arquivo disponível.