¿Cómo Aprender a Programar en Python con una Raspberry Pi?
Si hace clic en nuestros enlaces y realiza una compra, es posible que recibamos una comisión..
Más información
Aprender Python es un paso importante para usar una Raspberry Pi de manera eficiente; pero no es sencillo si empiezas desde cero. En mi caso, soy un desarrollador web competente en programación, así que hoy compartiré contigo algunos consejos para comenzar rápidamente con Python.
Raspberry Pi OS incluye un IDE para programar en Python, las bibliotecas básicas están preinstaladas, y los pines GPIO son perfectos para la experimentación. Hay algunos pasos a seguir para entender el código Python, pero no es tan complicado.
Con este artículo, intentaré ayudar tanto a principiantes en programación como en Python (pero que ya conocen otros lenguajes). Depende de ti adaptar el ritmo de lectura a tu nivel. Si ya programas con otros lenguajes, los fragmentos pueden ser suficientes para captar la sintaxis.
Python es un lenguaje de alto nivel para programar todo tipo de software (como C, C++ u otros). Es similar a un script bash porque puedes ejecutarlo directamente. La mayoría del código fuente en Python tiene una extensión de archivo .py, y puedes ejecutarlo usando el comando “python file.py”.
La concepción del lenguaje Python comenzó en los años 80, y todavía es un lenguaje activo, con una gran comunidad. La mayoría de las grandes empresas como Google, Facebook, Netflix o Spotify, están usando Python en sus aplicaciones. Así que, no es un lenguaje desactualizado, aprenderlo ahora podría ayudarte en tu carrera o futuros proyectos.
De hecho, es uno de los lenguajes de programación más utilizados en el mundo:
Tim Peters escribió la filosofía de Python en veinte aforismos como estos:
Lo bonito es mejor que lo feo. Lo explícito es mejor que lo implícito. Lo simple es mejor que lo complejo. Lo complejo es mejor que lo complicado. Plano es mejor que anidado. Esparcido es mejor que denso. La legibilidad cuenta.
Te da una idea de qué esperar al usar Python. Uno de los objetivos principales es que sea divertido de usar.
El objetivo de la Fundación Raspberry Pi es ayudar a los jóvenes estudiantes a aprender a programar. La Fundación Raspberry Pi envió muchas Raspberry Pi a las escuelas del Reino Unido y también creó clubes para enseñar a los niños a programar.
Como habrás notado, Raspberry Pi OS viene con Python por defecto y con un IDE completo ya instalado (en la versión de escritorio). Así que, si tienes una Raspberry Pi y quieres aprender a programar, usar Python es la manera natural de hacerlo.
Por cierto, no es obligatorio tener una Raspberry Pi para aprender Python, así que no la compres solo para aprender Python. Puedes hacer lo mismo en cualquier sistema operativo, ya que Python es un lenguaje multiplataforma. Solo encuentra un editor que se ajuste a tus necesidades en tu sistema operativo actual.
Antes de continuar, te invito a descubrir algunos productos que he seleccionado cuidadosamente para ti. Creo que son esenciales para tu Raspberry Pi. Échales un vistazo y pídelos directamente en Amazon.
Obtiene mi hoja de trucos de comandos Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi. Descargar
Para ejecutar Python en Raspberry Pi, deberás instalar un sistema operativo y luego software para escribir tu código.
Instalar un sistema operativo
Si aún no lo has hecho, necesitas instalar un sistema operativo en tu Raspberry Pi. Recomiendo usar Raspberry Pi OS Desktop, que viene con todo lo necesario por defecto. Pero cualquier distribución puede hacer el trabajo, si prefieres otra.
Lee mi artículo sobre instalar Raspberry Pi OS si no estás seguro de cómo hacerlo. Si no tienes un buen espacio de trabajo con tu Raspberry Pi, recomiendo habilitar SSH y quizás instalar XRDP (en inglés) o VNC para conectar remotamente a tu Raspberry Pi. Puede que te resulte más cómodo leer este artículo y teclear el código desde tu computadora habitual.
Una vez que todo esté bien con tu instalación, continúa con el siguiente paso.
Software para programar en Python
Tienes dos posibilidades principales para programar con Python en una Raspberry Pi.
Python IDE
En Raspberry Pi OS Desktop, el IDE de Python Thonny está instalado por defecto.
Thonny (en inglés) es una interfaz básica para escribir tu código, guardarlo y ejecutarlo, y ver qué sucede en una salida de Shell integrada. Esto es lo que obtendrás al inicio:
Esta interfaz limpia es intuitiva. En el menú superior, encontrarás los iconos más útiles para crear un archivo, guardarlo o cargarlo, ejecutarlo, así como atajos para formatear el código. Las acciones avanzadas están todas ocultas en el menú, para no molestar a los principiantes.
El área de texto superior es para tu script, y la inferior es una consola para ver qué pasa cuando ejecutas tu script (salida o errores).
Si apenas estás comenzando con Python o la programación, recomiendo trabajar con Thonny. Ahorrarás tiempo. Si necesitas algo mejor más adelante, no es gran problema cambiar a otro editor.
Cualquier editor de texto
Como dije en la introducción, el código Python se puede ejecutar desde la línea de comandos así: python myscript.py
Entonces, puedes crear un archivo de script Python con cualquier editor, desde Nano hasta Eclipse (en inglés), si quieres.
Hay editores más avanzados concebidos para programadores. Para principiantes, creo que solo añadirán otras cuestiones y preguntas, pero para grandes proyectos, una interfaz potente puede ser realmente útil.
Obtiene mi hoja de trucos de comandos Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi. Descargar
Empecemos con tus primeras líneas de código. En esta sección, aprenderás la sintaxis básica del lenguaje de Python. Esto no es específico de Raspberry Pi. Funcionará en cualquier lugar.
Hello World
Es una tradición cuando estudias un nuevo lenguaje de programación, así que necesitamos empezar aquí. ¿Cómo mostramos el famoso “Hello World!” en Python?
Es así de simple: print('Hello World!')
En el IDE Thonny, deberías obtener algo como esto cuando lo ejecutes:
Como puedes ver en el área de Shell, el script mostró exactamente lo que pusiste en la función print. Print es una función primaria en Python que muestra algún texto. Ya está incorporada en el lenguaje, así que puedes usarla directamente. Las comillas alrededor del texto son una convención de sintaxis, para identificar cadenas en una línea de código.
Variables
En cualquier lenguaje, las variables se usan para almacenar valores de manera local y temporal. Por ejemplo, podrías pedir el nombre de usuario al principio de tu script y mostrarlo más tarde en tu código. Para lograrlo, debes definir una variable y usarla para guardar el nombre de usuario en ella.
En Python, esto podría verse así: username='Raspberry' print('Hello '+username)
En la primera línea, establecemos la variable username con la cadena ‘Raspberry’. En la mayoría de los lenguajes, primero necesitas crear una variable, estableciendo su tipo (una cadena, un entero, un array), antes de usarla en el código. En Python, sin embargo, no hay un comando para declarar una variable. Puedes usarla inmediatamente.
En la segunda línea, usamos la misma función print vista antes. Te presento un nuevo elemento de sintaxis con el ‘+’ usado para concatenar cadenas. Cuando pedimos a Python que muestre ‘Hello ‘+username, mostrará ‘Hello Raspberry’ en su lugar. El valor de la variable se usa como otra cadena para mostrar, pegada a la primera parte.
Si has estado al tanto, puede que hayas notado que este no es exactamente el ejemplo que prometí 🙂 Aquí te explico cómo pedir el nombre de usuario y mostrarlo dinámicamente dependiendo de la respuesta del usuario:
La función input pide un valor de entrada del usuario y lo asigna a la variable username. Luego puedes mostrar la variable como en el ejemplo anterior.
Usamos una barra invertida para indicar a Python que el siguiente apóstrofe no es para cerrar la cadena. Podría ser más fácil usar comillas dobles para evitar esto: input("What's your name? ")
Condiciones
El siguiente paso es aprender qué son las condiciones y cómo usarlas en Python.
Teoría
Una condición te permite hacer algo diferente dependiendo de una expresión. Por ejemplo:
Si la cadena de entrada está vacía, mostrar un error.
Si se presiona el botón, encender el LED.
Si la contraseña es correcta: realizar la acción, de lo contrario: pedir de nuevo.
En la mayoría de los lenguajes hay tres condiciones que puedes usar, en este orden:
If: primer caso.
Elseif: otros casos, probados solo si los casos anteriores se evalúan como falsos.
Else: caso por defecto si ninguna de las condiciones es verdadera.
Para if o elseif, necesitas definir la condición asociada y el código a ejecutar si es verdadero. Estas se llaman expresiones booleanas. Se evalúan como verdaderas o falsas dependiendo de tus variables. Else se aplica a todos los demás casos, no manejados por if o elseif.
Será más fácil de entender con un ejemplo en Python.
Uso de Python
En Python, encontrarás declaraciones condicionales similares, excepto que elseif se llama elif.
value=input("Value?")
if value == 'a':
print("a")
elif value == 'b':
print("b")
else:
print("Anything else")
Para cada condición, la sintaxis es usar la palabra principal (if, elif o else). Para if y elif, encontrarás la declaración booleana justo después (value == “a”). Es True si el valor contiene “a” o es False, en caso contrario. La línea else no establece ninguna condición: ejecutará el código debajo si el valor es cualquier cosa diferente a “a” o “b”. Los dos puntos (:) al final de cada línea se utilizan aquí para indicar el fin de la condición.
Cuando ejecutes este código, puedes intentar ingresar a, b, o cualquier otro valor cuando se te pida y ver qué sucede. A diferencia del ejemplo en el párrafo anterior, la visualización será diferente dependiendo del valor de entrada que escribas.
Vayamos al siguiente nivel
Las declaraciones elif y else son opcionales. Si tienes solo un valor para probar, podrías eliminar una parte, así:
value=input("Password?")
if value == '1234':
print("Access granted")
else:
print("Try again")
Si tienes más de dos valores para probar, puedes añadir tantos condicionales elif como sean necesarios:
value=input("Value?")
if value == 'a':
print("a")
elif value == 'b':
print("b")
elif value == 'c':
print("c")
elif value == 'd':
print("d")
else:
print("Error")
Cuando se cumple una condición, el código debajo de ella se ejecuta. Pero después de eso, el script omite el resto del grupo condicional. No probará las otras condiciones.
Aquí tienes un ejemplo de cómo funciona ese proceso usando Thonny:
Si estás aprendiendo a programar, tómate tu tiempo para digerir esto, porque lo que sigue es aún más complicado 🙂 Es más una lógica que aprender un idioma. No dudes en hacer algunas pruebas por tu cuenta para estar seguro de que entiendes esta parte.
Bucles
Teoría
El último concepto que quiero introducir son los bucles. Los bucles son una forma de ejecutar la misma porción de código varias veces.
Por ejemplo:
Mientras la contraseña ingresada no sea la correcta, pedirla una y otra vez.
Para cada archivo en una carpeta, hacer algo.
Hacer lo mismo cada X minutos (bucle infinito).
Este concepto nos permitirá tener un código dinámico dependiendo de algo más. También nos evita tener que repetir piezas de código idénticas o ejecutar el script con demasiada frecuencia.
Uso en Python
En Python, tienes solo dos formas de crear bucles:
For: Ejecutar el código para cada elemento en una secuencia (lista, rango, cadena, etc.).
While: Mientras tu condición sea True, el código se ejecutará.
Para aquellos que vienen de otro lenguaje, no hay instrucción “foreach” en Python. Tienes que escribir un bloque “for” personalizado en su lugar.
While
Empezaré con “while” porque está muy cerca de la condicional que has visto antes. Como dije, ejecutará tu código hasta que la declaración booleana se convierta en False.
Aquí está el mismo ejemplo de contraseña, excepto que usando un bucle esta vez:
password=input("What's your password?")
while password!="1234":
print("Error")
password=input("What's your password?")
print("Password correct")
Ya estás familiarizado con casi todo en este código. Comenzamos preguntando la contraseña. Luego hay dos casos:
La contraseña es correcta:
El script nunca entrará en el bucle while porque la condición es False.
En este caso, actúa de la misma manera que una declaración if.
La contraseña es incorrecta:
El script entrará en el bucle while.
Muestra un error y pide de nuevo la contraseña.
Después de eso, el script regresa a la línea while y prueba el mismo booleano nuevamente.
Este bucle nunca se detendrá hasta que la contraseña sea correcta.
No olvides cambiar las variables en la condición while dentro del bucle. De lo contrario, crearás un bucle infinito.
La ejecución de este script en Thonny, cuando el usuario comete dos errores de contraseña, se ve así:
For
For es un poco diferente. Lo usarás para una secuencia de cosas ya definida, no dependiendo de la entrada del usuario o algo que evoluciona con el tiempo.
Aquí tienes un ejemplo:
alphabet= ["a", "b", "c"]
for letter in alphabet:
print(letter)
En la primera línea, introduzco un nuevo tipo de variables. Es una lista de elementos (como un array en otros lenguajes). La sintaxis “for” crea una nueva variable con el elemento actual de tu lista (la llamo “letter”). Después puedes usar esta variable en el código del bucle.
Codificado en Thonny, obtendrás algo como esto:
Como puedes ver, el código se ejecuta tres veces, una vez por cada letra. Escribí solo una línea de código en el bucle for como ejemplo, pero no hay límite, podrían ser 300 líneas.
Vayamos al siguiente nivel
Solo repasé lo básico para introducir los bucles. Hay muchos otros tipos de variables y funciones que podrías usar para adaptarte a tus necesidades con los bucles.
Por ejemplo:
range(0,10): para ejecutar un bucle de 0 a 10.
range(0,100,3): para ejecutar un bucle de 0 a 100, pero incrementando de 3 en 3 cada vez.
No quiero perder a todos aquí, pero hay una última cosa que podrías necesitar con los bucles. Sugerí crear un bucle infinito con un reloj en la introducción, pero no te expliqué cómo esperar una cierta cantidad de tiempo en cada ejecución.
Así es como se hace esto:
import time;
password=input("What's your password?")
while password!="1234":
print("Error")
time.sleep(10)
password=input("What's your password?")
print("Password correct")
Como puedes ver, es el mismo ejemplo de arriba con la contraseña. Excepto que, esta vez, introducimos un tiempo de espera de 10 s antes de pedir otra contraseña (por razones de seguridad, por ejemplo).
Para codificar esto necesitamos usar una biblioteca de Python (en inglés) y llamarla con la sintaxis import. Las bibliotecas te proporcionan nuevas funciones que puedes usar en tu script. Así que, usamos time.sleep en el bucle, para esperar 10 s extras antes de pedir una nueva contraseña.
Hay muchas bibliotecas como esta de Python que puedes usar. En la siguiente sección, veremos algunas de ellas, pero no olvides investigarlas antes de ejecutar códigos hechos por otras personas.
Obtiene mi hoja de trucos de comandos Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi. Descargar
Código Python para Raspberry Pi
Ok, ahora que hemos cubierto los fundamentos de la programación en Python, podremos centrarnos en nuestro objetivo principal: proyectos para Raspberry Pi que podemos intentar hacer con algunas habilidades básicas en Python.
Controlar cámaras con Python
Si tienes una cámara en el puerto de cámara de tu Raspberry Pi, puedes intentar controlarla con Python. Hay una biblioteca llamada “picamera” que te permite usar tu cámara en un script de Python.
Aquí tienes un ejemplo básico que incluye las funciones principales:
import picamera with picamera.PiCamera() as camera: camera.start_preview() camera.capture('/home/pat/Pictures/python.jpg') camera.stop_preview()
Este script tomará una foto cada vez que se ejecute y guardará la imagen en la carpeta especificada.
No olvides importar la biblioteca picamera al principio del script. Luego puedes usar start_preview para iniciar la cámara, capture para tomar la foto y stop_preview para detener la cámara.
Otra gran característica de Raspberry son los pines GPIO que encontrarás en la placa. Estos pines te permiten crear un circuito electrónico con componentes como LED, botones o lo que sea.
Puedes controlar pines y circuitos GPIO usando Python.
No soy un experto en este tipo de cosas, así que te daré un ejemplo sencillo usando la biblioteca GPIO Zero. Si quieres aprender más, puedes revisar mi guía sobre el tema.
from gpiozero import LED
from time import sleep
led = LED(17)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
Al principio del script, importamos dos bibliotecas (gpiozero, para la gestión del LED, y time, para la función sleep de la que aprendimos antes).
Luego, usando la variable led, establecemos qué pin GPIO usar para la siguiente etapa del script. Finalmente, creamos un bucle infinito que hace que el LED parpadee cada segundo.
Este ejemplo completo no usa muchos más conceptos que los vistos en este artículo.
Hay otras bibliotecas similares a gpiozero, como pigpio o wiringPi. De inicio, gpiozero puede ser más simple de entender cómo funciona.
Requisitos previos
Para comenzar con este tipo de proyecto de electrónica, necesitarás algunos componentes para crear tu circuito.
Recomiendo obtener un kit como este en Amazon con todo lo necesario. Incluso si piensas que trae demasiadas cosas, es tan económico que podrías usarlo en tus próximos proyectos 🙂
Si aún no tienes una Raspberry Pi, Canakit también ofrece un kit con la Raspberry Pi y algunos componentes para empezar con circuitos electrónicos. Podría ser una buena oferta para comenzar (verifica el precio en Amazon).
Jugar con kits de robots usando Python
La robótica es una excelente manera de aprender Python mientras te diviertes con tu Raspberry Pi. Hay muchos kits de robots geniales disponibles en Raspberry Pi (revisa el enlace para que veas mis favoritos). No solo usarás la cámara y los pines GPIO, sino también algunos sensores (distancia, colores, etc.) y los harás moverse utilizando varios motores.
Si te sientes seguro de poder alcanzar un nivel básico en Python, te recomiendo darle una oportunidad. Es uno de los proyectos más divertidos para cualquier usuario de Raspberry Pi. E incluso, si piensas que Python es difícil, la mayoría de los kits tienen una manera de hacer que las cosas funcionen con lenguajes más fáciles, como Scratch y lenguajes visuales similares (en inglés), o aplicaciones para smartphones.
Y llegamos al final. Espero que hayas aprendido muchas cosas sobre Python y lo que puedes hacer en Raspberry Pi.
Programar requiere de práctica. Si te inicias en la programación ahora, no serás capaz de hacer algo perfecto la primera vez. Tienes que intentar cosas, aprender otras y especialmente no detenerte ahí. Si no haces nada en Python en las próximas dos semanas, lo olvidarás todo :/
Si necesitas más ideas para experimentar con tus nuevas habilidades en Python, tengo una buena lista en esta página (en inglés).
Obtiene mi hoja de trucos de comandos Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi. Descargar
Preguntas relacionadas
¿Por qué se usa Python en Raspberry Pi?
Python es el lenguaje preferido en Raspberry Pi porque todo ya está incluido. Tan pronto como instalas tu sistema, obtienes todos los requisitos instalados de Python, un IDE y todas las bibliotecas necesarias para tu Raspberry Pi.
¿Debo aprender Python como mi primer lenguaje de programación?
Hay lenguajes más o menos complicados para dominar. Python es uno de los más fáciles de aprender. Así que, no es una mala elección. También aprenderás los fundamentos de la lógica algorítmica que te ayudarán a aprender otros lenguajes después.
¿Puedo programar con otros lenguajes en Raspberry Pi?
Si tu objetivo principal es desarrollar cosas en tu Raspberry Pi, hay muchos otros lenguajes que podrías usar en ella. Todos los lenguajes que puedan compilarse en el chip ARM (en inglés) se pueden usar (C, C++, Scratch, en inglés). También podrías echar un vistazo a los lenguajes web (como HTML, en inglés, PHP, o JavaScript, en inglés).
Cuando estés preparado, aquí tienes un atajo para ti:
Domina tu Raspberry Pi en 30 días: Si buscas los mejores consejos para convertirte en un experto en Raspberry Pi, este libro es para ti. Aprende habilidades útiles de Linux y practica múltiples proyectos con guías paso a paso.
Hola, soy Patrick. Soy administrador de sistemas Linux, y me apasiona la Raspberry Pi y todos los proyectos sobre este tema.
He creado este sitio para compartir con ustedes lo que he aprendido al respecto.
Si hace clic en nuestros enlaces y realiza una compra, es posible que recibamos una comisión.. Más información Si deseas alojar un servidor de archivos en tu Raspberry Pi, OpenMediaVault (OMV) es una gran elección que te hará la vida más fácil. Es una interfaz web para administrar todo en tus dispositivos: desde tus unidades…
Si hace clic en nuestros enlaces y realiza una compra, es posible que recibamos una comisión.. Más información Los tamaños de las tarjetas SD no son (todavía) ilimitados. Si tienes una tarjeta SD pequeña o estás probando muchas cosas, probablemente te quedarás sin espacio rápidamente.En este tutorial, te mostraré cómo encontrar lo que ocupa espacio…
Si hace clic en nuestros enlaces y realiza una compra, es posible que recibamos una comisión.. Más información ¿Alguna vez has querido tener acceso a tu Raspberry Pi cuando estás fuera de casa? Tal vez ya sepas cómo hacerlo desde la misma red, pero quizás te gustaría una solución similar para el acceso remoto, desde…
Si hace clic en nuestros enlaces y realiza una compra, es posible que recibamos una comisión.. Más información Para la mayoría de la gente, el sistema operativo de la Raspberry Pi (cualquiera que sea el que utilices) hará esto en segundo plano, y no debería ser un problema.Pero en algunos casos, como si te estás…
Si hace clic en nuestros enlaces y realiza una compra, es posible que recibamos una comisión.. Más información Es posible que tu quieras lanzar un script o programa al iniciar, pero no ves una opción para ello en Raspberry Pi OS. Es una pregunta que escucho a menudo, y los métodos no son muy intuitivos….
Si hace clic en nuestros enlaces y realiza una compra, es posible que recibamos una comisión.. Más información Nuevos modelos de Raspberry Pi llegan cada año con mayor potencia de CPU y RAM, y la virtualización es ahora un tema recurrente en este sitio web. Esto no siempre fue así. Hoy, discutiremos una solución para…