Отправка в Arduino UNO нескольких значений из кода Python
Я начинаю изучать, как работать с Arduino, в частности, как обмениваться данными между кодом Python, работающим на ПК, и Arduino Uno.
Поэтому я решил начать с того, что считал легкой задачей. То есть отправка пользовательского ввода из Python. Есть 2 значения, одна задержка между светодиодом Arduino (порт 13) и углом сервопривода.
Это не сработало, и я не смог найти ответы, надеюсь, вы мне поможете.
Код Arduino —
#include <Servo.h>
const int ledPin = 13; // контакт, к которому подключен светодиод
int incomingByte = 1000; // переменная хранит последовательные данные
int pos = 0;
int incoming[2];
Servo myservo;
void setup() {
// инициализируем последовательную связь:
Serial.begin(9600);
myservo.attach(9);
// инициализируем вывод светодиода как выход:
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
myservo.write(180);
delay(1000);
digitalWrite(ledPin, LOW);
myservo.write(0);
}
void loop()
{
if (Serial.available()>=2)
{
for (int i = 0; i < 1; i++)
{
incoming[i] = Serial.read();
}
digitalWrite(ledPin, HIGH);
delay(incoming[0]);
digitalWrite(ledPin, LOW);
myservo.write(incoming[1]);
}
}
Код Python (3.7) —
import serial
import time
ser = serial.Serial('COM5', 9600, timeout=1)
user_input = '1'
while user_input != 'q':
user_input = input("'Blink time is or q = quit' : ")
servo_input = input("What position servo go? ")
byte_command = str.encode(user_input)
ser.write(byte_command)
servo_command = str.encode(servo_input)
ser.write(servo_command)
time.sleep(0.5)
print('\nq entered. Exiting the program')
ser.close()
@Learning Arduino and Python, 👍0
Обсуждение1 ответ
▲ -2
Ну, я сделал это самым простым способом.
Я только что отправил строку на C++ и разобрал ее с помощью sscanf()
.
,
@Learning Arduino and Python
Не могли бы вы расширить свой ответ? В нынешнем виде это довольно лаконично., @Greenonline
Смотрите также:
- Последовательная связь Arduino с Python: отправка массива
- Отправьте несколько значений int из Python в Arduino, используя pySerial
- Сброс последовательного порта Arduino в последовательном мониторе и Python
- Код для 2 ультразвуковых датчиков
- Последовательная связь между python и arduino
- Динамически обновить масштаб виджета Tkinter из портов Arduino с помощью python и firmata
- Связь между Arduino и python: последовательный порт отправляет пустые данные
- Почему нужно использовать latin-1 вместо utf-8 при использовании python с arduino?
Arduino перезагружается при новом USB-подключении и после этого проводит несколько секунд в загрузчике. подождите две секунды в Python после подключения к Arduino., @Juraj