Código de búsqueda

Lección 2 de 10 del curso: Python básico para manejar el kit de automóvil inteligente 4WD Raspberry Pi Pico

Esta lección es parte de: Coche inteligente Raspberry Pi Pico 4WD

Lección 2 de 10 del curso: Python básico para manejar el kit de automóvil inteligente 4WD Raspberry Pi Pico

En esta segunda lección del curso de Coche Inteligente 4WD Raspberry Pi Pico de Robojax, nos adentramos en los conceptos fundamentales de programación en Python que te permitirán controlar tu robot. Esta guía está diseñada para llevarte desde cero experiencia en codificación hasta escribir scripts con confianza que controlen hardware. En lugar de solo memorizar sintaxis, exploraremos el "porqué" detrás de cada concepto, dándote las herramientas para construir y personalizar tus propios proyectos. Al final de esta lección, tendrás una comprensión sólida de variables, flujo de control, funciones y listas: los componentes básicos para todos los proyectos futuros.

Este conocimiento no es solo para un coche inteligente. Los principios que aprenderás aquí son los mismos que se utilizan en innumerables aplicaciones del mundo real. Podrías aplicar estas habilidades para:

  • Automatizar un invernadero doméstico para controlar ventiladores, bombas y luces según datos de sensores.
  • Construir un sistema de seguridad personalizado que active alarmas o envíe notificaciones.
  • Crear instalaciones de arte interactivas que respondan al entorno.
  • Desarrollar tus propios comportamientos de robot personalizados más allá de los preprogramados.

Hardware/Componentes

Para seguir los ejemplos de hardware en esta lección, necesitarás los siguientes componentes. Todos forman parte del Kit de Coche Inteligente 4WD Raspberry Pi Pico de SunFounder, pero se pueden comprar individualmente para experimentos independientes.

  • Raspberry Pi Pico: El cerebro microcontrolador del proyecto.
  • Un LED: Se utiliza para demostrar el control de salida digital.
  • Una Resistencia (150Ω - 330Ω): Para limitar la corriente y proteger el LED.
  • Cables de puente: Para realizar conexiones en una placa de pruebas.
  • Una placa de pruebas: Para prototipar tu circuito.

Guía de Cableado

Para la demostración de hardware en esta lección, construiremos un circuito simple para controlar un LED con una Raspberry Pi Pico. El cableado es sencillo y es un primer paso clásico en la computación física. La clave es usar una resistencia limitadora de corriente para evitar que el LED se queme. La resistencia se conecta en serie con el LED. La pata larga del LED (el ánodo) es la conexión positiva, y la pata corta (el cátodo) es la conexión negativa.

En el video, el instructor usa una resistencia conectada al pin de tierra y a la pata corta del LED. La pata larga está conectada al pin GPIO 22. Esta configuración permite que el Pico envíe una señal alta (3.3V) al pin para encender el LED y una señal baja (0V) para apagarlo.

Nota: El diagrama de cableado se muestra en el video. Consulta la guía visual para la ubicación exacta.

Explicación del Código

Esta lección se centra en la sintaxis y lógica central de Python, que es esencial para controlar tu robot. Desglosemos los conceptos clave cubiertos en el video. Los ejemplos de código están escritos en MicroPython, una versión de Python diseñada para ejecutarse en microcontroladores como la Raspberry Pi Pico.

Variables y Tipos de Datos

Las variables son como cajas etiquetadas donde almacenas información. En Python, no necesitas declarar el tipo de una variable; se deduce del valor que asignas. (en el video en 03:33)


age = 23  # Esto es un entero
name = "Ahmad"  # Esto es una cadena (texto)
pi = 3.14  # Esto es un flotante (decimal)

Puedes usar estas variables en cálculos e imprimir sus valores. Por ejemplo, para calcular el número de días en una edad dada, podrías usar days = age * 365. La función print() se usa para mostrar la salida en la consola.

Declaraciones Condicionales (If/Else)

Las declaraciones condicionales permiten que tu código tome decisiones. Esto es crucial para que un robot reaccione a su entorno, como detenerse cuando detecta un obstáculo. (en el video en 07:39)


age = 16
if age >= 17:
    print("Puedes conducir")
else:
    print("Demasiado joven para conducir")

La declaración if verifica una condición. Si la condición es True, se ejecuta el bloque de código indentado debajo de ella. Si es False, se ejecuta el código bajo la declaración else. La indentación (espacios al comienzo de una línea) es crítica en Python; define qué código pertenece a qué bloque.

Bucles (For y While)

Los bucles se usan para repetir un bloque de código. Esto es ideal para tareas como escanear valores de sensores o mover un motor a través de una secuencia de pasos. (en el video en 09:04)

Bucle For: Este bucle itera un número específico de veces.


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

