На самом деле я немного наврал в теме и предлагаемый подход не является таким уж и новым с точки зрения компьютерных технологий, но при этом почему-то не получил должного развития в области встраиваемых систем.
Название предлагаемого подхода - Remote Procedure Call ().
Его смысл заключается в том, что мы можем вызывать функции одного адресного пространства (микроконтроллера) из другого адресного пространства (компьютера).
Это означает, что фактически вам не нужно задумываться о протоколе обмена между компьютером и роботом, вы просто пишете функции и помечаете их как "удаленно вызываемые".
Мы реализовали такую функциональность для Ардуино.
Более подробная инструкция по использованию
Готовый пакет:
Пример. У вас есть робот который должен управляться с компьютера, и пользоваться датчиком температуры.
Вы написали в Ардуино примерно такой код:
- Код: Выделить всё • Развернуть
- void Move(int vl, int vr)
 {
 // Set left (vl) and right (vr) wheel velocity
 }
 double Temperature()
 {
 // Read temperature sensor
 }
Для того, чтобы сделать функции вызываемыми с компьютера вам надо добавить в скетч вот такой код:
- Код: Выделить всё • Развернуть
- void Move(int vl, int vr);
 double Temperature();
После этого нажать волшебную кнопку RPC и для вас будет создан файл для C# в котором будет создан специальный класс, предназначенный для удаленного вызова помеченных процедур.









 .
.