Решил начать новый цикл статей, потому, что обнаружилось, что не могу запустить старые скетчи Arduino. Возникают вопросы, как соединить датчики, какие библиотеки использовать и т.д. Поэтому решил расписать все подробно.

Данные с датчиков можно вывести на индикатор, но нужно видеть данные во времени.  Arduino и Processing могут обмениваться данными через серийный порт. Пока речь идет только о передача данных, когда Arduino передает данные, а Processing принимает и обрабатывает.

Начал я с простого — Serial.print (“1234”), данные передаются нормально в мониторе порта и в Processing отображается String (“1234”), однако при преобразовании его в цифру выскакивает ошибка преобразования и никакие усилия не помогают.

Для Processing

Пришлось перейти на Serial.write тут сразу возникла проблема преобразования формата в байт.

Программа для Arduino пересылки целых чисел — int.

Для Processing

Для дробных чисел, похоже, только для float надо 4 байта, а для double 8 байт. Поиски алгоритма преобразования затянулись, найденные работали в Processing, но не в Arduino. Решил плюнуть на точность, оставить 3 знака после запятой, для датчиков интервала хватает.

Программа для Arduino пересылки дробных чисел — float.

Для Processing

Все это работает, передает данные, но много ошибок лезет. Попытки как то улучшить ситуацию, ни к чему, не привели, но время написания статьи, нашел способ — нужно передавать маркер начала передачи, но пока есть проблемы.

Для визуализации данных использовал библиотеку Grafica.

Число ошибок зависит от скорости при115200ошибок 2-3%, то на 2400 уже 50% .