Могу ли я получить свой скрипт Python для ввода команд в последовательный монитор Arduino? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть скрипт Arduino для отправки команд на какое-то чувствительное оборудование. Я не хочу сильно менять код Arduino, потому что я его не писал, но я хочу иметь возможность вводить последовательность команд без необходимости вводить их вручную.

Я хочу, чтобы вывод моего скрипта Python стал входом в последовательный монитор Arduino, а затем чтобы скрипт отправлял команду на плату. Возможно ли, чтобы Python говорил с Arduino IDE таким образом?

1 Ответ

2 голосов
/ 18 июня 2019

Вам просто нужно подключить плату Arduino к компьютеру и отправлять и получать данные с помощью сценария Python через последовательный порт.Я создал простой пример и поместил подтверждение для подтверждения полученной команды на Arduino, но не забудьте изменить ваш код в зависимости от ваших потребностей:

Код Arduino:

void setup()
{
    Serial.begin(9600);
}

// read a command from serial and do proper action
void read_command()
{
    String command;
    if (Serial.available())
    {
        command = Serial.readString();
        // sending answer back to PC
        Serial.println("ACK");
        // do proper work with command
    }
}

void loop()
{
    // get new commands
    read_command();
    delay(1000);
}

Код Python:

import serial
from time import sleep


# remember to set this value to a proper serial port name
ser = serial.Serial('COM1', 9600)
ser.open()
# flush serial for unprocessed data
ser.flushInput()
while True:
    command = input("Enter your command: ")
    if command:
        command += "\r\n"
        ser.write(command.encode())
        print("Waiting for answer")
        while True:
            answer = ser.readline()
            if answer:
                print("Answer:", answer)
                break
            sleep(0.1)
    ser.flushInput()
...