Поиск…


Синтаксис

  • 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 ).



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow