arduino
Как Python интегрируется с Arduino Uno
Поиск…
Синтаксис
-
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
параметры
параметр | подробности |
---|---|
последовательный | Пакет Python содержит классы и методы для доступа к последовательному порту |
время | Пакет Python включает функции, связанные с временем |
замечания
Я использую Arduino Uno с Arduino IDE 1.6.9 и Python 2.7.12, работающими в Windows 10.
Первая последовательная связь между Arduino и Python
В этом первом примере базовая операция последовательной записи запускается с устройства 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);
}
В setup()
функция Serial.begin(9600)
устанавливает скорость передачи данных для последовательной передачи данных. В этом примере используется скорость в бодах 9600. Другие значения можно прочитать здесь: Функция Arduino Serial.begin ()
В loop()
первое сообщение, которое мы хотели бы отправить, это «Hello World!». Это сообщение передается с помощью Serial.println("Hello World!")
он отправит эту строку в последовательный порт в формате ASCII. В конце сообщения есть Return Carriage (CR, \r)
и символ Newline (\n)
. Кроме того, задержка 100 миллисекунд используется каждый раз, когда программа печатает на последовательный порт.
Затем загрузите этот эскиз Arduino через COM-порт (помните этот номер COM-порта, как он будет использоваться в программе Python).
Программа Python, считывающая последовательные данные, отправленные с устройства Arduino, показана ниже:
import serial
import time
ser = serial.Serial('COM8', 9600)
while (1):
print ser.readline()
time.sleep(0.1)
Сначала необходимо импортировать пакет pyserial. Для получения дополнительной информации об установке pyserial в среде Windows ознакомьтесь с этой инструкцией: Установка Python и pyserial . Затем мы инициализируем последовательный порт с номером COM-порта и скоростью передачи. Скорость передачи должна быть такой же, как в эскизе Arduino.
Полученное сообщение будет напечатано во время цикла с использованием функции readline()
. Здесь также используется задержка в 100 миллисекунд так же, как и в эскизе Arduino. Обратите внимание, что функция pyserial readline()
требует таймаута при открытии последовательного порта (pyserial documentation: PySerial ReadLine ).