Hoy vamos a unir dos de mis tecnologías favoritas, las cuales vamos a ver muy detalladamente en el futuro ya que tienen un sin fin de posibilidades en el mundo de la programación y la electrónica, con un simple proyecto a modo de «Hola Mundo!», es decir vamos a encender y apagar un led con python.
Como puedes deducir hoy veremos como encender y apagar un LED con Python, usando la librería PySerial y un arduino UNO como controlador.
Lista de materiales
- Un LED
- Una resistencia de 220Ω
- Un microcontrolador de Arduino (en mi caso el Arduino UNO)
Si bien este proyecto es sencillo de realizar nos va a servir para adentrarnos en este mundo y en la temática del blog.
Esquema de conexionado
*Es posible usar el led que ya trae por defecto nuestro Arduino para ello tan solo deberás de inicializar el pin como LED_BUILTIN y no será necesario que hagas el circuito electrónico.
Código del proyecto para encender y apagar un led con python.
A continuación comparto el script que deberás de añadir en tu archivo .py
'''
Script en python para controlar un LED mediante comunicación serial.
Este programa nos permite dar instrucciones a la terminal
y lo envía por USB a través de lacomunicación serial.
Si escribimos '1' enciende el LED incorporado en la placa de Arduino.
Si escribimos '0' apaga el LED incorporado en la placa de Arduino.
Si escribimos 'SALIR' finaliza el programa y se cierra la comunicación.
Autor: Alexdevrep
Fecha: 01/03/2024
Más contenido interesante en:
-Github: https://github.com/alexdevrep
-Instagram: https://www.instagram.com/alexdevrep/
'''
#Importamos las librerías necesarias para poder conectarnos con arduino
import serial
import time
#Guardamos en una variable los datos de nuestra conexión con arduino
arduino = serial.Serial('/dev/ttyACM0', 9600)
time.sleep(2)
#Creamos la estructura de control necesaria para el programa
while True:
def toogle(key):
if key == '1':
arduino.write(b'1') #Enviamos al arduino los datos en bytes (b)
elif key == '0':
arduino.write(b'0')
elif key == 'SALIR':
print("Cerrando el terminal, programa finalizado.")
#Creamos un input en el que nosotros le pasamos el valor deseado al programa
toogle_key=input("Por favor indique que quiere hacer con el LED: ")
toogle(toogle_key)
#Creamos la condición de Salida al bucle while
if toogle_key == 'SALIR':
break
#Cerramos la comunicación con Arduino
arduino.close()
Por último te presento el script que deberás de compilar en el IDE de Arduino
/*
Programa Arduino para controlar un LED mediante comunicación serial.
Este programa espera recibir un carácter desde la comunicación serial
a través del puerto USB. Si recibe '1', enciende el LED incorporado en
la placa de Arduino. Si recibe '0', apaga el LED.
Conexiones:
- LED incorporado en el pin LED_BUILTIN (pin 13 en la mayoría de las placas).
Autor: Alexdevrep
Fecha: 01/03/2024
Más contenido interesante en:
-Github: https://github.com/alexdevrep
-Instagram: https://www.instagram.com/alexdevrep/
*/
void setup()
{
// Iniciamos la comunicación Serial
Serial.begin(9600);
/*
Declaramos el Led como salida en este caso usaremos el que
ya viene en nuestra placa de arduino
*/
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
if (Serial.available() > 0)
{ // Comprobamos si hay datos disponibles para ser leidos
char option = Serial.read(); // Leemos los datos recibidos
if (option == '1')
{
digitalWrite(LED_BUILTIN, HIGH);
}
else if (option == '0')
{
digitalWrite(LED_BUILTIN, LOW);
}
}
}
Ahora si todo ha salido bien, hemos compilado nuestro programa de Arduino y hemos ejecutado el archivo de python, cada vez que pulsemos la tecla de nuestro teclado número 1 se encenderá el LED y si pulsamos la tecla número 0 se apagará.
Recomendación Personal.
Si has llegado hasta aquí, permíteme recomendarte la entrada «No debes usar Python y arduino para tus proyectos» donde repasamos cuestiones técnicas y buenas prácticas acerca de estas dos tecnologías.
Ahora te toca a ti ¿Qué te ha parecido esta idea? ¿Le encuentras utilidad? Aunque es un ejemplo muy básico verás todo el potencial que tiene, tan solo tienes que estar atento a este blog