Извлекайте последовательные данные из Arduino только тогда, когда хочет Пи (без постоянного извлечения данных из Arduino) - PullRequest
0 голосов
/ 20 июня 2019

У меня есть чтение Arduino с датчика (получая событие, затем просто считывая данные с события). Тогда я использую Serial.println(...) для печати. Мой сервер, Python, очистит порт, затем прочитает строку данных, манипулирует данными, а затем снова прочитает их. Цикл в Arduino имеет задержку 100 мс. Код Python едва задерживается (это лучший способ, который я нашел до сих пор), но показания не настолько точны и кажутся задержанными. Как это сделать, чтобы Arduino получал только новое сенсорное событие, а затем печатал, как только Raspberry Pi (код Python) извлекает данные?

val = ser.readline().decode("utf-8");
val_dict = json.loads(val)

После небольшой манипуляции с кодом после этого, asyncio.sleep(0.1) ^^ Python

event_t event;
ser.getEvent(&event);
sprintf(random_var, "...", a, b, c);
Serial.println(random_var);
delay(100);

Результаты хорошие, просто задержка и постоянная отправка данных датчика. Интересно, могу ли я запросить данные, и только тогда Arduino получит новое событие датчика и Serial.println(...);

...