Modul PI-RSX umožňuje přidat rozhraní RS-232, RS-485 nebo RS-422 pro Raspberry Pi. Vše v jednom modulu a typ rozhraní je navíc volen propojkami na DPS. Podívejme se, jak ho použít v pythonu.

Nejprve musíme systému říci, že chceme rozhraní používat. Záleží na typu Raspberry, typicky ale přidáme do konfiguračního souboru /boot/firmware/config.txt řádku:

dtoverlay=uart0,txd0_pin=14,rxd0_pin=15

Rozhraní je připojeno na headeru na pinech 14 a 15. Způsob nastavení se může měnit podle typu Raspberry Pi, návod najdete v systému Raspberry OS v souboru /boot/firmware/overlays/README. Také hledejte v dokumentaci konkrétního Rasberry, jaké rozhraní můžete použít. My použijeme uart0.

Nyní k programu v pythonu při použití s RS-485 nebo RS-422:

import serial
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(18, GPIO.OUT)

ser = serial.Serial(
    port='/dev/ttyAMA0',
    baudrate = 115200,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1
)


GPIO.output(18,1) #set high/transmit
TxData = "Hello world"
ser.write(TxData.encode("utf8"))
time.sleep(len(TxData)*10/115200) #8 bits + start bit + stop bit
GPIO.output(18, 0) #pin set to low/receive
ReceivedData = ""
while (ReceivedData == ""):
   RxData = ser.readline();
   if (RxData != b""):
      print(RxData)

Ukázková aplikace otevře sériový port, nastaví GPIO18 (pin 12 na 40-pinovém headeru) pro ovládání směru budiče, vyšle "Hello world" a poté poslouchá a vypisuje přijmutá data.

Při použití s RS-232 je to stejné, jen nemusíme použít ovládání GPIO.

Cookies

Pro lepší používání stránek a pro náš obchod používáme jen nezbytné cookies.