Запись через UART в микроконтроллер - PullRequest
0 голосов
/ 03 апреля 2019

Я новичок в питоне.Я использую BeagleBone Black Wireless, на котором установлен Debian 9.5, а также Python 3.5.3. Микроконтроллер подключен к моему BeagleBone через USB.Он читает последовательную линию со скоростью 9600 бод. Я могу управлять включением или выключением соленоидов, отправив разрешение «9 ----» в микроконтроллер, где - может быть 0 или 1. чтобы включить соленоид 1 и3 Мне нужно было бы отправить «91010», чтобы отключить их все. Я должен был бы отправить «90000»

. Мне нужна программа на Python, которая помогала бы мне отправлять сигналы включения (9 ----) * 1003.*

Я использую это из документации PYserial для справки:

import serial
ser = serial.Serial('/dev/ttyUSB0',9600, timeout = 0)  # open serial port
print(ser.name)         # check which port was really used
ser.write(str('91010'))     # write a string
line = ser.readline()
ser.close()             # close port

Если теоретически запустить эту программу, сработает ли это, чтобы включить соленоид 1 и 3?В идеале я хотел бы создать функцию с 4 аргументами, по одному для состояния каждого соленоида, например, что-то вроде pwr_solenoid (1,1,1,1) отправит «91111» через последовательный порт, чтобы включить все соленоиды * 1008.*

1 Ответ

1 голос
/ 03 апреля 2019

Вам необходимо записать данные как bytes например. '91010'.encode() с использованием https://pyserial.readthedocs.io/en/latest/pyserial_api.html#serial.Serial.write

Также, если у последовательного порта есть способ сообщить вам, была ли операция записи успешной, вы также можете сделать ser.read после записи, используя https://pyserial.readthedocs.io/en/latest/pyserial_api.html#serial.Serial.read и обработать этот вывод

...