arduino
Cómo Python se integra con Arduino Uno
Buscar..
Sintaxis
-
Serial.begin(baudrate) // Set baud rate (bits per second) for serial data transmission
-
Serial.println(value) // Print data to serial port followed by Carriage Return \r and Newline character \n
-
serial.Serial((port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, write_timeout=None, dsrdtr=False, inter_byte_timeout=None) // Initialize serial port with all parameters
-
serial.readline() // Read serial data which contains Carriage Return \r and Newline character \n
Parámetros
Parámetro | Detalles |
---|---|
de serie | El paquete Python contiene clases y métodos para acceder al puerto serie |
hora | El paquete Python incluye funciones relacionadas con el tiempo. |
Observaciones
Utilizo un Arduino Uno con Arduino IDE 1.6.9 y Python 2.7.12 que se ejecuta en Windows 10.
Primera comunicación serial entre Arduino y Python.
En este primer ejemplo, se inicia una operación de escritura en serie básica desde un dispositivo Arduino.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Hello World!");
delay(100);
}
En la setup()
, la función Serial.begin(9600)
configura la velocidad en baudios para la comunicación de datos en serie. En este ejemplo, se utiliza una velocidad en baudios de 9600. Otros valores se pueden leer aquí: Arduino Serial.begin () function
En loop()
, el primer mensaje que nos gustaría enviar es "Hello World!". Este mensaje se transmite mediante Serial.println("Hello World!")
, Ya que enviará esta cadena al puerto serie en formato ASCII. Al final del mensaje, hay retorno de carro (CR, \r)
y carácter de nueva línea (\n)
. Además, se utiliza un retraso de 100 milisegundos cada vez que el programa se imprime en el puerto serie.
A continuación, cargue este boceto de Arduino a través del puerto COM (recuerde este número de puerto COM, ya que se usará en el programa Python).
El programa Python que lee los datos en serie enviados desde el dispositivo Arduino se muestra a continuación:
import serial
import time
ser = serial.Serial('COM8', 9600)
while (1):
print ser.readline()
time.sleep(0.1)
Primero, el paquete pyserial debe ser importado. Para obtener más información sobre la instalación de pyserial en el entorno de Windows, consulte esta instrucción: Instalación de Python y pyserial . Luego, inicializamos el puerto serie con el número de puerto COM y la velocidad de transmisión. La velocidad de transmisión debe ser la misma que la utilizada en el croquis de Arduino.
El mensaje recibido se imprimirá en bucle while utilizando la función readline()
. También se usa un retraso de 100 milisegundos aquí como en el croquis de Arduino. Tenga en cuenta que la función readline()
requiere un tiempo de espera al abrir un puerto serie (documentación de pyserial : PySerial ReadLine ).