У меня такой же зуд .. Я собираюсь купить мою первую Beagle Board и некоторые датчики / сервоприводы, которые могут использовать шину I2C . Я собираюсь использовать управляемый событиями дизайн и грубую реализацию волокон (фибрилл, если хотите), которые являются потоками пользовательского пространства.
В основном мой дизайн требует одного процесса, который запускает один поток на группу сервоприводов. Каждый поток менеджера группы будет запускать х # фибрилл, 2 на серво (скорее всего). Одна фибрилла используется для управления сервоприводом, другая фибрилла обрабатывает события из этого сервопривода (т. Е. Объект слишком тяжел, чтобы его поднять, объект упал и т. Д.).
Основной процесс состоит в том, чтобы выслушивать события от всего остального и следить за тем, чтобы «правая рука знала, что делает левая рука», при движении вперед и преодолении препятствий.
Мне понадобится лучшая часть двух лет, чтобы заставить что-то работать до такой степени, что я горжусь этим ... но я ожидаю много приятных вечеров, доведя это до такого уровня.
Скорее всего, я буду использовать микроядро, а не Linux.
Я делаю это так же, чтобы оттачивать себя с помощью событийно-ориентированных методов, а также мое желание сделать свой собственный R2:)