Szukaj…


Składnia

  • 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

Parametry

Parametr Detale
seryjny Pakiet Python zawiera klasy i metody dostępu do portu szeregowego
czas Pakiet Python zawiera funkcje związane z czasem

Uwagi

Używam Arduino Uno z Arduino IDE 1.6.9 i Python 2.7.12 działającymi w systemie Windows 10.

Pierwsza komunikacja szeregowa między Arduino i Python

W tym pierwszym przykładzie podstawowa operacja zapisu szeregowego jest uruchamiana z urządzenia 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);
}

W setup() funkcja Serial.begin(9600) ustawia prędkość transmisji dla komunikacji danych szeregowych. W tym przykładzie użyto szybkości transmisji 9600. Inne wartości można odczytać tutaj: funkcja Arduino Serial.begin ()

W loop() pierwszą wiadomością, którą chcielibyśmy wysłać, jest „Hello World!”. Ten komunikat jest przesyłany przy użyciu Serial.println("Hello World!") Ponieważ wysyła ten ciąg do portu szeregowego w formacie ASCII. Na końcu wiadomości znajduje się znak powrotu karetki (CR, \r) i znak nowej linii (\n) . Ponadto za każdym razem, gdy program drukuje na port szeregowy, używane jest opóźnienie 100 milisekund.

Następnie prześlij ten szkic Arduino przez port COM (pamiętaj ten numer portu COM, ponieważ będzie on używany w programie Python).

Program Python odczytujący dane szeregowe wysyłane z urządzenia Arduino pokazano poniżej:

import serial
import time

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

Najpierw należy zaimportować pakiet Pyserial. Aby uzyskać więcej informacji na temat instalowania pyserial w środowisku Windows, sprawdź tę instrukcję: Instalowanie Pythona i pyserial . Następnie inicjujemy port szeregowy numerem portu COM i szybkością transmisji. Szybkość transmisji musi być taka sama, jak w szkicu Arduino.

Odebrana wiadomość zostanie wydrukowana w pętli while za pomocą funkcji readline() . Stosuje się tutaj również opóźnienie 100 milisekund, tak samo jak w szkicu Arduino. Należy zauważyć, że funkcja readse readline() funkcji pyserial wymaga przekroczenia limitu czasu podczas otwierania portu szeregowego (dokumentacja pyserial: PySerial ReadLine ).



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow