수색…


통사론

  • 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 패키지에는 직렬 포트에 액세스하는 클래스와 메소드가 포함되어 있습니다.
시각 파이썬 패키지에는 시간 관련 함수가 포함되어 있습니다.

비고

나는 Arduino IDE를 Arduino Uno 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 () function

loop() 에서 우리가 보내려는 첫 번째 메시지는 "Hello World!"입니다. 이 메시지는이 문자열을 ASCII 형식의 직렬 포트로 보낼 것이므로 Serial.println("Hello World!") 을 사용하여 전송됩니다. 메시지 끝에는 캐리지 리턴 (CR, \r) 및 개행 문자 (\n) 있습니다. 또한 프로그램이 직렬 포트에 인쇄 할 때마다 100 밀리 초의 지연이 사용됩니다.

다음으로 COM 포트를 통해이 Arduino 스케치를 업로드하십시오 (이 COM 포트 번호는 Python 프로그램에서 사용됨을 기억하십시오).

Arduino 장치에서 보낸 직렬 데이터를 읽는 Python 프로그램은 아래와 같습니다.

import serial
import time

ser = serial.Serial('COM8', 9600)
while (1):
    print ser.readline()
    time.sleep(0.1)

첫째, pyserial 패키지를 가져와야합니다. Windows 환경에서 pyserial을 설치하는 방법에 대한 자세한 내용은 Python 및 pyserial 설치 지침을 확인하십시오. 그런 다음 COM 포트 번호와 전송 속도로 직렬 포트를 초기화합니다. 전송 속도는 Arduino 스케치에 사용 된 것과 동일해야합니다.

수신 된 메시지는 while 회 돌이에서 readline() 함수를 사용하여 인쇄됩니다. Arduino 스케치와 마찬가지로 100 밀리 초의 지연도 여기서 사용됩니다. pyserial readline() 함수는 직렬 포트를 열 때 시간 초과가 필요합니다 (pyserial documentation : PySerial ReadLine ).



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow