насчёт присутствия некоторого вращения=)
попробуйте угол мышки прибить гвоздём к столу и покрутить её вокруг этого гвоздя=)
контроллер мыши видит вращение вокруг сенсора но всё равно курсор будет двигаться в одну сторону
короче я угол платы удлиннил, вставил гвоздик, левую кнопку залепил скотчем и покрутил плату вокруг гвоздика.
вот какая картинка в пэйнте получилась
радиус поворота платы с мышой 7-8 см от гвоздика до сенсора
если радиус увеличить то вертикальная составляющая движения будет ещё меньше
протокол PS/2 разделяет горизонтальное и вертикальное движение мыши, так что запросто можно учитывать только горизонтальное смещение, для вычисления угла поворота нам всё равно требуеться только оно =)
тут очередная идея в голову пришла
, даже не надо знать расстояние до центра вокруг которого сенсор крутиться
зная вертикальное и гор перемещение сенсора можно вычислить где был центр и угол поворота [это чистая геометрия]
если все 4 колеса ведущие то практически в центре конструкции
если система 3х колёсная 2 колеса ведущие и опорный ролик то центр разворота на оси между колёсами
если шасси 4х колёсное и 2 ведущие. а 2 опорные то шасси отказываеться на одном месте поворачиваться(колёса неравномерно за палас цепляються, ЛЕГО лёгкое очень дергаеться и прыгает, короче эксперимент неполучаеться)