- Materiales necesarios:
- Instalación de Python en su computadora:
- Obtener PySerial en Python:
- Nuestro primer programa Python de Arduino:
- Control de LED con Python y Arduino:
Arduino siempre ha sido una plataforma de aprendizaje / desarrollo poderosa y fácil de usar cuando se trata de desarrollo de hardware de código abierto. En el mundo moderno de hoy, cada hardware está alimentado por un lenguaje de programación de propósito general de alto nivel para hacerlo más efectivo y fácil de usar. Uno de esos lenguajes es Python. Python es un lenguaje de programación de alto nivel interpretado, orientado a objetos con semántica dinámica con estructuras de datos integradas de alto nivel, combinado con tipado dinámico y enlace dinámico, lo que lo hace muy atractivo para el desarrollo rápido de aplicaciones.
La combinación del poder de Arduino y Python abrirá las puertas a muchas posibilidades ya que Python tiene una mayor productividad con su capacidad para interactuar con otras plataformas como openCV, Matlab, etc. Entonces en este tutorial aprenderemos cómo podemos instalar Python en nuestra computadora. y cómo usarlo con Arduino para alternar el LED integrado de Arduino.
Entonces empecemos….
Materiales necesarios:
- Arduino Uno (o cualquier placa Arduino)
- Computadora con conexión a Internet
Instalación de Python en su computadora:
Obviamente, el primer paso de este tutorial sería instalar Python en nuestra computadora. Los pasos que se mencionan a continuación son aplicables solo para usuarios de Windows que ejecutan un sistema operativo de 32 bits o de 64 bits. El procedimiento de instalación para MAC y Linux es diferente.
- Haga clic en Python-2.7.9 de 32 bits y esto instalará Python IDLE de 32 bits en su computadora. No descargue la versión de 64 bits o las versiones actualizadas, ya que no brindan soporte para nuestras bibliotecas Arduino. Incluso si su computadora está funcionando en 64 bits, puede usar Python de 32 bits.
- Abra el archivo exe descargado y siga las instrucciones. No cambie el directorio en el que se está instalando Python. Será C: \ Python27 por defecto y déjelo como tal.
- Mientras se lleva a cabo la instalación, es posible que reciba una advertencia de su antivirus (si corresponde); en ese caso, haga clic en permitir.
¡Eso es !, Python se instaló correctamente en nuestra computadora. Puede verificarlo buscando "Python IDLE" en el cuadro de búsqueda de Windows y abriéndolo.
Cuando se abre, debería aparecer la siguiente pantalla. Esta ventana se llama Python Shell y a partir de ahora nos referiremos a ella como " Python Shell ".
Esta pantalla se llama Python Shell. Puede codificar directamente aquí y obtener el resultado en la misma pantalla o crear un nuevo archivo y escribir el programa allí y verificar el programa aquí. Más tarde entraremos en los detalles de la creación de un programa en Python, por ahora, verifiquemos si Python está funcionando.
Para hacerlo, simplemente escriba “ imprimir (1 + 1) ” y presione enter. Debería ver cómo se imprime el resultado como se muestra a continuación.
Obtener PySerial en Python:
El siguiente paso es instalar pyserial. PySerial es un módulo API de Python que se utiliza para leer y escribir datos en serie en Arduino o cualquier otro microcontrolador.
Haga clic en Pyserial Windows para descargar PySerial. La descarga resultante será un archivo exe que se puede instalar directamente. No cambie ningún ajuste durante la instalación. Déjelo en el directorio predeterminado y la configuración predeterminada.
Ahora, verifiquemos si PySerial está instalado correctamente. Para hacer esto, abra Python Shell nuevamente y escriba
importar serial . Si la biblioteca se instaló correctamente, no debería recibir ningún mensaje de error como se muestra en la imagen siguiente. Si recibe algún error, publíquelo en la sección de comentarios e intentaremos resolverlo.
Este tutorial asume que está familiarizado con Arduino y tiene experiencia en la carga de proyectos a Arduino. Así que pasemos directamente a nuestro programa Python. Si es un principiante con Arduino, consulte nuestros Proyectos Arduino y comience desde LED parpadeando con Arduino.
Nuestro primer programa Python de Arduino:
Como se dijo anteriormente, controlaremos el LED de la placa Arduino incorporada mediante el script Python. Comencemos con el código Arduino.
Programa para Arduino:
El programa completo para este tutorial de Python de Arduino se encuentra al final de esta página. Siga leyendo para saber cómo funciona.
Dentro de la función de configuración , inicializamos la comunicación en serie a una velocidad de 9600 baudios y declaramos que usaremos el LED incorporado como salida y lo bajaremos durante el inicio del programa. También hemos enviado un mensaje de bienvenida a Python mediante impresión en serie, como se muestra a continuación:
configuración vacía () {Serial.begin (9600); // inicializar COM serie a 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // convierte el pin LED (13) como salida digitalWrite (LED_BUILTIN, LOW); Serial.println ("¡Hola! Soy Arduino"); }
Dentro de la función de bucle , leemos los datos que ingresan en serie y asignamos el valor a la variable "datos". Ahora, según el valor de esta variable ("datos"), cambiamos el LED integrado como se muestra a continuación.
bucle vacío () {while (Serial.available ()) {datos = Serial.read (); } if (datos == '1') digitalWrite (LED_BUILTIN, HIGH); de lo contrario si (datos == '0') digitalWrite (LED_BUILTIN, LOW); }
Programa para Python:
El programa Python completo para este tutorial se encuentra al final de esta página. Siga leyendo para saber cómo escribir y usar el mismo.
- Abra su Python Shell (Python IDLE) y haga clic en Archivo-> Nuevo
- Esto abrirá un nuevo archivo de texto donde puede escribir su programa.
- Antes de escribir algo, guardemos el archivo con Ctrl + S. Escriba cualquier nombre y haga clic en guardar. Esto guardará automáticamente su archivo en la extensión ".py".
- Ahora, escriba el programa o pegue el código de Python que se proporciona al final de esta página. La explicación de la misma se da a continuación y finalmente ejecute el programa.
En nuestro programa, el primer paso sería importar la biblioteca de tiempo y serie. La biblioteca en serie, como se dijo anteriormente, se usará para leer y escribir datos en serie y la biblioteca de tiempo se usará para crear retrasos en nuestro programa. Estas dos bibliotecas se pueden importar en nuestro programa usando las siguientes dos líneas:
import serial #Serial importado para comunicación serial tiempo de importación # Requerido para usar funciones de retraso
El siguiente paso sería inicializar un objeto serial usando nuestra biblioteca serial. En este programa hemos nombrado nuestro objeto serial como "ArduinoSerial" . En esta línea tenemos que mencionar el nombre del puerto COM al que está conectado nuestro Arduino y a qué velocidad en baudios está operando como se muestra a continuación.
ArduinoSerial = serial.Serial ('com18', 9600)
Nota: Es muy importante mencionar el nombre correcto del puerto COM. Puede encontrarlo usando el Administrador de dispositivos en su computadora.
Tan pronto como se inicialice el objeto serie, debemos mantener el programa durante dos segundos para que se establezca la comunicación serie. Esto se puede hacer usando la siguiente línea:
hora de dormir (2)
Ahora podemos leer o escribir cualquier cosa desde / hacia nuestra placa Arduino.
La siguiente línea leerá todo lo que provenga de Arduino y lo imprimirá en la ventana del shell
imprimir ArduinoSerial.readline ()
También puede asignar el valor a una variable y usarlo para cálculos.
La siguiente línea escribirá el valor del parámetro en la placa Arduino.
ArduinoSerial.write ('1')
Esta línea escribirá '1' en Arduino. Puede enviar cualquier cosa, desde decimales hasta cadenas, utilizando la misma línea.
Ahora, volviendo a nuestro programa, dentro del ciclo infinito while, tenemos las siguientes líneas
var = raw_input () #obtener entrada del usuario imprimir "usted ingresó", var #imprimir la entrada para confirmación if (var == '1'): #si el valor es 1 ArduinoSerial.write ('1') # enviar 1 print ("LED encendido") time.sleep (1) if (var == '0'): #if el valor es 0 ArduinoSerial.write ('0') # enviar 0 print ("LED apagado") tiempo.dormir (1)
La línea var = raw_input obtendrá cualquier valor que se escriba en el script de Shell y asignará ese valor a la variable var .
Más tarde, si el valor es 1, imprimirá '1' en serie en Arduino y si es 0, imprimirá '0' en serie en Arduino. El código en nuestro Programa Arduino (discutido anteriormente) cambiaremos el LED según el valor recibido.
Una vez que el programa completo esté terminado, su secuencia de comandos debería verse más abajo
Ahora haga clic en Ejecutar -> Ejecutar módulo o presione F5, esto podría pedirle que guarde el programa y luego lo iniciará.
Control de LED con Python y Arduino:
El funcionamiento de este proyecto es bastante sencillo. Sube el programa a tu Arduino y verifica que esté conectado al mismo puerto COM que se menciona en el programa Python. Luego, inicie el programa Python como se mencionó anteriormente.
Esto lanzará un script de shell de Python como se muestra a continuación. La ventana de la izquierda es la ventana de shell que muestra la salida y la ventana de la derecha es el script que muestra el programa.
Como puede ver, la cadena “¡Hola! Soy Arduino” ingresada en el programa Arduino es recibida por Python y mostrada en su ventana de shell.
Cuando la ventana del shell solicita ingresar valores, podemos ingresar 0 o 1. Si enviamos 1, el LED en la placa Arduino se encenderá y si enviamos 0, el LED en nuestra placa Arduino se apagará. Mostrando una conexión exitosa entre nuestro programa Arduino y Python.
Hay dos programas a continuación, uno para cargar y ejecutar desde Arduino y el segundo para ejecutarse desde Python Shell en Windows.
Espero que haya entendido el proyecto y haya podido hacerlo funcionar. De lo contrario, publique su problema en el comentario a continuación y estaré encantado de ayudarlo. En nuestro próximo proyecto aprenderemos qué más se puede hacer con Python y Arduino explorando en profundidad otros módulos de Python como Vpython, gamepython, etc. Hasta entonces, estad atentos…