aliveos architecture articles build canbus cpp display diy eclipse embedded emotions hackaday hardware howto i2c interface linux mechanics motors opencv protocol prototyping raspberry research robot robotics ros stm32 uart visualstudio zakhar zeromq zmq