Bucle While: Este bucle continúa mientras una condición sea verdadera. Esto es útil para crear un bucle principal del programa que se ejecute para siempre hasta que ocurra un evento específico. (en el video en 12:13)


x = 9
while x > 5:
    print("El valor de x es:", x)
    x = x - 1  # Decrementa x
print("Bucle terminado")

Ten cuidado con los bucles while True:. Se ejecutarán para siempre a menos que uses una declaración break para salir del bucle o detengas el programa.

Funciones

Las funciones son bloques de código reutilizables que realizan una tarea específica. Ayudan a mantener tu código organizado y evitan la repetición. (en el video en 14:52)


def calcular_dias(años):
    dias = años * 365
    return dias

# Ahora podemos usar esta función múltiples veces
dias_en_10_años = calcular_dias(10)
print("Días en 10 años:", dias_en_10_años)

Aquí, calculate_days es una función que toma un argumento (years) y devuelve un valor. Esto es más eficiente que escribir el mismo cálculo una y otra vez. El video también demuestra cómo una función puede llamar a otra, permitiéndote construir operaciones complejas a partir de partes simples y comprobables.

Listas

Las listas se utilizan para almacenar una colección ordenada de elementos. Esto es perfecto para almacenar una secuencia de comandos para tu robot, como "adelante", "atrás", "izquierda" y "derecha". (en el video en 19:15)


move = ["adelante", "atrás", "izquierda", "derecha", "detener"]
print(len(move))  # Imprime el número de elementos en la lista (5)
print(move[0]) # Imprime el primer elemento, "adelante"

# Puedes agregar elementos
move.append("acantilado")
# Puedes eliminar elementos
move.pop()  # Elimina "acantilado"
# Puedes cambiar elementos
move[2] = "volar"  # Cambia el tercer elemento a "volar"

Las listas están indexadas desde cero, lo que significa que el primer elemento está en el índice 0. La función len() te da la longitud de la lista, y puedes usar un bucle for para iterar a través de todos los elementos. También se introduce la función enumerate(), que te da tanto el índice como el valor durante un bucle, lo cual es útil para trabajar con múltiples pines o sensores.

Trabajando con Pines y Tiempo

Aquí es donde conectas la lógica de Python con el mundo físico. Usas la biblioteca machine para controlar los pines GPIO del Pico. (en el video en 25:16)


from machine import Pin
import time

# Configura el pin 22 como salida
led = Pin(22, Pin.OUT)

# Enciende y apaga el LED
led.on()
time.sleep(1)
led.off()
time.sleep(1)

También puedes leer desde un pin configurándolo como entrada con Pin(2, Pin.IN). La biblioteca time es esencial para agregar retrasos (time.sleep()) y para medir el tiempo transcurrido usando time.ticks_ms() o convertir entre formatos de tiempo con time.localtime() y time.mktime(). Esto es crucial para la lógica basada en tiempo, como crear una señal de modulación por ancho de pulso (PWM) para controlar la velocidad del motor.

Proyecto/Demostración en Vivo

En el video, el instructor proporciona una demostración en vivo de estos conceptos. Comienza mostrando declaraciones simples de print() y asignaciones de variables en un intérprete de Python. Luego pasa a ejemplos más complejos, mostrando visualmente cómo las declaraciones if cambian el flujo de un programa según el valor de una variable.

El instructor luego demuestra un ejemplo práctico de hardware conectando un LED a la Raspberry Pi Pico. Escribe un script simple de MicroPython que enciende y apaga el LED con un retraso de un segundo, mostrando el resultado directo de controlar una salida física con código. Este ejemplo práctico solidifica la conexión entre la lógica de programación y la acción del mundo real. La lección concluye mostrando cómo usar enumerate para gestionar múltiples pines y cómo usar el módulo time para operaciones más avanzadas de temporización y programación.

Capítulos

  • [00:00] Introducción al Curso de Coche Inteligente Raspberry Pi Pico
  • [01:31] Resumen del Curso y Capacidades del Kit
  • [03:33] Variables y Tipos de Datos en Python
  • [07:39] Declaraciones Condicionales (If/Else)
  • [09:04] Entendiendo los Bucles For
  • [12:13] Explorando los Bucles While
  • [14:52] Definiendo y Usando Funciones
  • [19:15] Trabajando con Listas y Estructuras de Datos
  • [25:16] Controlando Pines GPIO con MicroPython
  • [29:54] Ejemplo Práctico: Parpadeo de un LED
  • [31:15] Control Avanzado de Pines con Enumerate
  • [31:24] Trabajando con Funciones de Tiempo
Sin código adjunto.

Recursos y referencias

Aún no hay recursos.

Archivos📁

No hay archivos disponibles.