Мне нужна ваша помощь по проблеме, с которой я столкнулся при использовании последовательного соединения между Arduino и Pyserial:
Когда я впервые использую последовательное соединение, это происходит значительно быстрее, чем когдая снова использую последовательное соединение.
Вот минимальный пример:
Arduino-код:
void setup() {
Serial.begin(9600);
Serial.println("Arduino ready"); // Print when Arduino ready
}
void loop() {
// send data only when you receive data:
if(Serial.available() > 0) {
Serial.read();
Serial.println(' ');
}
delay(1); // delay in between reads for stability
}
Python-код:
import serial
import time
ser = serial.Serial('COM5',9600,timeout=1)
print(ser.readline()) # Wait until Arduino is ready
for i in range(1,10):
tic = time.time() # Start timer
ser.write(b' ')
ser.readline()
toc = time.time() # Log time
print("Serial write / read took %7.4f ms" % ((toc-tic)*1000))
ser.close()
Первый запуск кода Python:
b'Arduino ready\r\n'
Serial write / read took 5.9998 ms
Serial write / read took 6.0000 ms
Serial write / read took 7.0000 ms
Serial write / read took 5.9998 ms
Serial write / read took 6.0003 ms
Serial write / read took 5.9998 ms
Serial write / read took 6.0000 ms
Serial write / read took 7.0002 ms
Serial write / read took 5.9998 ms
Повторный запуск кода Python:
b'Arduino ready\r\n'
Serial write / read took 27.9999 ms
Serial write / read took 29.0003 ms
Serial write / read took 27.9999 ms
Serial write / read took 28.0001 ms
Serial write / read took 27.9999 ms
Serial write / read took 29.0000 ms
Serial write / read took 27.9999 ms
Serial write / read took 28.0001 ms
Serial write / read took 27.9999 ms
Действия, восстанавливающие скорость последовательного соединения:
- Отключите / подключите USB-кабель между Arduino и ПК
- Перепрограммируйте Arduino
Сброс Arduino с помощью кнопки сброса не восстанавливает последовательное соединение.
Любые идеи, как добиться скорости соединения первого соединения при повторном открытии соединения?
Я использую Python 3.6 и Pyserial 3.4.Вам нужна дополнительная информация?
Заранее спасибо!